mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Additional macro inlining error improvements.
This commit is contained in:
@@ -8853,9 +8853,16 @@ bool sema_analyse_inferred_expr(SemaContext *context, Type *infer_type, Expr *ex
|
|||||||
switch (expr->expr_kind)
|
switch (expr->expr_kind)
|
||||||
{
|
{
|
||||||
case EXPR_OTHER_CONTEXT:
|
case EXPR_OTHER_CONTEXT:
|
||||||
|
{
|
||||||
|
InliningSpan *new_span = context->inlined_at;
|
||||||
context = expr->expr_other_context.context;
|
context = expr->expr_other_context.context;
|
||||||
|
InliningSpan *old_span = context->inlined_at;
|
||||||
|
context->inlined_at = new_span;
|
||||||
expr_replace(expr, expr->expr_other_context.inner);
|
expr_replace(expr, expr->expr_other_context.inner);
|
||||||
return sema_analyse_inferred_expr(context, infer_type, expr);
|
bool success = sema_analyse_inferred_expr(context, infer_type, expr);
|
||||||
|
context->inlined_at = old_span;
|
||||||
|
return success;
|
||||||
|
}
|
||||||
case EXPR_DESIGNATED_INITIALIZER_LIST:
|
case EXPR_DESIGNATED_INITIALIZER_LIST:
|
||||||
case EXPR_INITIALIZER_LIST:
|
case EXPR_INITIALIZER_LIST:
|
||||||
if (!sema_expr_analyse_initializer_list(context, infer_type, expr)) return expr_poison(expr);
|
if (!sema_expr_analyse_initializer_list(context, infer_type, expr)) return expr_poison(expr);
|
||||||
|
|||||||
Reference in New Issue
Block a user