refactor(tvix/eval): Upgrade to latest rnix-parser

Since the latest published version of rnix-parser on crates.io, the
crate has undergone major changes which are only available in the git
repository at the moment. This commit updates the compiler to this
newer version of rnix.

Most notably, the entire AST provided by rnix is now wrapped in the
AST type system. As a result of this traversal is much nicer in many
places, especially for things like nested attribute selection.

There are a handful of smaller features missing for full feature
parity with the previous version, especially handling of path
literals, but PRs for these already exist in rnix-parser.

Change-Id: Icde6d393067976549492b7d89c4cc49e5e575fc7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6231
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2022-08-16 23:43:45 +03:00 committed by tazjin
parent a00e4730a5
commit 813fb98470
6 changed files with 529 additions and 637 deletions

View file

@ -6,12 +6,18 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rnix = "0.10.2"
smol_str = "0.1"
rustyline = "10.0.0"
dirs = "4.0.0"
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
# use it from git.
[dependencies.rnix]
git = "https://github.com/nix-community/rnix-parser.git"
rev = "ae9fe1344993bb57d292f361c83e0379282e88ed"
[dev-dependencies]
criterion = "0.3.6"