From 3bf487b98b747b5726713bc3abfc6af7a4b7ed33 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 22 Aug 2022 21:04:50 +0300 Subject: chore(tvix/eval): bump rnix-parser to latest master In this commit, the string interpolation parsing is identical to nixpkgs which makes some of the upstream Nix tests for interpolation-related weirdness pass. Change-Id: I3a295cfdc404c32228a54846e6efd3c0dcee5842 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6233 Reviewed-by: sterni Tested-by: BuildkiteCI --- tvix/eval/Cargo.lock | 2 +- tvix/eval/Cargo.toml | 4 ++-- tvix/eval/src/compiler.rs | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'tvix') diff --git a/tvix/eval/Cargo.lock b/tvix/eval/Cargo.lock index e64e5e8ce0..05bcd8ccd2 100644 --- a/tvix/eval/Cargo.lock +++ b/tvix/eval/Cargo.lock @@ -639,7 +639,7 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "rnix" version = "0.11.0-dev" -source = "git+https://github.com/nix-community/rnix-parser.git?rev=ae9fe1344993bb57d292f361c83e0379282e88ed#ae9fe1344993bb57d292f361c83e0379282e88ed" +source = "git+https://github.com/nix-community/rnix-parser.git?rev=614e7d4641e83ab7eb321d9ac5e3d12985f9f3ba#614e7d4641e83ab7eb321d9ac5e3d12985f9f3ba" dependencies = [ "rowan", ] diff --git a/tvix/eval/Cargo.toml b/tvix/eval/Cargo.toml index 7a35dedfce..21c2243473 100644 --- a/tvix/eval/Cargo.toml +++ b/tvix/eval/Cargo.toml @@ -13,11 +13,11 @@ path-clean = "0.1" tabwriter = { version = "1.2", optional = true } rowan = "*" # pinned by rnix -# rnix has not been released in a while (as of 2022-08-16), we will +# rnix has not been released in a while (as of 2022-08-22), we will # use it from git. [dependencies.rnix] git = "https://github.com/nix-community/rnix-parser.git" -rev = "ae9fe1344993bb57d292f361c83e0379282e88ed" +rev = "614e7d4641e83ab7eb321d9ac5e3d12985f9f3ba" [dev-dependencies] criterion = "0.3.6" diff --git a/tvix/eval/src/compiler.rs b/tvix/eval/src/compiler.rs index dca4eec9f4..7a27022d96 100644 --- a/tvix/eval/src/compiler.rs +++ b/tvix/eval/src/compiler.rs @@ -188,16 +188,16 @@ impl Compiler { // they need to be reversed on the stack in order to // efficiently create the real string in case of // interpolation. - for part in node.parts().into_iter().rev() { + for part in node.normalized_parts().into_iter().rev() { count += 1; match part { // Interpolated expressions are compiled as normal and // dealt with by the VM before being assembled into // the final string. - ast::StrPart::Interpolation(node) => self.compile(node.expr().unwrap())?, + ast::InterpolPart::Interpolation(node) => self.compile(node.expr().unwrap())?, - ast::StrPart::Literal(lit) => { + ast::InterpolPart::Literal(lit) => { let idx = self.chunk.push_constant(Value::String(lit.into())); self.chunk.push_op(OpCode::OpConstant(idx)); } @@ -832,8 +832,8 @@ impl Compiler { /// Convert a non-dynamic string expression to a string if possible, /// or raise an error. fn expr_str_to_string(expr: ast::Str) -> EvalResult { - if expr.parts().len() == 1 { - if let ast::StrPart::Literal(s) = expr.parts().pop().unwrap() { + if expr.normalized_parts().len() == 1 { + if let ast::InterpolPart::Literal(s) = expr.normalized_parts().pop().unwrap() { return Ok(s); } } -- cgit 1.4.1