diff --git a/src/compiler/sema_expr.c b/src/compiler/sema_expr.c index abd8a12c5..69addd642 100644 --- a/src/compiler/sema_expr.c +++ b/src/compiler/sema_expr.c @@ -6242,11 +6242,10 @@ static inline bool sema_expr_analyse_ct_eval(SemaContext *context, Expr *expr) case TOKEN_IDENT: case TOKEN_CONST_IDENT: expr->expr_kind = EXPR_IDENTIFIER; - expr->resolve_status = RESOLVE_NOT_DONE; expr->identifier_expr.ident = ident; expr->identifier_expr.path = path; expr->identifier_expr.is_const = type == TOKEN_CONST_IDENT; - return sema_analyse_expr(context, expr); + return sema_analyse_expr_dispatch(context, expr); default: SEMA_ERROR(inner, "Only function, variable and constant names may be resolved with $eval."); return false; diff --git a/src/version.h b/src/version.h index b3504b55b..79982c497 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define COMPILER_VERSION "0.3.66" \ No newline at end of file +#define COMPILER_VERSION "0.3.67" \ No newline at end of file diff --git a/test/test_suite/compile_time/ct_eval_sym.c3 b/test/test_suite/compile_time/ct_eval_sym.c3 new file mode 100644 index 000000000..d351c8d95 --- /dev/null +++ b/test/test_suite/compile_time/ct_eval_sym.c3 @@ -0,0 +1,5 @@ +fn int test() +{ + void* x = (void*)&$eval($$FUNC); + return 1; +} \ No newline at end of file diff --git a/test/test_suite2/compile_time/ct_eval_sym.c3 b/test/test_suite2/compile_time/ct_eval_sym.c3 new file mode 100644 index 000000000..d351c8d95 --- /dev/null +++ b/test/test_suite2/compile_time/ct_eval_sym.c3 @@ -0,0 +1,5 @@ +fn int test() +{ + void* x = (void*)&$eval($$FUNC); + return 1; +} \ No newline at end of file