You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note that I forgot a return type on foo. (This was much more difficult to spot at a glance in my actual code).
Validating the code with Naga fails with:
❯ cargo run example.wgsl
Finished dev [unoptimized + debuginfo] target(s) in 0.23s
Running `target\debug\naga.exe example.wgsl`
error: no definition in scope for identifier: 'foo'
┌─ example.wgsl:6:15
│
6 │ let qux = foo();
│ ^^^ unknown identifier
Could not parse WGSL
error: process didn't exit successfully: `target\debug\naga.exe example.wgsl` (exit code: 1)
Whereas I'd expect it to either:
Error on foo containing a return statement while it returns nothing, or
Tell me that foo returns nothing and assigning to a variable is foolish.
The text was updated successfully, but these errors were encountered:
Fixesgfx-rs#1745: Support out-of-order module scope declarations in WGSL
Fixesgfx-rs#1044: Forbid local variable shadowing in WGSL
Fixesgfx-rs#2076: [wgsl-in] no error for duplicated type definition
Fixesgfx-rs#2071: Global item does not support 'const'
Fixesgfx-rs#2105: [wgsl-in] Type aliases for a vecN<T> doesn't work when constructing vec from a single argument
Fixesgfx-rs#1775: Referencing a function without a return type yields an unknown identifier error.
Fixesgfx-rs#2089: Error span reported on the declaration of a variable instead of its use
Fixesgfx-rs#1996: [wgsl-in] Confusing error: "expected unsigned/signed integer literal, found '1'"
Separate parsing from lowering by generating an AST, which desugars as
much as possible down to something like Naga IR. The AST is then used
to resolve identifiers while lowering to Naga IR.
Co-authored-by: Teodor Tanasoaia <28601907+teoxoy@users.noreply.github.com>
Co-authored-by: Jim Blandy <jimb@red-bean.com>
I had code which resembled the following:
Note that I forgot a return type on
foo
. (This was much more difficult to spot at a glance in my actual code).Validating the code with Naga fails with:
Whereas I'd expect it to either:
foo
containing areturn
statement while it returns nothing, orfoo
returns nothing and assigning to a variable is foolish.The text was updated successfully, but these errors were encountered: