Skip to content

Commit 3d47b70

Browse files
committed
Fixed issue with new type alias system resolving type aliases too soon inside of other types
1 parent ec80728 commit 3d47b70

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

Diff for: src/resolve/type_definition/resolve.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ fn resolve_structure(
116116
&constraints,
117117
);
118118

119-
let ty = type_ctx.resolve_or_undeclared(&field.ast_type, ResolveTypeOptions::Unalias)?;
119+
let ty =
120+
type_ctx.resolve_or_undeclared(&field.ast_type, ResolveTypeOptions::KeepAliases)?;
120121

121122
let resolved_struct = asg.structs.get_mut(struct_ref).expect("valid struct");
122123

@@ -156,7 +157,7 @@ fn resolve_enum(
156157
.map(Cow::Borrowed)
157158
.unwrap_or_else(|| Cow::Owned(ast::TypeKind::u32().at(definition.source)));
158159

159-
let ty = type_ctx.resolve_or_undeclared(&ast_type, ResolveTypeOptions::Unalias)?;
160+
let ty = type_ctx.resolve_or_undeclared(&ast_type, ResolveTypeOptions::KeepAliases)?;
160161
asg.enums.get_mut(enum_ref).unwrap().ty = ty;
161162
Ok(())
162163
}
@@ -204,7 +205,7 @@ fn resolve_trait(
204205

205206
for func in &definition.funcs {
206207
let params = resolve_parameters(&type_ctx, &func.params)?;
207-
let return_type = type_ctx.resolve(&func.return_type, ResolveTypeOptions::Unalias)?;
208+
let return_type = type_ctx.resolve(&func.return_type, ResolveTypeOptions::KeepAliases)?;
208209

209210
if funcs
210211
.insert(

0 commit comments

Comments
 (0)