Commit be737bb5cc
Changed files (6)
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;
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:
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:
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);
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";
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,