File tree 2 files changed +15
-2
lines changed 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -3753,13 +3753,13 @@ static bool is_container(TypeTableEntry *type_entry) {
3753
3753
}
3754
3754
3755
3755
bool is_container_ref (TypeTableEntry *type_entry) {
3756
- return (type_entry->id == TypeTableEntryIdPointer) ?
3756
+ return (type_entry->id == TypeTableEntryIdPointer && type_entry-> data . pointer . ptr_len == PtrLenSingle ) ?
3757
3757
is_container (type_entry->data .pointer .child_type ) : is_container (type_entry);
3758
3758
}
3759
3759
3760
3760
TypeTableEntry *container_ref_type (TypeTableEntry *type_entry) {
3761
3761
assert (is_container_ref (type_entry));
3762
- return (type_entry->id == TypeTableEntryIdPointer) ?
3762
+ return (type_entry->id == TypeTableEntryIdPointer && type_entry-> data . pointer . ptr_len == PtrLenSingle ) ?
3763
3763
type_entry->data .pointer .child_type : type_entry;
3764
3764
}
3765
3765
Original file line number Diff line number Diff line change 1
1
const tests = @import ("tests.zig" );
2
2
3
3
pub fn addCases (cases : * tests.CompileErrorContext ) void {
4
+ cases .add (
5
+ "field access of unknown length pointer" ,
6
+ \\const Foo = extern struct {
7
+ \\ a: i32,
8
+ \\};
9
+ \\
10
+ \\export fn entry(foo: [*]Foo) void {
11
+ \\ foo.a += 1;
12
+ \\}
13
+ ,
14
+ ".tmp_source.zig:6:8: error: type '[*]Foo' does not support field access" ,
15
+ );
16
+
4
17
cases .add (
5
18
"unknown length pointer to opaque" ,
6
19
\\export const T = [*]@OpaqueType();
You can’t perform that action at this time.
0 commit comments