SD0017
Core code
literal cannot be spelled by the target
The registry text and every compiler message on these pages are the compiler's own English.
In the front end
A "use typeshade" file never reaches this check with the same mistake: the front end refuses it first, under its own code. This program, compiled at build time, gets:
"use typeshade"
@fragmentexport function main(@location(0) uv: vec2): vec4 { const k: i32 = 3000000000 return vec4(uv, f32(k), 1.)}TS8003 error, line 5: The value has to fit: 3000000000 is outside i32, which holds -2147483648 to 2147483647 (§13).
How to fix it
The registry's hint: an i32/u32 literal must be an integer inside its 32-bit range and a float literal must be finite — neither WGSL nor GLSL has a NaN/Infinity spelling, and an out-of-range integer literal is a driver compile error; clamp or wrap the host-side value before it becomes a literal
See also
-
TS8003TYPE_MISMATCH - Two types that do not fit where they meet (an operator, a condition, a declaration, a return or an argument), or a constant the compiler folds that WGSL refuses: a shift amount past 31, a divisor of 0, clamp bounds that cross or an f32 past its range.
Source
Where the compiler raises this code at commit 26de7be8, one line per file:
-
src/core/backends/glsl.ts:258(2 sites) -
src/core/backends/wgsl.ts:147(4 sites)