doc: clarifications to comptime section in langref after #14819

This commit is contained in:
mlugg 2023-04-15 01:19:37 +01:00 committed by Andrew Kelley
parent 0eebc25880
commit 07b7c3b31b

View File

@ -7048,8 +7048,10 @@ test "foo" {
<li>All variables are {#syntax#}comptime{#endsyntax#} variables.</li> <li>All variables are {#syntax#}comptime{#endsyntax#} variables.</li>
<li>All {#syntax#}if{#endsyntax#}, {#syntax#}while{#endsyntax#}, {#syntax#}for{#endsyntax#}, and {#syntax#}switch{#endsyntax#} <li>All {#syntax#}if{#endsyntax#}, {#syntax#}while{#endsyntax#}, {#syntax#}for{#endsyntax#}, and {#syntax#}switch{#endsyntax#}
expressions are evaluated at compile-time, or emit a compile error if this is not possible.</li> expressions are evaluated at compile-time, or emit a compile error if this is not possible.</li>
<li>All function calls cause the compiler to interpret the function at compile-time, emitting a <li>All {#syntax#}return{#endsyntax#} and {#syntax#}try{#endsyntax#} expressions are invalid (unless the function itself is called at compile-time).</li>
compile error if the function tries to do something that has global run-time side effects.</li> <li>All code with runtime side effects or depending on runtime values emits a compile error.</li>
<li>All function calls cause the compiler to interpret the function at compile-time, emitting a
compile error if the function tries to do something that has global runtime side effects.</li>
</ul> </ul>
<p> <p>
This means that a programmer can create a function which is called both at compile-time and run-time, with This means that a programmer can create a function which is called both at compile-time and run-time, with
@ -7071,9 +7073,7 @@ test "fibonacci" {
try expect(fibonacci(7) == 13); try expect(fibonacci(7) == 13);
// test fibonacci at compile-time // test fibonacci at compile-time
comptime { try comptime expect(fibonacci(7) == 13);
try expect(fibonacci(7) == 13);
}
} }
{#code_end#} {#code_end#}
<p> <p>
@ -7088,9 +7088,7 @@ fn fibonacci(index: u32) u32 {
} }
test "fibonacci" { test "fibonacci" {
comptime { try comptime expect(fibonacci(7) == 13);
try expect(fibonacci(7) == 13);
}
} }
{#code_end#} {#code_end#}
<p> <p>
@ -7111,9 +7109,7 @@ fn fibonacci(index: i32) i32 {
} }
test "fibonacci" { test "fibonacci" {
comptime { try comptime assert(fibonacci(7) == 13);
try assert(fibonacci(7) == 13);
}
} }
{#code_end#} {#code_end#}
<p> <p>
@ -7143,9 +7139,7 @@ fn fibonacci(index: i32) i32 {
} }
test "fibonacci" { test "fibonacci" {
comptime { try comptime assert(fibonacci(7) == 99999);
try assert(fibonacci(7) == 99999);
}
} }
{#code_end#} {#code_end#}