aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorInKryption <59504965+InKryption@users.noreply.github.com>2022-06-02 20:29:09 +0200
committerVeikka Tuominen <git@vexu.eu>2022-07-23 14:20:29 +0300
commit9555b84ab43caeaaa85e7f25424c3ba731075142 (patch)
tree296b7105069848470ce6a99a8c1ea480bec4635e /doc
parent9734e643fb09526fa107e5a4912fbf6d77bcb6c3 (diff)
downloadzig-9555b84ab43caeaaa85e7f25424c3ba731075142.tar.gz
zig-9555b84ab43caeaaa85e7f25424c3ba731075142.zip
langref: clarify permitted `@bitCast` usage.
The current phrasing is vague; it is unclear whether it is demonstrating an example of the type of permitted behavior, from which the rule set must be extrapolated, or it is stating that this restriction only applies to the relationship between integers and bare structs.
Diffstat (limited to 'doc')
-rw-r--r--doc/langref.html.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/doc/langref.html.in b/doc/langref.html.in
index 5a46107d2a..13c7da4a8a 100644
--- a/doc/langref.html.in
+++ b/doc/langref.html.in
@@ -8005,7 +8005,7 @@ fn func(y: *i32) void {
<li>Convert {#syntax#}i32{#endsyntax#} to {#syntax#}u32{#endsyntax#} preserving twos complement</li>
</ul>
<p>
- Works at compile-time if {#syntax#}value{#endsyntax#} is known at compile time. It's a compile error to bitcast a struct to a scalar type of the same size since structs have undefined layout. However if the struct is packed then it works.
+ Works at compile-time if {#syntax#}value{#endsyntax#} is known at compile time. It's a compile error to bitcast a value of undefined layout; this means that, besides the restriction from types which possess dedicated casting builtins (enums, pointers, error sets), bare structs, error unions, slices, optionals, and any other type without a well-defined memory layout, also cannot be used in this operation.
</p>
{#header_close#}