SD0017
On this page

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:

example.shade.ts
"use typeshade"
@fragment
export 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

TS8003 TYPE_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:

Edit this page Report a problem