diff options
author | Vincent Ambo <mail@tazj.in> | 2023-02-04T09·06+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2023-02-04T12·44+0000 |
commit | 720e80c1f9cd2eaa6c0abf06d1e251548f67d3fb (patch) | |
tree | 21d6146226c70741b544f88e4c16f9785a669c4e /tvix/eval | |
parent | 26b55f8cdacb491cd6f50a5deb067b07e04fb835 (diff) |
fix(tvix/eval): fix the default case for path parsing r/5837
Plain paths like `foo/bar.nix` are also allowed, so we can not determine this based on the prefix. The upstream PR that is referenced in a comment here has a significantly different interface than we expected, so I'm not touching that comment yet in this CL before I've had more time to digest it. Change-Id: Iea33bbb35de9c00a7d7fedf64d02253c75c1cc9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/8032 Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: Alyssa Ross <hi@alyssa.is> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval')
-rw-r--r-- | tvix/eval/src/compiler/mod.rs | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index 82f1dd5f285d..31e96955f0a5 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -335,7 +335,7 @@ impl Compiler<'_> { Path::new(&raw_path).to_owned() } else if raw_path.starts_with('~') { return self.thunk(slot, node, move |c, _| { - // We assume that paths that home paths start with ~/ or fail to parse + // We assume that home paths start with ~/ or fail to parse // TODO: this should be checked using a parse-fail test. debug_assert!(raw_path.len() > 2 && raw_path.starts_with("~/")); @@ -343,10 +343,6 @@ impl Compiler<'_> { c.emit_constant(Value::UnresolvedPath(home_relative_path.into()), node); c.push_op(OpCode::OpResolveHomePath, node); }); - } else if raw_path.starts_with('.') { - let mut buf = self.root_dir.clone(); - buf.push(&raw_path); - buf } else if raw_path.starts_with('<') { // TODO: decide what to do with findFile if raw_path.len() == 2 { @@ -362,11 +358,9 @@ impl Compiler<'_> { c.push_op(OpCode::OpFindFile, node); }); } else { - self.emit_error( - node, - ErrorKind::NotImplemented("other path types not yet implemented"), - ); - return; + let mut buf = self.root_dir.clone(); + buf.push(&raw_path); + buf }; // TODO: Use https://github.com/rust-lang/rfcs/issues/2208 |