-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Description
We panic here as f16::to_u32()
returns None. f16::to_u32()
under the hood calls f16::to_f32()
which is infallible, and then calls f32::to_u32()
(from num_traits::ToPrimitive
) which if I'm following the code correctly is implemented here.
Repro steps
enable f16;
fn test() {
var a = u32(-1h);
}
Expected vs observed behavior
I would expect this to evaluate to var a = 0u
as it does for f32
or AbstractFloat
.
Instead we get this panic:
thread 'main' panicked at naga/src/proc/constant_evaluator.rs:1719:60:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: rust_begin_unwind
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/std/src/panicking.rs:692:5
1: core::panicking::panic_fmt
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:75:14
2: core::panicking::panic
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/panicking.rs:145:5
3: core::option::unwrap_failed
at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library/core/src/option.rs:2015:5
4: core::option::Option<T>::unwrap
at /home/jamie/.rustup/toolchains/1.85-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:978:21
5: naga::proc::constant_evaluator::ConstantEvaluator::cast
at ./naga/src/proc/constant_evaluator.rs:1719:44
6: naga::proc::constant_evaluator::ConstantEvaluator::try_eval_and_append_impl
at ./naga/src/proc/constant_evaluator.rs:942:36
7: naga::proc::constant_evaluator::ConstantEvaluator::try_eval_and_append
at ./naga/src/proc/constant_evaluator.rs:802:35
8: naga::front::wgsl::lower::ExpressionContext::append_expression
at ./naga/src/front/wgsl/lower/mod.rs:500:9
9: naga::front::wgsl::lower::construction::<impl naga::front::wgsl::lower::Lowerer>::construct
at ./naga/src/front/wgsl/lower/construction.rs:561:20
10: naga::front::wgsl::lower::Lowerer::expression_for_reference
at ./naga/src/front/wgsl/lower/mod.rs:2068:30
11: naga::front::wgsl::lower::Lowerer::expression_for_abstract
at ./naga/src/front/wgsl/lower/mod.rs:2001:20
12: naga::front::wgsl::lower::Lowerer::type_and_init
at ./naga/src/front/wgsl/lower/mod.rs:1292:32
13: naga::front::wgsl::lower::Lowerer::statement
at ./naga/src/front/wgsl/lower/mod.rs:1542:45
14: naga::front::wgsl::lower::Lowerer::block
at ./naga/src/front/wgsl/lower/mod.rs:1470:13
15: naga::front::wgsl::lower::Lowerer::function
at ./naga/src/front/wgsl/lower/mod.rs:1377:24
16: naga::front::wgsl::lower::Lowerer::lower
at ./naga/src/front/wgsl/lower/mod.rs:1105:40
17: naga::front::wgsl::Frontend::inner
at ./naga/src/front/wgsl/mod.rs:50:22
18: naga::front::wgsl::Frontend::parse
at ./naga/src/front/wgsl/mod.rs:44:9
19: naga::front::wgsl::parse_str
at ./naga/src/front/wgsl/mod.rs:68:5
20: naga::parse_input
at ./naga-cli/src/bin/naga.rs:623:26
21: naga::run
at ./naga-cli/src/bin/naga.rs:478:9
22: naga::main
at ./naga-cli/src/bin/naga.rs:361:21
23: core::ops::function::FnOnce::call_once
at /home/jamie/.rustup/toolchains/1.85-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done