diff --git a/src/stage1/all_types.hpp b/src/stage1/all_types.hpp index 041387166e..4371f8d523 100644 --- a/src/stage1/all_types.hpp +++ b/src/stage1/all_types.hpp @@ -679,9 +679,6 @@ enum NodeType { NodeTypePtrDeref, NodeTypeUnwrapOptional, NodeTypeUsingNamespace, - NodeTypeBoolLiteral, - NodeTypeNullLiteral, - NodeTypeUndefinedLiteral, NodeTypeUnreachable, NodeTypeIfBoolExpr, NodeTypeWhileExpr, @@ -1171,10 +1168,6 @@ struct AstNodeEnumLiteral { Buf *name; }; -struct AstNodeBoolLiteral { - bool value; -}; - struct AstNodeBreakExpr { Buf *name; AstNode *expr; // may be null @@ -1240,7 +1233,6 @@ struct AstNode { AstNodeStructField struct_field; AstNodeContainerInitExpr container_init_expr; AstNodeStructValueField struct_val_field; - AstNodeBoolLiteral bool_literal; AstNodeBreakExpr break_expr; AstNodeContinueExpr continue_expr; AstNodeArrayType array_type; diff --git a/src/stage1/analyze.cpp b/src/stage1/analyze.cpp index 94ed3a2162..0f8428d1b4 100644 --- a/src/stage1/analyze.cpp +++ b/src/stage1/analyze.cpp @@ -4094,9 +4094,6 @@ void scan_decls(CodeGen *g, ScopeDecls *decls_scope, AstNode *node) { case NodeTypeIntLiteral: case NodeTypeStringLiteral: case NodeTypeCharLiteral: - case NodeTypeBoolLiteral: - case NodeTypeNullLiteral: - case NodeTypeUndefinedLiteral: case NodeTypeIdentifier: case NodeTypePrefixOpExpr: case NodeTypePointerType: diff --git a/src/stage1/astgen.cpp b/src/stage1/astgen.cpp index fbc5b024ff..63a0a073e1 100644 --- a/src/stage1/astgen.cpp +++ b/src/stage1/astgen.cpp @@ -3857,12 +3857,6 @@ static Stage1ZirInst *astgen_char_lit(Stage1AstGen *ag, Scope *scope, AstNode *n return ir_build_const_uint(ag, scope, node, codepoint); } -static Stage1ZirInst *astgen_null_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) { - assert(node->type == NodeTypeNullLiteral); - - return ir_build_const_null(ag, scope, node); -} - static Stage1ZirInst *astgen_identifier(Stage1AstGen *ag, Scope *scope, AstNode *node, LVal lval, ResultLoc *result_loc) { @@ -6592,11 +6586,6 @@ static Stage1ZirInst *astgen_for_expr(Stage1AstGen *ag, Scope *parent_scope, Ast return ir_lval_wrap(ag, parent_scope, phi, lval, result_loc); } -static Stage1ZirInst *astgen_bool_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) { - assert(node->type == NodeTypeBoolLiteral); - return ir_build_const_bool(ag, scope, node, node->data.bool_literal.value); -} - static Stage1ZirInst *astgen_enum_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) { assert(node->type == NodeTypeEnumLiteral); // Currently, stage1 runs astgen for every comptime function call, @@ -6736,11 +6725,6 @@ static Stage1ZirInst *astgen_anyframe_type(Stage1AstGen *ag, Scope *scope, AstNo return ir_build_anyframe_type(ag, scope, node, payload_type_value); } -static Stage1ZirInst *astgen_undefined_literal(Stage1AstGen *ag, Scope *scope, AstNode *node) { - assert(node->type == NodeTypeUndefinedLiteral); - return ir_build_const_undefined(ag, scope, node); -} - static Stage1ZirInst *astgen_asm_expr(Stage1AstGen *ag, Scope *scope, AstNode *node) { assert(node->type == NodeTypeAsmExpr); AstNodeAsmExpr *asm_expr = &node->data.asm_expr; @@ -8063,8 +8047,6 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc Stage1ZirInst *load_ptr = ir_build_load_ptr(ag, scope, node, unwrapped_ptr); return ir_expr_wrap(ag, scope, load_ptr, result_loc); } - case NodeTypeBoolLiteral: - return ir_lval_wrap(ag, scope, astgen_bool_literal(ag, scope, node), lval, result_loc); case NodeTypeArrayType: return ir_lval_wrap(ag, scope, astgen_array_type(ag, scope, node), lval, result_loc); case NodeTypePointerType: @@ -8073,12 +8055,8 @@ static Stage1ZirInst *astgen_node_raw(Stage1AstGen *ag, AstNode *node, Scope *sc return ir_lval_wrap(ag, scope, astgen_anyframe_type(ag, scope, node), lval, result_loc); case NodeTypeStringLiteral: return ir_lval_wrap(ag, scope, astgen_string_literal(ag, scope, node), lval, result_loc); - case NodeTypeUndefinedLiteral: - return ir_lval_wrap(ag, scope, astgen_undefined_literal(ag, scope, node), lval, result_loc); case NodeTypeAsmExpr: return ir_lval_wrap(ag, scope, astgen_asm_expr(ag, scope, node), lval, result_loc); - case NodeTypeNullLiteral: - return ir_lval_wrap(ag, scope, astgen_null_literal(ag, scope, node), lval, result_loc); case NodeTypeIfErrorExpr: return astgen_if_err_expr(ag, scope, node, lval, result_loc); case NodeTypeIfOptional: @@ -8163,14 +8141,11 @@ static Stage1ZirInst *astgen_node_extra(Stage1AstGen *ag, AstNode *node, Scope * case NodeTypeWhileExpr: case NodeTypeForExpr: case NodeTypeReturnExpr: - case NodeTypeBoolLiteral: case NodeTypeArrayType: case NodeTypePointerType: case NodeTypeAnyFrameType: case NodeTypeStringLiteral: - case NodeTypeUndefinedLiteral: case NodeTypeAsmExpr: - case NodeTypeNullLiteral: case NodeTypeIfErrorExpr: case NodeTypeIfOptional: case NodeTypeSwitchExpr: diff --git a/src/stage1/parser.cpp b/src/stage1/parser.cpp index ec02e6fa8b..48516cb777 100644 --- a/src/stage1/parser.cpp +++ b/src/stage1/parser.cpp @@ -1704,32 +1704,10 @@ static AstNode *ast_parse_primary_type_expr(ParseContext *pc) { return res; } - TokenIndex false_token = eat_token_if(pc, TokenIdKeywordFalse); - if (false_token != 0) { - AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, false_token); - res->data.bool_literal.value = false; - return res; - } - - TokenIndex null = eat_token_if(pc, TokenIdKeywordNull); - if (null != 0) - return ast_create_node(pc, NodeTypeNullLiteral, null); - TokenIndex anyframe = eat_token_if(pc, TokenIdKeywordAnyFrame); if (anyframe != 0) return ast_create_node(pc, NodeTypeAnyFrameType, anyframe); - TokenIndex true_token = eat_token_if(pc, TokenIdKeywordTrue); - if (true_token != 0) { - AstNode *res = ast_create_node(pc, NodeTypeBoolLiteral, true_token); - res->data.bool_literal.value = true; - return res; - } - - TokenIndex undefined = eat_token_if(pc, TokenIdKeywordUndefined); - if (undefined != 0) - return ast_create_node(pc, NodeTypeUndefinedLiteral, undefined); - TokenIndex unreachable = eat_token_if(pc, TokenIdKeywordUnreachable); if (unreachable != 0) return ast_create_node(pc, NodeTypeUnreachable, unreachable); @@ -3094,15 +3072,6 @@ void ast_visit_node_children(AstNode *node, void (*visit)(AstNode **, void *cont case NodeTypeUsingNamespace: visit_field(&node->data.using_namespace.expr, visit, context); break; - case NodeTypeBoolLiteral: - // none - break; - case NodeTypeNullLiteral: - // none - break; - case NodeTypeUndefinedLiteral: - // none - break; case NodeTypeIfBoolExpr: visit_field(&node->data.if_bool_expr.condition, visit, context); visit_field(&node->data.if_bool_expr.then_block, visit, context); diff --git a/src/stage1/tokenizer.cpp b/src/stage1/tokenizer.cpp index 47e324c933..820c73be5c 100644 --- a/src/stage1/tokenizer.cpp +++ b/src/stage1/tokenizer.cpp @@ -163,7 +163,6 @@ static const struct ZigKeyword zig_keywords[] = { {"error", TokenIdKeywordError}, {"export", TokenIdKeywordExport}, {"extern", TokenIdKeywordExtern}, - {"false", TokenIdKeywordFalse}, {"fn", TokenIdKeywordFn}, {"for", TokenIdKeywordFor}, {"if", TokenIdKeywordIf}, @@ -171,7 +170,6 @@ static const struct ZigKeyword zig_keywords[] = { {"noalias", TokenIdKeywordNoAlias}, {"noinline", TokenIdKeywordNoInline}, {"nosuspend", TokenIdKeywordNoSuspend}, - {"null", TokenIdKeywordNull}, {"opaque", TokenIdKeywordOpaque}, {"or", TokenIdKeywordOr}, {"orelse", TokenIdKeywordOrElse}, @@ -185,9 +183,7 @@ static const struct ZigKeyword zig_keywords[] = { {"switch", TokenIdKeywordSwitch}, {"test", TokenIdKeywordTest}, {"threadlocal", TokenIdKeywordThreadLocal}, - {"true", TokenIdKeywordTrue}, {"try", TokenIdKeywordTry}, - {"undefined", TokenIdKeywordUndefined}, {"union", TokenIdKeywordUnion}, {"unreachable", TokenIdKeywordUnreachable}, {"usingnamespace", TokenIdKeywordUsingNamespace}, @@ -1563,7 +1559,6 @@ const char * token_name(TokenId id) { case TokenIdKeywordError: return "error"; case TokenIdKeywordExport: return "export"; case TokenIdKeywordExtern: return "extern"; - case TokenIdKeywordFalse: return "false"; case TokenIdKeywordFn: return "fn"; case TokenIdKeywordFor: return "for"; case TokenIdKeywordIf: return "if"; @@ -1571,7 +1566,6 @@ const char * token_name(TokenId id) { case TokenIdKeywordNoAlias: return "noalias"; case TokenIdKeywordNoInline: return "noinline"; case TokenIdKeywordNoSuspend: return "nosuspend"; - case TokenIdKeywordNull: return "null"; case TokenIdKeywordOpaque: return "opaque"; case TokenIdKeywordOr: return "or"; case TokenIdKeywordOrElse: return "orelse"; @@ -1583,9 +1577,7 @@ const char * token_name(TokenId id) { case TokenIdKeywordSwitch: return "switch"; case TokenIdKeywordTest: return "test"; case TokenIdKeywordThreadLocal: return "threadlocal"; - case TokenIdKeywordTrue: return "true"; case TokenIdKeywordTry: return "try"; - case TokenIdKeywordUndefined: return "undefined"; case TokenIdKeywordUnion: return "union"; case TokenIdKeywordUnreachable: return "unreachable"; case TokenIdKeywordUsingNamespace: return "usingnamespace"; diff --git a/src/stage1/tokenizer.hpp b/src/stage1/tokenizer.hpp index 56605c1764..e2cb96e866 100644 --- a/src/stage1/tokenizer.hpp +++ b/src/stage1/tokenizer.hpp @@ -72,7 +72,6 @@ enum TokenId : uint8_t { TokenIdKeywordError, TokenIdKeywordExport, TokenIdKeywordExtern, - TokenIdKeywordFalse, TokenIdKeywordFn, TokenIdKeywordFor, TokenIdKeywordIf, @@ -81,7 +80,6 @@ enum TokenId : uint8_t { TokenIdKeywordLinkSection, TokenIdKeywordNoAlias, TokenIdKeywordNoSuspend, - TokenIdKeywordNull, TokenIdKeywordOpaque, TokenIdKeywordOr, TokenIdKeywordOrElse, @@ -94,9 +92,7 @@ enum TokenId : uint8_t { TokenIdKeywordSwitch, TokenIdKeywordTest, TokenIdKeywordThreadLocal, - TokenIdKeywordTrue, TokenIdKeywordTry, - TokenIdKeywordUndefined, TokenIdKeywordUnion, TokenIdKeywordUnreachable, TokenIdKeywordUsingNamespace,