mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Further cleanup.
This commit is contained in:
@@ -407,7 +407,6 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
case EXPR_SLICE_LEN:
|
||||
case EXPR_DISCARD:
|
||||
case EXPR_RVALUE:
|
||||
case EXPR_UNRESOLVED_IDENTIFIER:
|
||||
case EXPR_RECAST:
|
||||
case EXPR_ADDR_CONVERSION:
|
||||
case EXPR_EXT_TRUNC:
|
||||
@@ -417,7 +416,8 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
case EXPR_VECTOR_FROM_ARRAY:
|
||||
case EXPR_ANYFAULT_TO_FAULT:
|
||||
break;
|
||||
case EXPR_ACCESS_UNRESOLVED:
|
||||
case UNRESOLVED_EXPRS:
|
||||
UNREACHABLE
|
||||
case EXPR_ACCESS_RESOLVED:
|
||||
break;
|
||||
case EXPR_ANYSWITCH:
|
||||
@@ -438,15 +438,10 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
break;
|
||||
case EXPR_CALL:
|
||||
break;
|
||||
case EXPR_CAST:
|
||||
case EXPR_CATCH_UNRESOLVED:
|
||||
UNREACHABLE
|
||||
case EXPR_CATCH:
|
||||
break;
|
||||
case EXPR_COMPILER_CONST:
|
||||
break;
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
break;
|
||||
case EXPR_COND:
|
||||
break;
|
||||
case EXPR_CONST:
|
||||
@@ -482,16 +477,12 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
break;
|
||||
case EXPR_DESIGNATOR:
|
||||
break;
|
||||
case EXPR_EMBED:
|
||||
break;
|
||||
case EXPR_EXPRESSION_LIST:
|
||||
break;
|
||||
case EXPR_EXPR_BLOCK:
|
||||
break;
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
break;
|
||||
case EXPR_GENERIC_IDENT:
|
||||
break;
|
||||
case EXPR_HASH_IDENT:
|
||||
break;
|
||||
case EXPR_IDENTIFIER:
|
||||
@@ -504,8 +495,6 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
break;
|
||||
case EXPR_MACRO_BLOCK:
|
||||
break;
|
||||
case EXPR_MACRO_BODY:
|
||||
break;
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
break;
|
||||
case EXPR_MEMBER_GET:
|
||||
@@ -518,8 +507,6 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
break;
|
||||
case EXPR_OPTIONAL:
|
||||
break;
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
UNREACHABLE
|
||||
case EXPR_POINTER_OFFSET:
|
||||
break;
|
||||
case EXPR_POISONED:
|
||||
@@ -553,20 +540,15 @@ static void c_emit_expr(GenContext *c, CValue *value, Expr *expr)
|
||||
case EXPR_TEST_HOOK:
|
||||
break;
|
||||
case EXPR_TRY:
|
||||
case EXPR_TRY_UNRESOLVED:
|
||||
break;
|
||||
case EXPR_TRY_UNWRAP_CHAIN:
|
||||
break;
|
||||
case EXPR_TYPEID:
|
||||
break;
|
||||
case EXPR_TYPEID_INFO:
|
||||
break;
|
||||
case EXPR_TYPEINFO:
|
||||
break;
|
||||
case EXPR_UNARY:
|
||||
break;
|
||||
case EXPR_VASPLAT:
|
||||
break;
|
||||
}
|
||||
PRINT("/* TODO EXPR */\n");
|
||||
}
|
||||
|
||||
@@ -1661,5 +1661,7 @@ case TYPE_U8: case TYPE_U16: case TYPE_U32: case TYPE_U64: case TYPE_U128
|
||||
|
||||
#define UNRESOLVED_EXPRS EXPR_TRY_UNRESOLVED: case EXPR_ACCESS_UNRESOLVED: \
|
||||
case EXPR_CATCH_UNRESOLVED: case EXPR_UNRESOLVED_IDENTIFIER: case EXPR_CAST: \
|
||||
case EXPR_TYPEID
|
||||
case EXPR_TYPEID: case EXPR_EMBED: case EXPR_VASPLAT: case EXPR_OTHER_CONTEXT: \
|
||||
case EXPR_GENERIC_IDENT: case EXPR_COMPOUND_LITERAL: case EXPR_MACRO_BODY
|
||||
|
||||
|
||||
|
||||
@@ -194,8 +194,6 @@ bool expr_may_addr(Expr *expr)
|
||||
{
|
||||
case UNRESOLVED_EXPRS:
|
||||
UNREACHABLE
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
return expr_may_addr(expr->expr_other_context.inner);
|
||||
case EXPR_IDENTIFIER:
|
||||
{
|
||||
Decl *decl = expr->ident_expr;
|
||||
@@ -260,23 +258,19 @@ bool expr_may_addr(Expr *expr)
|
||||
case EXPR_CALL:
|
||||
case EXPR_MAKE_ANY:
|
||||
case EXPR_CATCH:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_COND:
|
||||
case EXPR_CONST:
|
||||
case EXPR_DECL:
|
||||
case EXPR_DEFAULT_ARG:
|
||||
case EXPR_DESIGNATED_INITIALIZER_LIST:
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_EXPRESSION_LIST:
|
||||
case EXPR_EXPR_BLOCK:
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_INITIALIZER_LIST:
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_LAST_FAULT:
|
||||
case EXPR_MACRO_BLOCK:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
case EXPR_NOP:
|
||||
@@ -295,7 +289,6 @@ bool expr_may_addr(Expr *expr)
|
||||
case EXPR_TRY:
|
||||
case EXPR_TRY_UNWRAP_CHAIN:
|
||||
case EXPR_TYPEID_INFO:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_EXT_TRUNC:
|
||||
case EXPR_INT_TO_BOOL:
|
||||
case EXPR_MAKE_SLICE:
|
||||
@@ -311,9 +304,6 @@ bool expr_is_runtime_const(Expr *expr)
|
||||
RETRY:
|
||||
switch (expr->expr_kind)
|
||||
{
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
expr = expr->expr_other_context.inner;
|
||||
goto RETRY;
|
||||
case EXPR_POINTER_OFFSET:
|
||||
return exprid_is_runtime_const(expr->pointer_offset_expr.ptr) && exprid_is_runtime_const(
|
||||
expr->pointer_offset_expr.offset);
|
||||
@@ -321,7 +311,6 @@ bool expr_is_runtime_const(Expr *expr)
|
||||
case EXPR_RETVAL:
|
||||
case EXPR_BUILTIN:
|
||||
case EXPR_CT_EVAL:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_BENCHMARK_HOOK:
|
||||
case EXPR_TEST_HOOK:
|
||||
case EXPR_ANYSWITCH:
|
||||
@@ -337,7 +326,6 @@ bool expr_is_runtime_const(Expr *expr)
|
||||
case EXPR_CT_DEFINED:
|
||||
case EXPR_CT_IS_CONST:
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_EXPR_BLOCK:
|
||||
case EXPR_DECL:
|
||||
case EXPR_CALL:
|
||||
@@ -505,13 +493,10 @@ bool expr_is_runtime_const(Expr *expr)
|
||||
case EXPR_TYPEINFO:
|
||||
case EXPR_HASH_IDENT:
|
||||
case EXPR_CT_IDENT:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_POISONED:
|
||||
case EXPR_CT_ARG:
|
||||
case EXPR_ASM:
|
||||
case EXPR_SUBSCRIPT_ASSIGN:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
UNREACHABLE
|
||||
case EXPR_NOP:
|
||||
@@ -775,8 +760,6 @@ bool expr_is_pure(Expr *expr)
|
||||
return expr_is_pure(expr->int_to_bool_expr.inner);
|
||||
case EXPR_EXT_TRUNC:
|
||||
return expr_is_pure(expr->ext_trunc_expr.inner);
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
return expr_is_pure(expr->expr_other_context.inner);
|
||||
case EXPR_SWIZZLE:
|
||||
return exprid_is_pure(expr->swizzle_expr.parent);
|
||||
case EXPR_BUILTIN_ACCESS:
|
||||
@@ -796,10 +779,8 @@ bool expr_is_pure(Expr *expr)
|
||||
case EXPR_CT_IS_CONST:
|
||||
case EXPR_CT_EVAL:
|
||||
case EXPR_CT_IDENT:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_IDENTIFIER:
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_NOP:
|
||||
case EXPR_OPERATOR_CHARS:
|
||||
case EXPR_RETVAL:
|
||||
@@ -809,7 +790,6 @@ bool expr_is_pure(Expr *expr)
|
||||
case EXPR_MEMBER_GET:
|
||||
return true;
|
||||
case EXPR_BITASSIGN:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_ANYSWITCH:
|
||||
return false;
|
||||
case EXPR_BINARY:
|
||||
@@ -834,8 +814,6 @@ bool expr_is_pure(Expr *expr)
|
||||
return expr_is_pure(expr->unary_expr.expr);
|
||||
}
|
||||
UNREACHABLE
|
||||
case EXPR_GENERIC_IDENT:
|
||||
return exprid_is_pure(expr->generic_ident_expr.parent);
|
||||
case EXPR_BITACCESS:
|
||||
case EXPR_ACCESS_RESOLVED:
|
||||
// All access is pure if the parent is pure.
|
||||
@@ -845,7 +823,6 @@ bool expr_is_pure(Expr *expr)
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
case EXPR_CALL:
|
||||
case EXPR_CATCH:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_COND:
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_DECL:
|
||||
|
||||
@@ -7016,16 +7016,10 @@ void llvm_emit_expr(GenContext *c, BEValue *value, Expr *expr)
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_COND:
|
||||
case EXPR_ASM:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_MEMBER_GET:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
case EXPR_BUILTIN:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_OPERATOR_CHARS:
|
||||
UNREACHABLE
|
||||
case EXPR_VECTOR_TO_ARRAY:
|
||||
|
||||
@@ -3834,6 +3834,7 @@ static inline bool sema_analyse_macro(SemaContext *context, Decl *decl, bool *er
|
||||
switch (body->expr_stmt->expr_kind)
|
||||
{
|
||||
case EXPR_IDENTIFIER:
|
||||
case EXPR_UNRESOLVED_IDENTIFIER:
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_ASM:
|
||||
|
||||
@@ -445,7 +445,6 @@ static bool sema_binary_is_expr_lvalue(SemaContext *context, Expr *top_expr, Exp
|
||||
if (failed_ref) goto FAILED_REF;
|
||||
RETURN_SEMA_ERROR(expr, "You cannot use swizzling to assign to multiple elements, use element-wise assign instead.");
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_EMBED:
|
||||
if (failed_ref) goto FAILED_REF;
|
||||
RETURN_SEMA_ERROR(expr, "This expression is a value and cannot be assigned to.");
|
||||
case EXPR_CT_IDENT:
|
||||
@@ -455,8 +454,6 @@ static bool sema_binary_is_expr_lvalue(SemaContext *context, Expr *top_expr, Exp
|
||||
case EXPR_DISCARD:
|
||||
if (failed_ref) goto FAILED_REF;
|
||||
goto ERR;
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
return sema_binary_is_expr_lvalue(context, top_expr, expr->expr_other_context.inner, failed_ref);
|
||||
case EXPR_IDENTIFIER:
|
||||
{
|
||||
Decl *decl = expr->ident_expr;
|
||||
@@ -534,7 +531,6 @@ static bool sema_binary_is_expr_lvalue(SemaContext *context, Expr *top_expr, Exp
|
||||
case EXPR_CALL:
|
||||
case EXPR_CATCH:
|
||||
case EXPR_COMPILER_CONST:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_COND:
|
||||
case EXPR_CT_AND_OR:
|
||||
case EXPR_CT_APPEND:
|
||||
@@ -551,11 +547,9 @@ static bool sema_binary_is_expr_lvalue(SemaContext *context, Expr *top_expr, Exp
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_EXPR_BLOCK:
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_INITIALIZER_LIST:
|
||||
case EXPR_LAST_FAULT:
|
||||
case EXPR_MACRO_BLOCK:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
case EXPR_MAKE_ANY:
|
||||
case EXPR_MAKE_SLICE:
|
||||
@@ -588,7 +582,6 @@ static bool sema_binary_is_expr_lvalue(SemaContext *context, Expr *top_expr, Exp
|
||||
case EXPR_TYPECALL:
|
||||
case EXPR_TYPEID_INFO:
|
||||
case EXPR_TYPEINFO:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_ANYFAULT_TO_FAULT:
|
||||
case EXPR_VECTOR_FROM_ARRAY:
|
||||
case EXPR_VECTOR_TO_ARRAY:
|
||||
@@ -620,7 +613,6 @@ static bool expr_may_ref(Expr *expr)
|
||||
case EXPR_SWIZZLE:
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_CT_IDENT:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_DEFAULT_ARG:
|
||||
case EXPR_TYPECALL:
|
||||
case EXPR_MEMBER_GET:
|
||||
@@ -644,8 +636,6 @@ static bool expr_may_ref(Expr *expr)
|
||||
case EXPR_ADDR_CONVERSION:
|
||||
case EXPR_MAKE_SLICE:
|
||||
return false;
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
return expr_may_ref(expr->expr_other_context.inner);
|
||||
case EXPR_SUBSCRIPT_ASSIGN:
|
||||
return true;
|
||||
case UNRESOLVED_EXPRS:
|
||||
@@ -703,7 +693,6 @@ static bool expr_may_ref(Expr *expr)
|
||||
case EXPR_CALL:
|
||||
case EXPR_CATCH:
|
||||
case EXPR_COMPILER_CONST:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_COND:
|
||||
case EXPR_CONST:
|
||||
case EXPR_CT_AND_OR:
|
||||
@@ -720,11 +709,9 @@ static bool expr_may_ref(Expr *expr)
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_EXPR_BLOCK:
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_INITIALIZER_LIST:
|
||||
case EXPR_LAST_FAULT:
|
||||
case EXPR_MACRO_BLOCK:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
case EXPR_NOP:
|
||||
@@ -745,7 +732,6 @@ static bool expr_may_ref(Expr *expr)
|
||||
case EXPR_TRY_UNWRAP_CHAIN:
|
||||
case EXPR_TYPEID_INFO:
|
||||
case EXPR_TYPEINFO:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_MAKE_ANY:
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -258,16 +258,11 @@ RETRY:
|
||||
case NON_RUNTIME_EXPR:
|
||||
case EXPR_SUBSCRIPT_ASSIGN:
|
||||
case EXPR_OPERATOR_CHARS:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_MEMBER_GET:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
case EXPR_UNRESOLVED_IDENTIFIER:
|
||||
case EXPR_ACCESS_UNRESOLVED:
|
||||
case UNRESOLVED_EXPRS:
|
||||
UNREACHABLE
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
|
||||
UNREACHABLE
|
||||
case EXPR_DESIGNATOR:
|
||||
sema_trace_expr_liveness(expr->designator_expr.value);
|
||||
@@ -329,9 +324,6 @@ RETRY:
|
||||
sema_trace_decl_liveness(declptr(expr->call_expr.func_ref));
|
||||
return;
|
||||
}
|
||||
case EXPR_CAST:
|
||||
ASSERT_SPAN(expr, "Casts should be gone when tracing liveness");
|
||||
UNREACHABLE
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_RETHROW:
|
||||
case EXPR_OPTIONAL:
|
||||
@@ -397,9 +389,6 @@ RETRY:
|
||||
sema_trace_const_initializer_liveness(expr->const_expr.initializer);
|
||||
return;
|
||||
}
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
sema_trace_expr_liveness(expr->expr_compound_literal.initializer);
|
||||
return;
|
||||
case EXPR_COND:
|
||||
{
|
||||
FOREACH(Expr *, e, expr->cond_expr) sema_trace_expr_liveness(e);
|
||||
@@ -423,8 +412,6 @@ RETRY:
|
||||
return;
|
||||
}
|
||||
case EXPR_LAMBDA:
|
||||
case EXPR_CATCH_UNRESOLVED:
|
||||
case EXPR_TRY_UNRESOLVED:
|
||||
UNREACHABLE
|
||||
case EXPR_MACRO_BLOCK:
|
||||
{
|
||||
@@ -517,9 +504,6 @@ RETRY:
|
||||
case EXPR_EXT_TRUNC:
|
||||
sema_trace_expr_liveness(expr->ext_trunc_expr.inner);
|
||||
return;
|
||||
case EXPR_TYPEID:
|
||||
sema_trace_type_liveness(expr->typeid_expr->type);
|
||||
return;
|
||||
case EXPR_LAST_FAULT:
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -686,11 +686,12 @@ SKIP_ENSURE:;
|
||||
|
||||
static inline bool sema_expr_valid_try_expression(Expr *expr)
|
||||
{
|
||||
ASSERT_SPAN(expr, expr->resolve_status == RESOLVE_DONE);
|
||||
switch (expr->expr_kind)
|
||||
{
|
||||
case UNRESOLVED_EXPRS:
|
||||
case EXPR_BITASSIGN:
|
||||
case EXPR_CATCH:
|
||||
case EXPR_CATCH_UNRESOLVED:
|
||||
case EXPR_COND:
|
||||
case EXPR_POISONED:
|
||||
case EXPR_CT_AND_OR:
|
||||
@@ -704,11 +705,9 @@ static inline bool sema_expr_valid_try_expression(Expr *expr)
|
||||
case EXPR_CT_EVAL:
|
||||
case EXPR_CT_IDENT:
|
||||
case EXPR_NAMED_ARGUMENT:
|
||||
case EXPR_UNRESOLVED_IDENTIFIER:
|
||||
UNREACHABLE
|
||||
case EXPR_BINARY:
|
||||
case EXPR_POINTER_OFFSET:
|
||||
case EXPR_CAST:
|
||||
case EXPR_UNARY:
|
||||
case EXPR_POST_UNARY:
|
||||
case EXPR_TERNARY:
|
||||
@@ -724,18 +723,15 @@ static inline bool sema_expr_valid_try_expression(Expr *expr)
|
||||
case EXPR_BUILTIN_ACCESS:
|
||||
case EXPR_CALL:
|
||||
case EXPR_COMPILER_CONST:
|
||||
case EXPR_COMPOUND_LITERAL:
|
||||
case EXPR_CONST:
|
||||
case EXPR_DECL:
|
||||
case EXPR_DESIGNATED_INITIALIZER_LIST:
|
||||
case EXPR_DESIGNATOR:
|
||||
case EXPR_EMBED:
|
||||
case EXPR_EXPRESSION_LIST:
|
||||
case EXPR_EXPR_BLOCK:
|
||||
case EXPR_MACRO_BLOCK:
|
||||
case EXPR_OPTIONAL:
|
||||
case EXPR_FORCE_UNWRAP:
|
||||
case EXPR_GENERIC_IDENT:
|
||||
case EXPR_HASH_IDENT:
|
||||
case EXPR_IDENTIFIER:
|
||||
case EXPR_INITIALIZER_LIST:
|
||||
@@ -743,7 +739,6 @@ static inline bool sema_expr_valid_try_expression(Expr *expr)
|
||||
case EXPR_MACRO_BODY_EXPANSION:
|
||||
case EXPR_NOP:
|
||||
case EXPR_OPERATOR_CHARS:
|
||||
case EXPR_OTHER_CONTEXT:
|
||||
case EXPR_RETHROW:
|
||||
case EXPR_RETVAL:
|
||||
case EXPR_SLICE:
|
||||
@@ -757,15 +752,10 @@ static inline bool sema_expr_valid_try_expression(Expr *expr)
|
||||
case EXPR_BENCHMARK_HOOK:
|
||||
case EXPR_TEST_HOOK:
|
||||
case EXPR_TRY:
|
||||
case EXPR_TRY_UNRESOLVED:
|
||||
case EXPR_TRY_UNWRAP_CHAIN:
|
||||
case EXPR_TYPEID:
|
||||
case EXPR_TYPEID_INFO:
|
||||
case EXPR_TYPEINFO:
|
||||
case EXPR_ANYSWITCH:
|
||||
case EXPR_VASPLAT:
|
||||
case EXPR_MACRO_BODY:
|
||||
case EXPR_ACCESS_UNRESOLVED:
|
||||
case EXPR_ACCESS_RESOLVED:
|
||||
case EXPR_ASM:
|
||||
case EXPR_DEFAULT_ARG:
|
||||
|
||||
Reference in New Issue
Block a user