usize indexing only
This commit is contained in:
+4
-3
@@ -63,8 +63,9 @@ nominal result type: checked integer `+`, `-`, `*`, unary `-`, bitwise operators
|
||||
comparisons, and compound assignments; float arithmetic, unary `-`, comparisons, and compound
|
||||
assignments; and boolean equality/inequality. Integer literals and float literals are contextual.
|
||||
Typed backing values and separate distinct identities remain incompatible in ordinary operations;
|
||||
an explicit constructor is required to cross that boundary. Distinct integers also work as indices and slice bounds;
|
||||
`minval!` / `maxval!` return the distinct type. Runtime and comptime behavior match.
|
||||
an explicit constructor is required to cross that boundary. Distinct integers require an explicit
|
||||
`usize` cast for indices and slice bounds; `minval!` / `maxval!` return the distinct type.
|
||||
Runtime and comptime behavior match.
|
||||
|
||||
`typeinfo!(Distinct).backing` reports the immediate declared backing. Standard formatting peels
|
||||
distinct layers recursively, so all scalar format verbs behave like the final scalar backing.
|
||||
@@ -117,7 +118,7 @@ fields. `_` is not a keyword member name.
|
||||
- checked integer `+ - *`, unary `-`, float-only `/`, IEEE float arithmetic, comparisons, `!`, `and`, and `or`
|
||||
- Zig-style integer bitwise complement `~`, binary `&`, `|`, `xor`, shifts `<<` / `>>`, and saturating left shift `<<|`; postfix `^` remains pointer dereference
|
||||
- assignments and compound assignments `+= -= *= /= &= |= xor= <<= >>= <<|=` with single evaluation of complex lvalues; `/=` is float-only and `xor=` is contiguous
|
||||
- field access through struct values and pointers, index/slice bounds contextually coerced to `usize`, and unsigned narrower index support
|
||||
- field access through struct values and pointers, exact `usize` indices and slice bounds, and contextual integer constants in those positions
|
||||
- boolean `if` / `else if` / `else` and `for` loops with braceless single-statement bodies when the preceding expression is parenthesized or a function call
|
||||
- `while` loops with conditional unwrap captures and guards plus optional post-iteration update clauses
|
||||
- `for` loops over ranges, arrays, slices, and pointers-to-arrays with copy captures, pointer captures `|@item|`, and optional `usize` index captures; `inline for` specializes a comptime aggregate into one checked body per element
|
||||
|
||||
Reference in New Issue
Block a user