From 8efeaef40bfc939efe5308bb70ca6d7f5387d697 Mon Sep 17 00:00:00 2001 From: Laytan Date: Wed, 16 Apr 2025 22:55:25 +0200 Subject: [PATCH] fix not resolving to alias in a recursive declaration --- src/check_decl.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/check_decl.cpp b/src/check_decl.cpp index 250e8b854..ba6445ea4 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -468,6 +468,10 @@ gb_internal void check_type_decl(CheckerContext *ctx, Entity *e, Ast *init_expr, } e->type = named; + if (!is_distinct) { + e->TypeName.is_type_alias = true; + } + check_type_path_push(ctx, e); Type *bt = check_type_expr(ctx, te, named); check_type_path_pop(ctx); @@ -502,9 +506,9 @@ gb_internal void check_type_decl(CheckerContext *ctx, Entity *e, Ast *init_expr, if (!is_distinct) { e->type = bt; named->Named.base = bt; - e->TypeName.is_type_alias = true; } + e->TypeName.is_type_alias = !is_distinct; if (decl->type_expr != nullptr) { Type *t = check_type(ctx, decl->type_expr);