You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We want the frontend of hax to be complete, that is:
all Rust constructs should be handled;
the frontend shall not crash.
Currently the main pain with frontend is traits: we implement our own logic for finding implementations for traits. This part is the only "smart" part of the frontend, I would say.
This trait implementation resolver is the only part of the frontend where we (1) go deep down rustc's AST (2) reconstruct some complicated data and ask Rust something. Here "reconstruct some complicated data" involves binders: we have a hard time reconstructing binders correctly, thus we break invariants and rustc crashes.
We fixed all the issues here, the only one left is #1046, which is related to GATs
The plan is for the engine to move to @Nadrieril's great new enum FullDef, which gets rid of HIR construct, which is a bit of a technical debt. #1072 tracks that.
We want the frontend of hax to be complete, that is:
Currently the main pain with frontend is traits: we implement our own logic for finding implementations for traits. This part is the only "smart" part of the frontend, I would say.
This trait implementation resolver is the only part of the frontend where we (1) go deep down rustc's AST (2) reconstruct some complicated data and ask Rust something. Here "reconstruct some complicated data" involves binders: we have a hard time reconstructing binders correctly, thus we break invariants and rustc crashes.
List of bugs:
aes
crate: the frontend loops indefinitely #686impl Trait
in trait resolution #1008:Unreachable place in Rust AST on
tvix/nix-compat
- ImplExprPredNotFound #604Ccing @R1kM @Nadrieril @sonmarcho who are probably interested
Action items
The text was updated successfully, but these errors were encountered: