Commit Graph

63 Commits

Author SHA1 Message Date
Greg Shuflin 45c72f97a2 Break up symbol table code into smaller modules 2021-11-02 20:49:38 -07:00
Greg Shuflin eb6a7e95a9 Move fqsn code into separate module 2021-11-02 20:33:51 -07:00
Greg Shuflin 383eb7bb62 Use walk_if_expr_body 2021-11-02 20:23:08 -07:00
Greg Shuflin 8b5e965f16 Remove old code 2021-11-02 18:58:38 -07:00
Greg Shuflin 3e16070602 Make modules a type of declaration 2021-11-02 18:34:15 -07:00
Greg Shuflin e40782739d Use annotations to mark builtins 2021-11-02 16:56:12 -07:00
Greg Shuflin 0464d959ec Rename Scope -> ScopeSegment 2021-11-02 01:20:30 -07:00
Greg Shuflin d4b00b008b Get rid of id_to_symbol table
Now, an ItemId maps to a DefId, and a DefId maps to
a Symbol in a different table.
2021-11-02 00:57:24 -07:00
Greg Shuflin ec92e14fcf Remove fqsn_to_id table
The trie already takes care of this
2021-11-01 23:43:03 -07:00
Greg Shuflin 0bf0b3e2e8 Clean up some symbol table code 2021-11-01 21:34:45 -07:00
Greg Shuflin acc99fa0ef Put single ImmediateStruct member into scope 2021-11-01 21:17:29 -07:00
Greg Shuflin 4c6a93302d Support Record patterns 2021-11-01 13:48:04 -07:00
Greg Shuflin d084deac80 Start to correctly implmeent builtin functions 2021-10-31 03:13:51 -07:00
Greg Shuflin 803a836887 Implement immediate records 2021-10-31 02:30:38 -07:00
Greg Shuflin ea494bb328 Fix a number of TODOs
Add def -> symbol lookup table
Minor syntax changes
2021-10-30 17:38:16 -07:00
Greg Shuflin 304df5c50e Remove arity from ReducedIR, symbol table
Instead look this up via the type context
2021-10-29 19:00:27 -07:00
Greg Shuflin 6b9ca92e00 Have TypeContext calculate tag numbers 2021-10-29 17:27:21 -07:00
Greg Shuflin 209b6bba48 Start adding infrastructure for defining new types 2021-10-29 12:12:41 -07:00
Greg Shuflin cec0f35fc3 Add test for duplicate variant check 2021-10-29 00:48:44 -07:00
Greg Shuflin 30fbc9a721 Add test for duplicate types in symbol table 2021-10-29 00:28:05 -07:00
Greg Shuflin 765a0bec58 Make use of TypeContext in SymbolTable 2021-10-27 15:39:53 -07:00
Greg Shuflin 6a7c88cd02 Fix clippy 2021-10-27 01:17:53 -07:00
Greg Shuflin 08590430e4 Move minimal typechecking code into directory-style module 2021-10-27 01:11:46 -07:00
Greg Shuflin d65233240a Unify u32-based identifiers into common code
Create a new type Id<T> paramaterized by whatever specific class of IDs
is relevant to a domain; create stores and macros to support this; and
repace the existing Id types.
2021-10-27 00:36:23 -07:00
Greg Shuflin 0c6d2be95a Use term "tag" consistently with type u32 2021-10-26 15:45:41 -07:00
Greg Shuflin 3402cfe326 Clippy pass 2021-10-26 13:37:03 -07:00
Greg Shuflin df173a0096 Variables in pattern match 2021-10-26 11:37:43 -07:00
Greg Shuflin cac61ba093 Refactor TypeId representation in symbol table 2021-10-25 16:12:24 -07:00
Greg Shuflin 97117827c6 Modify Symbol struct 2021-10-25 13:34:17 -07:00
Greg Shuflin fb0bf29826 Add Display impl for FQSN 2021-10-25 12:47:35 -07:00
Greg Shuflin df41da84b4 Fix scope test bug
This involved fixing how the ScopeResolver handles local bindings. I
probably want to rewrite much of that code.
2021-10-25 01:02:19 -07:00
Greg Shuflin bd698629ff Continuing work on reduced ir 2021-10-24 05:50:04 -07:00
Greg Shuflin 82de5c6e27 Handle local variables and function params in symbol table 2021-10-24 02:02:04 -07:00
Greg Shuflin 9540dc70f2 Successfully refactor the ScopeResolver tables 2021-10-24 01:06:40 -07:00
Greg Shuflin ba09919aa1 Bunch of rewrites to scope resolver 2021-10-24 00:08:26 -07:00
Greg Shuflin d8f6c41f04 Start re-writing reduced ast and evaluator 2021-10-23 21:18:40 -07:00
Greg Shuflin 92a695e523 Eliminate one table in SymbolTable 2021-10-21 21:55:21 -07:00
Greg Shuflin b342213826 Add ids to type Variants 2021-10-21 20:00:26 -07:00
Greg Shuflin b4f765167b Redesign Variant struct 2021-10-21 19:53:50 -07:00
Greg Shuflin 2256f25482 Add id_to_symbol table to SymbolTable 2021-10-21 19:43:03 -07:00
Greg Shuflin fb31687dea Run rustfmt on symbol_table code 2021-10-21 14:46:42 -07:00
Greg Shuflin 0d488b250d Remove submodule 2021-10-19 23:06:52 -07:00
Greg Shuflin 0c6c4ef47e Symbol table clippy 2021-10-19 21:18:57 -07:00
Greg Shuflin 355ed3c749 Rename FQSN -> Fqsn 2021-10-19 21:14:15 -07:00
Greg Shuflin a9b8fdcad6 Track duplicate record definitions 2021-10-19 20:35:53 -07:00
Greg Shuflin 15a08aa8f7 SymbolTable error refactoring 2021-10-19 19:19:21 -07:00
Greg Shuflin 9640a5b05b Use vec of duplicate errors 2021-10-19 18:22:34 -07:00
Greg Shuflin d3378c3210 Use Vec of symbol errors 2021-10-19 18:00:34 -07:00
Greg Shuflin 7a0134014b Switch scope to Rc<String> 2021-10-19 17:22:35 -07:00
Greg Shuflin 3c4d31c963 Reduce complexity of DataConstructor 2021-10-19 16:50:08 -07:00