diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-12-06 15:25:00 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-12-06 15:25:00 -0500 |
| commit | 656cc33f8d49cb5e79cd3f9f8f56963747d43ed6 (patch) | |
| tree | e35ada7d719c2ab2e486f4bd6ba32261a35e40be /lib | |
| parent | 71b7f4b47f69e9b3241e9d44554572258f5eb5b1 (diff) | |
| download | zig-656cc33f8d49cb5e79cd3f9f8f56963747d43ed6.tar.gz zig-656cc33f8d49cb5e79cd3f9f8f56963747d43ed6.zip | |
allow calling with a new stack to regress a bit
Calling with a new stack, with a runtime-known stack pointer (e.g.
not a global variable) is regressed with this branch. It is now a
compile-error, due to the Runtime Hint system not being smart enough
to mix a compile-time modifier field with a runtime stack field.
I'm OK with this regression because this feature is flawed (see #3268)
and may be deleted from the language.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/builtin.zig | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 8ac58ad2f4..35188b61e3 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -382,16 +382,6 @@ pub const CallOptions = struct { /// Equivalent to function call syntax. auto, - /// Asserts that the function call will not suspend. This allows a - /// non-async function to call an async function. - no_async, - - /// The function call will return an async function frame instead of - /// the function's result, which is expected to then be awaited. - /// This is equivalent to using the `async` keyword in front of function - /// call syntax. - async_call, - /// Prevents tail call optimization. This guarantees that the return /// address will point to the callsite, as opposed to the callsite's /// callsite. If the call is otherwise required to be tail-called @@ -402,6 +392,10 @@ pub const CallOptions = struct { /// otherwise required to be inlined, a compile error is emitted instead. never_inline, + /// Asserts that the function call will not suspend. This allows a + /// non-async function to call an async function. + no_async, + /// Guarantees that the call will be generated with tail call optimization. /// If this is not possible, a compile error is emitted instead. always_tail, |
