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:
Griffin Smith 2021-03-20 18:14:23 -04:00 committed by glittershark
parent e7033bd8b0
commit 8d5f3029e5
12 changed files with 430 additions and 19 deletions

View file

@ -14,12 +14,11 @@ const FIXTURES: &[Fixture] = &[
exit_code: 5,
expected_output: "",
},
// TODO(grfn): needs monomorphization
// Fixture {
// name: "functions",
// exit_code: 9,
// expected_output: "",
// },
Fixture {
name: "functions",
exit_code: 9,
expected_output: "",
},
Fixture {
name: "externs",
exit_code: 0,