diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-12-05 17:37:29 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-12-05 17:37:29 -0500 |
| commit | ef83358eb6702e8541816817e98c3e7279033672 (patch) | |
| tree | 2d57f0633a84f188cc4bd0c9e25fc0484a39b6f5 /lib/std/builtin.zig | |
| parent | 1f602fe8c5b3dea9f00f96e70dad73ebce405b49 (diff) | |
| download | zig-ef83358eb6702e8541816817e98c3e7279033672.tar.gz zig-ef83358eb6702e8541816817e98c3e7279033672.zip | |
remove `@noInlineCall` from zig
Diffstat (limited to 'lib/std/builtin.zig')
| -rw-r--r-- | lib/std/builtin.zig | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 791d46bc34..8ac58ad2f4 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -379,13 +379,39 @@ pub const CallOptions = struct { stack: ?[]align(std.Target.stack_align) u8 = null, pub const Modifier = enum { + /// 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 + /// or inlined, a compile error is emitted instead. never_tail, + + /// Guarantees that the call will not be inlined. If the call is + /// otherwise required to be inlined, a compile error is emitted instead. never_inline, + + /// Guarantees that the call will be generated with tail call optimization. + /// If this is not possible, a compile error is emitted instead. always_tail, + + /// Guarantees that the call will inlined at the callsite. + /// If this is not possible, a compile error is emitted instead. always_inline, + + /// Evaluates the call at compile-time. If the call cannot be completed at + /// compile-time, a compile error is emitted instead. compile_time, }; }; |
