tvl-depot/users/grfn/achilles/src
Griffin Smith 48098f83c1 feat(grfn/achilles): Implement tuples, and tuple patterns
Implement tuple expressions, types, and patterns, all the way through
the parser down to the typechecker. In LLVM, these are implemented as
anonymous structs, using an `extract` instruction when they're pattern
matched on to get out the individual fields.

Currently the only limitation here is patterns aren't supported in
function argument position, but you can still do something like

    fn xy = let (x, y) = xy in x + y

Change-Id: I357f17e9d4052e741eda8605b6662822f331efde
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3027
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-04-17 06:33:17 +00:00
..
ast feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
codegen feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
commands refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
common refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
interpreter feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
parser feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
passes feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
tc feat(grfn/achilles): Implement tuples, and tuple patterns 2021-04-17 06:33:17 +00:00
compiler.rs refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00
main.rs refactor(users/glittershark): Rename to grfn 2021-04-12 14:45:51 +00:00