feat(gs/achilles): Implement very basic monomorphization
Implement very basic monomorphization, by recording type variable instantiations when typechecking Call nodes and then using those in a new hir Visitor trait to copy the body of any generic decls for each possible set of instantiation of the type variables. Change-Id: Iab54030973e5d66e2b8bcd074b4cb6c001a90123 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2617 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
This commit is contained in:
parent
e7033bd8b0
commit
8d5f3029e5
12 changed files with 430 additions and 19 deletions
7
users/glittershark/achilles/Cargo.lock
generated
7
users/glittershark/achilles/Cargo.lock
generated
|
|
@ -19,6 +19,7 @@ dependencies = [
|
|||
"proptest",
|
||||
"test-strategy",
|
||||
"thiserror",
|
||||
"void",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -761,6 +762,12 @@ version = "0.9.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
|
||||
|
||||
[[package]]
|
||||
name = "void"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
||||
|
||||
[[package]]
|
||||
name = "wait-timeout"
|
||||
version = "0.2.0"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue