Veikka Tuominen
94039d66ed
Sema: disallow fieldParentPtr and offsetOf on comptime fields
...
Comptime fields are tied to the type and behave more like declarations
so these operations cannot return anything useful for them.
2022-10-06 20:09:45 +03:00
Veikka Tuominen
cc89908e82
Sema: do not emit is(_non)_null for invalid types
...
Closes #13024
2022-10-06 15:39:06 +03:00
Veikka Tuominen
0b1dd845d9
stage2: add error for non-void error union payload being ignored
...
See https://github.com/ziglang/zig/pull/6060#discussion_r471032912
2022-10-06 15:39:06 +03:00
Veikka Tuominen
b626977f45
Sema: create sub block for inline loops
...
Closes #13038
2022-10-06 15:39:06 +03:00
Veikka Tuominen
ba4aa12098
Sema: use correct value when @ptrCast operand is comptime known
...
Closes #13034
2022-10-05 17:26:29 +03:00
Veikka Tuominen
c0350cf87e
Sema: avoid passing undefined as reason to failWithNeededComptime
...
Closes #13046
2022-10-05 17:26:29 +03:00
Andrew Kelley
ff534d2267
Merge pull request #12979 from Vexu/inline-switch
...
Implement inline switch cases
2022-10-03 23:43:09 -04:00
Andrew Kelley
54eb0f2daa
Merge pull request #13032 from jacobly0/br-on-undef-val
...
stage2: fix branches on undefined values
2022-10-03 22:46:22 -04:00
Jacob Young
9d8cdb855b
Sema: fix function paramater count mismatch note
...
expected type 'fn() void', found 'fn(i32) void'
function with 0 parameters cannot cast into a function with 0 parameters
=>
expected type 'fn() void', found 'fn(i32) void'
function with 1 parameters cannot cast into a function with 0 parameters
2022-10-03 13:06:49 +03:00
Julian
32d755beb8
Sema: require reified packed struct fields to have zero alignment
2022-10-03 13:05:12 +03:00
Jacob Young
b7bd44a654
Sema: ensure builtin.StackTrace fields are analyzed
...
When encountering a fn type that returns an error (union), a backend
that supports error return tracing will want the StackTrace struct and
its fields to be analyzed.
2022-10-01 08:09:43 -04:00
Veikka Tuominen
b3c6d774d2
stage2: improve error message for missing member in file root struct
...
* the root struct decl name is fully qualified
this prevents error messages containing 'main.main'
* avoid declared here note when file struct is missing a member
It always points at the start of the file which might contain another
container misleading the user.
2022-09-30 00:09:24 +03:00
Veikka Tuominen
409cf4aeb8
Sema: use correct ptr ty to check for attributes of slice field ptr
...
Closes #12870
Closes #13006
2022-09-30 00:09:24 +03:00
Igor Anić
9f6f460124
Sema: improve source location in errors
...
resolves #12793
2022-09-29 14:45:08 +03:00
kkHAIKE
317cb629fb
Sema: fix resolveInferredErrorSet panic when generic inline function
2022-09-29 14:44:37 +03:00
Jacob G-W
0a064eae99
stage2: detect duplicate enum values
...
Closes #12805
2022-09-28 12:48:54 +03:00
InKryption
c75e8f3616
Sema: check that reified enum field values fits tag type.
2022-09-27 18:38:37 +03:00
Veikka Tuominen
c673e6a48a
Sema: avoid passing .unneeded to safetyPanic
2022-09-27 18:35:32 +03:00
Veikka Tuominen
d4917957ef
Sema: add better source location for inline prong backwards branch limit
2022-09-27 18:33:23 +03:00
Veikka Tuominen
509bb82b20
Sema: refactor common code to its own function
2022-09-27 18:33:23 +03:00
Veikka Tuominen
83fa216c8d
Sema: implement inline else for ints
2022-09-27 18:33:23 +03:00
Veikka Tuominen
950a0e2405
Sema: implement inline else for errors enums and bools
2022-09-27 18:33:23 +03:00
Veikka Tuominen
0e77259f44
add inline switch union tag captures
2022-09-27 18:33:23 +03:00
Veikka Tuominen
5baaf90e3c
Sema: implement non-special inline switch prongs
2022-09-27 18:33:23 +03:00
Veikka Tuominen
cccc4c3827
AstGen: analyze inline switch cases
2022-09-27 18:05:08 +03:00
Veikka Tuominen
07a7c2f7c8
stage2: remove redundant is_ref flag from SwitchBlock.Bits
2022-09-27 18:05:08 +03:00
kkHAIKE
ba5cbea0c3
Sema: fix segfault when union init with empty field
2022-09-27 13:23:51 +03:00
John Schmidt
b6bda5183e
sema: load the correct AST in failWithInvalidComptimeFieldStore
...
The container we want to get the fields from might not be declared in the
same file as the block we are analyzing, so we should get the AST from
the decl's file instead.
2022-09-26 08:56:34 +02:00
John Schmidt
6cc2b26163
sema: load the correct AST in addFieldErrNote
...
The enum we want to get the fields from might not be declared in the
same file as the block we are analyzing, so we should get the AST from
the decl's file instead.
Closes #12950 .
2022-09-25 10:28:48 +02:00
Veikka Tuominen
8e4d0ae4f5
Sema: avoid generic parameter error in nested function type
...
Related to cd1833044ab7505bc101c85f59889bd3ea3fac80
Closes #12945
2022-09-24 15:15:36 +03:00
Veikka Tuominen
3a5148112d
Sema: avoid using pointerDecl when dealing with slices
...
Closes #12885
2022-09-24 14:43:03 +03:00
Veikka Tuominen
3525b8778e
Sema: properly handle generic struct as parameter type
...
Closes #12907
2022-09-24 14:43:03 +03:00
Veikka Tuominen
ede3798485
Sema: resolve struct layout in zirStructInit
...
Closes #12911
2022-09-23 17:39:21 +03:00
Veikka Tuominen
581df942e1
Sema: correct sentinel check on implicit cast from array ptr
...
Closes #12938
2022-09-23 17:39:06 +03:00
Veikka Tuominen
3de5c3b503
Sema: check for slices in packed and extern type validation
...
Closes #12930
2022-09-23 17:39:06 +03:00
Veikka Tuominen
8d1fdfc8ed
Sema: preserve volatileness when constructing field pointers
...
Closes #12928
2022-09-23 17:39:06 +03:00
Jacob Young
14f4c73191
sema: fix typo
2022-09-21 11:29:20 +02:00
Andrew Kelley
85e3204344
stage2: free up 2 ZIR tags
...
cmpxchg_weak and cmpxchg_strong are not very common; demote them to
extended operations to make some headroom.
This commit does not change any behavior, only memory layout of the
compiler.
2022-09-21 03:54:37 -04:00
Veikka Tuominen
694fab4848
std: add return address parameter to panic fn
2022-09-20 19:05:00 -07:00
Veikka Tuominen
8f2e82dbf6
safety: show error return trace when unwrapping error in switch
2022-09-20 19:05:00 -07:00
Veikka Tuominen
eef6539049
Sema: handle Value.slice in beginComptimePtrLoad
2022-09-20 00:50:13 +03:00
Veikka Tuominen
3e80aa9079
Sema: validate @alignOf type
2022-09-20 00:50:13 +03:00
Veikka Tuominen
540130650f
Sema: pass calculated offset to elemPtrType in elemPtrSlice
2022-09-20 00:50:13 +03:00
Veikka Tuominen
541b3e3a31
Sema: check pointer qualifiers before implicit cast
...
Closes #12881
2022-09-20 00:50:13 +03:00
Veikka Tuominen
fb91483e48
Sema: do not use coerceCompatiblePtr for ptrCast
2022-09-19 18:34:53 +03:00
Veikka Tuominen
e584558bd8
Sema: do not use coerceCompatiblePtr for alignCast
...
Closes #12902
2022-09-19 18:34:52 +03:00
Veikka Tuominen
b2aedb0709
Merge pull request #12796 from Vexu/referenced-by-v2
...
stage2: add referenced by trace to compile errors attempt #2 (+ some fixes)
2022-09-16 23:49:00 +03:00
Andrew Kelley
8edd7219c0
Sema: improve source location after as_node is used
...
+2 more passing compile error tests
2022-09-16 14:47:17 -04:00
Veikka Tuominen
31daea74d2
stage2: implement referenced by trace for error messages
...
Closes #7668
Closes #12141
2022-09-15 00:50:18 +03:00
Veikka Tuominen
5e4483fff8
Sema: handle comptime fields in field call bind
...
Closes #12801
2022-09-15 00:50:18 +03:00