diff --git a/doc/langref.html.in b/doc/langref.html.in
index b76fc69385..8e24a4be2c 100644
--- a/doc/langref.html.in
+++ b/doc/langref.html.in
@@ -3602,6 +3602,10 @@ test "implicit cast - invoke a type as a function" {
var b = u16(a);
}
{#code_end#}
+
+ Implicit casts are only allowed when it is completely unambiguous how to get from one type to another,
+ and the transformation is guaranteed to be safe.
+
{#header_open|Implicit Cast: Stricter Qualification#}
Values which have the same representation at runtime can be cast to increase the strictness
@@ -3722,7 +3726,32 @@ test "float widening" {
{#header_close#}
{#header_open|Explicit Casts#}
-
TODO
+
+ Explicit casts are performed via {#link|Builtin Functions#}.
+ Some explicit casts are safe; some are not.
+ Some explicit casts perform language-level assertions; some do not.
+ Some explicit casts are no-ops at runtime; some are not.
+
+
+ - {#link|@bitCast#} - change type but maintain bit representation
+ - {#link|@alignCast#} - make a pointer have more alignment
+ - {#link|@boolToInt#} - convert true to 1 and false to 0
+ - {#link|@bytesToSlice#} - convert a slice of bytes to a slice of another type
+ - {#link|@enumToInt#} - obtain the integer tag value of an enum or tagged union
+ - {#link|@errSetCast#} - convert to a smaller error set
+ - {#link|@errorToInt#} - obtain the integer value of an error code
+ - {#link|@floatCast#} - convert a larger float to a smaller float
+ - {#link|@floatToInt#} - obtain the integer part of a float value
+ - {#link|@intCast#} - convert between integer types
+ - {#link|@intToEnum#} - obtain an enum value based on its integer tag value
+ - {#link|@intToError#} - obtain an error code based on its integer value
+ - {#link|@intToFloat#} - convert an integer to a float value
+ - {#link|@intToPtr#} - convert an address to a pointer
+ - {#link|@ptrCast#} - convert between pointer types
+ - {#link|@ptrToInt#} - obtain the address of a pointer
+ - {#link|@sliceToBytes#} - convert a slice of anything to a slice of bytes
+ - {#link|@truncate#} - convert between integer types, chopping off bits
+
{#header_close#}
{#header_open|Peer Type Resolution#}