AstGen: unstack block scope when creating opaque type

Closes #13697
This commit is contained in:
Veikka Tuominen 2022-11-29 18:40:28 +02:00
parent e60db701d1
commit 6f5a438946
2 changed files with 12 additions and 0 deletions

View File

@ -5070,6 +5070,7 @@ fn containerDecl(
try astgen.extra.ensureUnusedCapacity(gpa, decls_slice.len);
astgen.extra.appendSliceAssumeCapacity(decls_slice);
block_scope.unstack();
try gz.addNamespaceCaptures(&namespace);
return rvalue(gz, ri, indexToRef(decl_inst), node);
},

View File

@ -1127,3 +1127,14 @@ test "pointer to zero sized global is mutable" {
};
try expect(@TypeOf(&S.thing) == *S.Thing);
}
test "returning an opaque type from a function" {
const S = struct {
fn foo(comptime a: u32) type {
return opaque {
const b = a;
};
}
};
try expect(S.foo(123).b == 123);
}