Robin Voetter
76ad9cb10e
backport @addrSpaceCast to stage 1
2022-10-12 20:36:14 +02:00
Robin Voetter
9f14681473
stage2: check address space cast validity
2022-10-12 20:36:14 +02:00
Robin Voetter
5d429b03e3
stage2: add @addrSpaceCast builtin
2022-10-12 20:36:12 +02:00
Robin Voetter
3392de87dc
allow global/local/shared address spaces on amdgcn
2022-10-12 20:34:41 +02:00
Robin Voetter
d638b2e29f
stage 2: grammar
2022-10-12 20:34:41 +02:00
Robin Voetter
6b69dcfdd2
amdgpu: add AmdgpuKernel calling convention
2022-10-12 20:34:41 +02:00
Veikka Tuominen
260b0ff7c5
Sema: add reference trace before checking for cached value
...
Closes #13143
2022-10-12 18:57:31 +03:00
Andrew Kelley
7ce1ee1bce
Merge pull request #13081 from r00ster91/docs
...
fix(text): hyphenation and other fixes
2022-10-12 05:26:11 -04:00
Luuk de Gram
1f196b9e2f
stage2: implement exporting using field access ( #13136 )
...
This implements `@export(a.b, .{..});` in semantic analysis,
allowing users to directly export a variable from a namespace.
* add test case for exporting using field access
2022-10-12 04:38:07 -04:00
Veikka Tuominen
b316c25cc6
Merge pull request #13075 from Vexu/stage2-fixes
...
Stage2 misc fixes
2022-10-10 23:27:17 +02:00
Veikka Tuominen
3ccd4907fb
Sema: add error for capturing a runtime value outside of function scope
...
Closes #13104
2022-10-08 16:58:54 +03:00
Veikka Tuominen
b5c0a797a7
Sema: inline switch capture needs to be set when switch operand is comptime known
2022-10-08 16:58:52 +03:00
Veikka Tuominen
1500b9ddc3
Sema: restore sema.src after inline call
...
Closes #13099
2022-10-08 16:58:26 +03:00
Veikka Tuominen
4a6cc1c602
Sema: allow equality comparisons between error unions and error sets
...
Closes #1302
2022-10-07 11:04:02 +03:00
Veikka Tuominen
2315e1b410
safety: add safety check for hitting else branch on a corrupt enum value
...
Closes #7053
2022-10-07 11:04:02 +03:00
Ali Chraghi
6672921e32
Sema: fix error location when casting pointer to slice
...
Co-authored-by: Veikka Tuominen <git@vexu.eu>
2022-10-06 21:18:01 +03:00
Veikka Tuominen
dffce98045
Sema: disallow using stage1 fn ptrs in extern contexts
...
Closes #13022
2022-10-06 20:09:45 +03:00
Veikka Tuominen
446deb31a8
Sema: validate bitSizeOf operand type
...
Closes #13080
2022-10-06 20:09:45 +03:00
Veikka Tuominen
775e055b59
Sema: generic function instantiation inherits parent's branch quota
...
Closes #12624
2022-10-06 20:09:45 +03:00
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
r00ster91
8e2aaf6aed
fix(text): hyphenate "runtime" adjectives
2022-10-05 21:33:42 +02:00
r00ster91
51d9db8569
fix(text): hyphenate "comptime" adjectives
2022-10-05 21:19:30 +02:00
r00ster91
654e0b6679
fix(text): hyphenation and other fixes
2022-10-05 21:19:10 +02: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