authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-10 17:27:58-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-10 17:27:58-07:00
log4d7835e21a28fbfeca5202332c52cb47340941d5
treee794aaf5ae5affed11c324b42f2044648437f8d8
parentfc748e2ccdf69dd02ae2e7e6e9913e2d98711129

delete unused enumfield and enumdecl node types


5 files changed, 44 insertions(+), 80 deletions(-)

src/all_types.hpp+1-18
...@@ -128,8 +128,6 @@ enum NodeType {...@@ -128,8 +128,6 @@ enum NodeType {
128 NodeTypeStructField,128 NodeTypeStructField,
129 NodeTypeStructValueExpr,129 NodeTypeStructValueExpr,
130 NodeTypeStructValueField,130 NodeTypeStructValueField,
131 NodeTypeEnumDecl,
132 NodeTypeEnumField,
133 NodeTypeCompilerFnExpr,131 NodeTypeCompilerFnExpr,
134 NodeTypeCompilerFnType,132 NodeTypeCompilerFnType,
135};133};
...@@ -475,19 +473,6 @@ struct AstNodeStructField {...@@ -475,19 +473,6 @@ struct AstNodeStructField {
475 ZigList<AstNode *> *directives;473 ZigList<AstNode *> *directives;
476};474};
477475
478struct AstNodeEnumDecl {
479 Buf name;
480 ZigList<AstNode *> fields;
481 ZigList<AstNode *> *directives;
482 VisibMod visib_mod;
483};
484
485struct AstNodeEnumField {
486 Buf name;
487 ZigList<AstNode *> fields; // length 0 means simple enum
488 AstNode *val_expr;
489};
490
491struct AstNodeStringLiteral {476struct AstNodeStringLiteral {
492 Buf buf;477 Buf buf;
493 bool c;478 bool c;
...@@ -646,8 +631,6 @@ struct AstNode {...@@ -646,8 +631,6 @@ struct AstNode {
646 AstNodeFieldAccessExpr field_access_expr;631 AstNodeFieldAccessExpr field_access_expr;
647 AstNodeStructDecl struct_decl;632 AstNodeStructDecl struct_decl;
648 AstNodeStructField struct_field;633 AstNodeStructField struct_field;
649 AstNodeEnumDecl enum_decl;
650 AstNodeEnumField enum_field;
651 AstNodeStringLiteral string_literal;634 AstNodeStringLiteral string_literal;
652 AstNodeCharLiteral char_literal;635 AstNodeCharLiteral char_literal;
653 AstNodeNumberLiteral number_literal;636 AstNodeNumberLiteral number_literal;
...@@ -778,7 +761,6 @@ struct ImportTableEntry {...@@ -778,7 +761,6 @@ struct ImportTableEntry {
778761
779 // reminder: hash tables must be initialized before use762 // reminder: hash tables must be initialized before use
780 HashMap<Buf *, FnTableEntry *, buf_hash, buf_eql_buf> fn_table;763 HashMap<Buf *, FnTableEntry *, buf_hash, buf_eql_buf> fn_table;
781 HashMap<Buf *, TypeTableEntry *, buf_hash, buf_eql_buf> type_table;
782};764};
783765
784struct LabelTableEntry {766struct LabelTableEntry {
...@@ -924,6 +906,7 @@ struct BlockContext {...@@ -924,6 +906,7 @@ struct BlockContext {
924 FnTableEntry *fn_entry; // null at the module scope906 FnTableEntry *fn_entry; // null at the module scope
925 BlockContext *parent; // null when this is the root907 BlockContext *parent; // null when this is the root
926 HashMap<Buf *, VariableTableEntry *, buf_hash, buf_eql_buf> variable_table;908 HashMap<Buf *, VariableTableEntry *, buf_hash, buf_eql_buf> variable_table;
909 HashMap<Buf *, TypeTableEntry *, buf_hash, buf_eql_buf> type_table;
927 ZigList<Cast *> cast_expr_alloca_list;910 ZigList<Cast *> cast_expr_alloca_list;
928 ZigList<StructValExprCodeGen *> struct_val_expr_alloca_list;911 ZigList<StructValExprCodeGen *> struct_val_expr_alloca_list;
929 AstNode *parent_loop_node;912 AstNode *parent_loop_node;
src/analyze.cpp+42-37
...@@ -64,8 +64,6 @@ static AstNode *first_executing_node(AstNode *node) {...@@ -64,8 +64,6 @@ static AstNode *first_executing_node(AstNode *node) {
64 case NodeTypeAsmExpr:64 case NodeTypeAsmExpr:
65 case NodeTypeStructDecl:65 case NodeTypeStructDecl:
66 case NodeTypeStructField:66 case NodeTypeStructField:
67 case NodeTypeEnumDecl:
68 case NodeTypeEnumField:
69 case NodeTypeStructValueExpr:67 case NodeTypeStructValueExpr:
70 case NodeTypeStructValueField:68 case NodeTypeStructValueField:
71 case NodeTypeWhileExpr:69 case NodeTypeWhileExpr:
...@@ -167,7 +165,7 @@ TypeTableEntry *get_pointer_to_type(CodeGen *g, TypeTableEntry *child_type, bool...@@ -167,7 +165,7 @@ TypeTableEntry *get_pointer_to_type(CodeGen *g, TypeTableEntry *child_type, bool
167static TypeTableEntry *get_maybe_type(CodeGen *g, ImportTableEntry *import, TypeTableEntry *child_type) {165static TypeTableEntry *get_maybe_type(CodeGen *g, ImportTableEntry *import, TypeTableEntry *child_type) {
168 if (child_type->maybe_parent) {166 if (child_type->maybe_parent) {
169 TypeTableEntry *entry = child_type->maybe_parent;167 TypeTableEntry *entry = child_type->maybe_parent;
170 import->type_table.put(&entry->name, entry);168 import->block_context->type_table.put(&entry->name, entry);
171 return entry;169 return entry;
172 } else {170 } else {
173 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdMaybe);171 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdMaybe);
...@@ -211,7 +209,7 @@ static TypeTableEntry *get_maybe_type(CodeGen *g, ImportTableEntry *import, Type...@@ -211,7 +209,7 @@ static TypeTableEntry *get_maybe_type(CodeGen *g, ImportTableEntry *import, Type
211209
212 entry->data.maybe.child_type = child_type;210 entry->data.maybe.child_type = child_type;
213211
214 import->type_table.put(&entry->name, entry);212 import->block_context->type_table.put(&entry->name, entry);
215 child_type->maybe_parent = entry;213 child_type->maybe_parent = entry;
216 return entry;214 return entry;
217 }215 }
...@@ -223,7 +221,7 @@ static TypeTableEntry *get_array_type(CodeGen *g, ImportTableEntry *import,...@@ -223,7 +221,7 @@ static TypeTableEntry *get_array_type(CodeGen *g, ImportTableEntry *import,
223 auto existing_entry = child_type->arrays_by_size.maybe_get(array_size);221 auto existing_entry = child_type->arrays_by_size.maybe_get(array_size);
224 if (existing_entry) {222 if (existing_entry) {
225 TypeTableEntry *entry = existing_entry->value;223 TypeTableEntry *entry = existing_entry->value;
226 import->type_table.put(&entry->name, entry);224 import->block_context->type_table.put(&entry->name, entry);
227 return entry;225 return entry;
228 } else {226 } else {
229 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdArray);227 TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdArray);
...@@ -239,7 +237,7 @@ static TypeTableEntry *get_array_type(CodeGen *g, ImportTableEntry *import,...@@ -239,7 +237,7 @@ static TypeTableEntry *get_array_type(CodeGen *g, ImportTableEntry *import,
239 entry->data.array.child_type = child_type;237 entry->data.array.child_type = child_type;
240 entry->data.array.len = array_size;238 entry->data.array.len = array_size;
241239
242 import->type_table.put(&entry->name, entry);240 import->block_context->type_table.put(&entry->name, entry);
243 child_type->arrays_by_size.put(array_size, entry);241 child_type->arrays_by_size.put(array_size, entry);
244 return entry;242 return entry;
245 }243 }
...@@ -441,7 +439,7 @@ static TypeTableEntry *resolve_type(CodeGen *g, AstNode *node, ImportTableEntry...@@ -441,7 +439,7 @@ static TypeTableEntry *resolve_type(CodeGen *g, AstNode *node, ImportTableEntry
441 case AstNodeTypeTypePrimitive:439 case AstNodeTypeTypePrimitive:
442 {440 {
443 Buf *name = &node->data.type.primitive_name;441 Buf *name = &node->data.type.primitive_name;
444 auto table_entry = import->type_table.maybe_get(name);442 auto table_entry = import->block_context->type_table.maybe_get(name);
445 if (!table_entry) {443 if (!table_entry) {
446 table_entry = g->primitive_type_table.maybe_get(name);444 table_entry = g->primitive_type_table.maybe_get(name);
447 }445 }
...@@ -895,11 +893,6 @@ static void resolve_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode...@@ -895,11 +893,6 @@ static void resolve_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode
895 // struct member fns will get resolved independently893 // struct member fns will get resolved independently
896 break;894 break;
897 }895 }
898 case NodeTypeEnumDecl:
899 {
900 zig_panic("TODO resolve enum decl");
901 break;
902 }
903 case NodeTypeVariableDeclaration:896 case NodeTypeVariableDeclaration:
904 {897 {
905 VariableTableEntry *var = analyze_variable_declaration(g, import, import->block_context,898 VariableTableEntry *var = analyze_variable_declaration(g, import, import->block_context,
...@@ -942,7 +935,6 @@ static void resolve_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode...@@ -942,7 +935,6 @@ static void resolve_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode
942 case NodeTypeAsmExpr:935 case NodeTypeAsmExpr:
943 case NodeTypeFieldAccessExpr:936 case NodeTypeFieldAccessExpr:
944 case NodeTypeStructField:937 case NodeTypeStructField:
945 case NodeTypeEnumField:
946 case NodeTypeStructValueExpr:938 case NodeTypeStructValueExpr:
947 case NodeTypeStructValueField:939 case NodeTypeStructValueField:
948 case NodeTypeCompilerFnExpr:940 case NodeTypeCompilerFnExpr:
...@@ -1212,6 +1204,7 @@ BlockContext *new_block_context(AstNode *node, BlockContext *parent) {...@@ -1212,6 +1204,7 @@ BlockContext *new_block_context(AstNode *node, BlockContext *parent) {
1212 context->node = node;1204 context->node = node;
1213 context->parent = parent;1205 context->parent = parent;
1214 context->variable_table.init(8);1206 context->variable_table.init(8);
1207 context->type_table.init(8);
12151208
1216 if (parent) {1209 if (parent) {
1217 if (parent->next_child_parent_loop_node) {1210 if (parent->next_child_parent_loop_node) {
...@@ -1258,6 +1251,17 @@ VariableTableEntry *find_variable(BlockContext *context, Buf *name) {...@@ -1258,6 +1251,17 @@ VariableTableEntry *find_variable(BlockContext *context, Buf *name) {
1258 return nullptr;1251 return nullptr;
1259}1252}
12601253
1254TypeTableEntry *find_container(BlockContext *context, Buf *name) {
1255 while (context) {
1256 auto entry = context->type_table.maybe_get(name);
1257 if (entry != nullptr)
1258 return entry->value;
1259
1260 context = context->parent;
1261 }
1262 return nullptr;
1263}
1264
1261static void get_struct_field(TypeTableEntry *struct_type, Buf *name, TypeStructField **out_tsf, int *out_i) {1265static void get_struct_field(TypeTableEntry *struct_type, Buf *name, TypeStructField **out_tsf, int *out_i) {
1262 for (int i = 0; i < struct_type->data.structure.field_count; i += 1) {1266 for (int i = 0; i < struct_type->data.structure.field_count; i += 1) {
1263 TypeStructField *type_struct_field = &struct_type->data.structure.fields[i];1267 TypeStructField *type_struct_field = &struct_type->data.structure.fields[i];
...@@ -1397,6 +1401,25 @@ static TypeTableEntry *analyze_array_access_expr(CodeGen *g, ImportTableEntry *i...@@ -1397,6 +1401,25 @@ static TypeTableEntry *analyze_array_access_expr(CodeGen *g, ImportTableEntry *i
1397 return return_type;1401 return return_type;
1398}1402}
13991403
1404static TypeTableEntry *analyze_symbol_expr(CodeGen *g, ImportTableEntry *import, BlockContext *context,
1405 TypeTableEntry *expected_type, AstNode *node)
1406{
1407 Buf *variable_name = &node->data.symbol_expr.symbol;
1408 VariableTableEntry *var = find_variable(context, variable_name);
1409 if (var) {
1410 return var->type;
1411 } else {
1412 TypeTableEntry *container_type = find_container(context, variable_name);
1413 if (container_type) {
1414 return container_type;
1415 } else {
1416 add_node_error(g, node,
1417 buf_sprintf("use of undeclared identifier '%s'", buf_ptr(variable_name)));
1418 return g->builtin_types.entry_invalid;
1419 }
1420 }
1421}
1422
1400static TypeTableEntry *analyze_variable_name(CodeGen *g, ImportTableEntry *import, BlockContext *context,1423static TypeTableEntry *analyze_variable_name(CodeGen *g, ImportTableEntry *import, BlockContext *context,
1401 AstNode *node, Buf *variable_name)1424 AstNode *node, Buf *variable_name)
1402{1425{
...@@ -2381,7 +2404,7 @@ static TypeTableEntry * analyze_expression(CodeGen *g, ImportTableEntry *import,...@@ -2381,7 +2404,7 @@ static TypeTableEntry * analyze_expression(CodeGen *g, ImportTableEntry *import,
23812404
2382 case NodeTypeSymbol:2405 case NodeTypeSymbol:
2383 {2406 {
2384 return_type = analyze_variable_name(g, import, context, node, &node->data.symbol_expr.symbol);2407 return_type = analyze_symbol_expr(g, import, context, expected_type, node);
2385 break;2408 break;
2386 }2409 }
2387 case NodeTypeCastExpr:2410 case NodeTypeCastExpr:
...@@ -2499,8 +2522,6 @@ static TypeTableEntry * analyze_expression(CodeGen *g, ImportTableEntry *import,...@@ -2499,8 +2522,6 @@ static TypeTableEntry * analyze_expression(CodeGen *g, ImportTableEntry *import,
2499 case NodeTypeLabel:2522 case NodeTypeLabel:
2500 case NodeTypeStructDecl:2523 case NodeTypeStructDecl:
2501 case NodeTypeStructField:2524 case NodeTypeStructField:
2502 case NodeTypeEnumDecl:
2503 case NodeTypeEnumField:
2504 case NodeTypeStructValueField:2525 case NodeTypeStructValueField:
2505 case NodeTypeCompilerFnExpr:2526 case NodeTypeCompilerFnExpr:
2506 zig_unreachable();2527 zig_unreachable();
...@@ -2609,7 +2630,6 @@ static void analyze_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode...@@ -2609,7 +2630,6 @@ static void analyze_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode
2609 case NodeTypeRootExportDecl:2630 case NodeTypeRootExportDecl:
2610 case NodeTypeExternBlock:2631 case NodeTypeExternBlock:
2611 case NodeTypeUse:2632 case NodeTypeUse:
2612 case NodeTypeEnumDecl:
2613 case NodeTypeVariableDeclaration:2633 case NodeTypeVariableDeclaration:
2614 // already took care of these2634 // already took care of these
2615 break;2635 break;
...@@ -2645,7 +2665,6 @@ static void analyze_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode...@@ -2645,7 +2665,6 @@ static void analyze_top_level_decl(CodeGen *g, ImportTableEntry *import, AstNode
2645 case NodeTypeAsmExpr:2665 case NodeTypeAsmExpr:
2646 case NodeTypeFieldAccessExpr:2666 case NodeTypeFieldAccessExpr:
2647 case NodeTypeStructField:2667 case NodeTypeStructField:
2648 case NodeTypeEnumField:
2649 case NodeTypeStructValueExpr:2668 case NodeTypeStructValueExpr:
2650 case NodeTypeStructValueField:2669 case NodeTypeStructValueField:
2651 case NodeTypeCompilerFnExpr:2670 case NodeTypeCompilerFnExpr:
...@@ -2779,8 +2798,6 @@ static void collect_expr_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode...@@ -2779,8 +2798,6 @@ static void collect_expr_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode
2779 case NodeTypeLabel:2798 case NodeTypeLabel:
2780 case NodeTypeStructDecl:2799 case NodeTypeStructDecl:
2781 case NodeTypeStructField:2800 case NodeTypeStructField:
2782 case NodeTypeEnumDecl:
2783 case NodeTypeEnumField:
2784 case NodeTypeStructValueField:2801 case NodeTypeStructValueField:
2785 zig_unreachable();2802 zig_unreachable();
2786 }2803 }
...@@ -2794,7 +2811,7 @@ static void collect_type_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode...@@ -2794,7 +2811,7 @@ static void collect_type_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode
2794 Buf *name = &type_node->data.type.primitive_name;2811 Buf *name = &type_node->data.type.primitive_name;
2795 auto table_entry = g->primitive_type_table.maybe_get(name);2812 auto table_entry = g->primitive_type_table.maybe_get(name);
2796 if (!table_entry) {2813 if (!table_entry) {
2797 table_entry = import->type_table.maybe_get(name);2814 table_entry = import->block_context->type_table.maybe_get(name);
2798 }2815 }
2799 if (!table_entry) {2816 if (!table_entry) {
2800 decl_node->deps.put(name, type_node);2817 decl_node->deps.put(name, type_node);
...@@ -2826,7 +2843,7 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast...@@ -2826,7 +2843,7 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast
2826 Buf *name = &node->data.struct_decl.name;2843 Buf *name = &node->data.struct_decl.name;
2827 auto table_entry = g->primitive_type_table.maybe_get(name);2844 auto table_entry = g->primitive_type_table.maybe_get(name);
2828 if (!table_entry) {2845 if (!table_entry) {
2829 table_entry = import->type_table.maybe_get(name);2846 table_entry = import->block_context->type_table.maybe_get(name);
2830 }2847 }
2831 if (table_entry) {2848 if (table_entry) {
2832 node->data.struct_decl.type_entry = table_entry->value;2849 node->data.struct_decl.type_entry = table_entry->value;
...@@ -2843,20 +2860,20 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast...@@ -2843,20 +2860,20 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast
2843 buf_init_from_buf(&entry->name, name);2860 buf_init_from_buf(&entry->name, name);
2844 // put off adding the debug type until we do the full struct body2861 // put off adding the debug type until we do the full struct body
2845 // this type is incomplete until we do another pass2862 // this type is incomplete until we do another pass
2846 import->type_table.put(&entry->name, entry);2863 import->block_context->type_table.put(&entry->name, entry);
2847 node->data.struct_decl.type_entry = entry;2864 node->data.struct_decl.type_entry = entry;
28482865
2849 bool is_pub = (node->data.struct_decl.visib_mod != VisibModPrivate);2866 bool is_pub = (node->data.struct_decl.visib_mod != VisibModPrivate);
2850 if (is_pub) {2867 if (is_pub) {
2851 for (int i = 0; i < import->importers.length; i += 1) {2868 for (int i = 0; i < import->importers.length; i += 1) {
2852 ImporterInfo importer = import->importers.at(i);2869 ImporterInfo importer = import->importers.at(i);
2853 auto table_entry = importer.import->type_table.maybe_get(&entry->name);2870 auto table_entry = importer.import->block_context->type_table.maybe_get(&entry->name);
2854 if (table_entry) {2871 if (table_entry) {
2855 add_node_error(g, importer.source_node,2872 add_node_error(g, importer.source_node,
2856 buf_sprintf("import of type '%s' overrides existing definition",2873 buf_sprintf("import of type '%s' overrides existing definition",
2857 buf_ptr(&entry->name)));2874 buf_ptr(&entry->name)));
2858 } else {2875 } else {
2859 importer.import->type_table.put(&entry->name, entry);2876 importer.import->block_context->type_table.put(&entry->name, entry);
2860 }2877 }
2861 }2878 }
2862 }2879 }
...@@ -2886,11 +2903,6 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast...@@ -2886,11 +2903,6 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast
2886 detect_top_level_decl_deps(g, import, fn_def_node);2903 detect_top_level_decl_deps(g, import, fn_def_node);
2887 }2904 }
28882905
2889 break;
2890 }
2891 case NodeTypeEnumDecl:
2892 {
2893 zig_panic("TODO detect enum top level decl deps");
2894 break;2906 break;
2895 }2907 }
2896 case NodeTypeExternBlock:2908 case NodeTypeExternBlock:
...@@ -2986,7 +2998,6 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast...@@ -2986,7 +2998,6 @@ static void detect_top_level_decl_deps(CodeGen *g, ImportTableEntry *import, Ast
2986 case NodeTypeAsmExpr:2998 case NodeTypeAsmExpr:
2987 case NodeTypeFieldAccessExpr:2999 case NodeTypeFieldAccessExpr:
2988 case NodeTypeStructField:3000 case NodeTypeStructField:
2989 case NodeTypeEnumField:
2990 case NodeTypeStructValueExpr:3001 case NodeTypeStructValueExpr:
2991 case NodeTypeStructValueField:3002 case NodeTypeStructValueField:
2992 case NodeTypeCompilerFnExpr:3003 case NodeTypeCompilerFnExpr:
...@@ -3216,8 +3227,6 @@ Expr *get_resolved_expr(AstNode *node) {...@@ -3216,8 +3227,6 @@ Expr *get_resolved_expr(AstNode *node) {
3216 case NodeTypeStructDecl:3227 case NodeTypeStructDecl:
3217 case NodeTypeStructField:3228 case NodeTypeStructField:
3218 case NodeTypeStructValueField:3229 case NodeTypeStructValueField:
3219 case NodeTypeEnumDecl:
3220 case NodeTypeEnumField:
3221 zig_unreachable();3230 zig_unreachable();
3222 }3231 }
3223}3232}
...@@ -3267,8 +3276,6 @@ NumLitCodeGen *get_resolved_num_lit(AstNode *node) {...@@ -3267,8 +3276,6 @@ NumLitCodeGen *get_resolved_num_lit(AstNode *node) {
3267 case NodeTypeStructDecl:3276 case NodeTypeStructDecl:
3268 case NodeTypeStructField:3277 case NodeTypeStructField:
3269 case NodeTypeStructValueField:3278 case NodeTypeStructValueField:
3270 case NodeTypeEnumDecl:
3271 case NodeTypeEnumField:
3272 case NodeTypeCompilerFnExpr:3279 case NodeTypeCompilerFnExpr:
3273 zig_unreachable();3280 zig_unreachable();
3274 }3281 }
...@@ -3319,8 +3326,6 @@ TopLevelDecl *get_resolved_top_level_decl(AstNode *node) {...@@ -3319,8 +3326,6 @@ TopLevelDecl *get_resolved_top_level_decl(AstNode *node) {
3319 case NodeTypeContinue:3326 case NodeTypeContinue:
3320 case NodeTypeStructField:3327 case NodeTypeStructField:
3321 case NodeTypeStructValueField:3328 case NodeTypeStructValueField:
3322 case NodeTypeEnumDecl:
3323 case NodeTypeEnumField:
3324 case NodeTypeCompilerFnExpr:3329 case NodeTypeCompilerFnExpr:
3325 case NodeTypeCompilerFnType:3330 case NodeTypeCompilerFnType:
3326 zig_unreachable();3331 zig_unreachable();
src/analyze.hpp+1
...@@ -15,6 +15,7 @@ void add_node_error(CodeGen *g, AstNode *node, Buf *msg);...@@ -15,6 +15,7 @@ void add_node_error(CodeGen *g, AstNode *node, Buf *msg);
15TypeTableEntry *new_type_table_entry(TypeTableEntryId id);15TypeTableEntry *new_type_table_entry(TypeTableEntryId id);
16TypeTableEntry *get_pointer_to_type(CodeGen *g, TypeTableEntry *child_type, bool is_const, bool is_noalias);16TypeTableEntry *get_pointer_to_type(CodeGen *g, TypeTableEntry *child_type, bool is_const, bool is_noalias);
17VariableTableEntry *find_variable(BlockContext *context, Buf *name);17VariableTableEntry *find_variable(BlockContext *context, Buf *name);
18TypeTableEntry *find_container(BlockContext *context, Buf *name);
18BlockContext *new_block_context(AstNode *node, BlockContext *parent);19BlockContext *new_block_context(AstNode *node, BlockContext *parent);
19Expr *get_resolved_expr(AstNode *node);20Expr *get_resolved_expr(AstNode *node);
20NumLitCodeGen *get_resolved_num_lit(AstNode *node);21NumLitCodeGen *get_resolved_num_lit(AstNode *node);
src/codegen.cpp-3
...@@ -1752,8 +1752,6 @@ static LLVMValueRef gen_expr_no_cast(CodeGen *g, AstNode *node) {...@@ -1752,8 +1752,6 @@ static LLVMValueRef gen_expr_no_cast(CodeGen *g, AstNode *node) {
1752 case NodeTypeUse:1752 case NodeTypeUse:
1753 case NodeTypeStructDecl:1753 case NodeTypeStructDecl:
1754 case NodeTypeStructField:1754 case NodeTypeStructField:
1755 case NodeTypeEnumDecl:
1756 case NodeTypeEnumField:
1757 case NodeTypeStructValueField:1755 case NodeTypeStructValueField:
1758 case NodeTypeCompilerFnExpr:1756 case NodeTypeCompilerFnExpr:
1759 zig_unreachable();1757 zig_unreachable();
...@@ -2516,7 +2514,6 @@ static ImportTableEntry *codegen_add_code(CodeGen *g, Buf *abs_full_path,...@@ -2516,7 +2514,6 @@ static ImportTableEntry *codegen_add_code(CodeGen *g, Buf *abs_full_path,
2516 import_entry->line_offsets = tokenization.line_offsets;2514 import_entry->line_offsets = tokenization.line_offsets;
2517 import_entry->path = full_path;2515 import_entry->path = full_path;
2518 import_entry->fn_table.init(32);2516 import_entry->fn_table.init(32);
2519 import_entry->type_table.init(32);
25202517
2521 import_entry->root = ast_parse(source_code, tokenization.tokens, import_entry, g->err_color);2518 import_entry->root = ast_parse(source_code, tokenization.tokens, import_entry, g->err_color);
2522 assert(import_entry->root);2519 assert(import_entry->root);
src/parser.cpp-22
...@@ -144,10 +144,6 @@ const char *node_type_str(NodeType node_type) {...@@ -144,10 +144,6 @@ const char *node_type_str(NodeType node_type) {
144 return "StructDecl";144 return "StructDecl";
145 case NodeTypeStructField:145 case NodeTypeStructField:
146 return "StructField";146 return "StructField";
147 case NodeTypeEnumDecl:
148 return "EnumDecl";
149 case NodeTypeEnumField:
150 return "EnumField";
151 case NodeTypeStructValueExpr:147 case NodeTypeStructValueExpr:
152 return "StructValueExpr";148 return "StructValueExpr";
153 case NodeTypeStructValueField:149 case NodeTypeStructValueField:
...@@ -435,24 +431,6 @@ void ast_print(AstNode *node, int indent) {...@@ -435,24 +431,6 @@ void ast_print(AstNode *node, int indent) {
435 ast_print(node->data.struct_field.type, indent + 2);431 ast_print(node->data.struct_field.type, indent + 2);
436 }432 }
437 break;433 break;
438 case NodeTypeEnumDecl:
439 fprintf(stderr, "%s '%s'\n",
440 node_type_str(node->type), buf_ptr(&node->data.enum_decl.name));
441 for (int i = 0; i < node->data.enum_decl.fields.length; i += 1) {
442 AstNode *child = node->data.enum_decl.fields.at(i);
443 ast_print(child, indent + 2);
444 }
445 break;
446 case NodeTypeEnumField:
447 fprintf(stderr, "%s '%s'\n", node_type_str(node->type), buf_ptr(&node->data.enum_field.name));
448 if (node->data.enum_field.val_expr) {
449 ast_print(node->data.enum_field.val_expr, indent + 2);
450 }
451 for (int i = 0; i < node->data.enum_field.fields.length; i += 1) {
452 AstNode *child = node->data.enum_field.fields.at(i);
453 ast_print(child, indent + 2);
454 }
455 break;
456 case NodeTypeStructValueExpr:434 case NodeTypeStructValueExpr:
457 fprintf(stderr, "%s\n", node_type_str(node->type));435 fprintf(stderr, "%s\n", node_type_str(node->type));
458 ast_print(node->data.struct_val_expr.type, indent + 2);436 ast_print(node->data.struct_val_expr.type, indent + 2);