Validator: add const init with param test
Also test initializing a const from a function parameter.
Bug: tint:642
Change-Id: Ic10a4e8b5a2f67f56bc3720cb59f8d306e175d66
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/45520
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/validator/validator_function_test.cc b/src/validator/validator_function_test.cc
index 76aae57..e5cc9bc 100644
--- a/src/validator/validator_function_test.cc
+++ b/src/validator/validator_function_test.cc
@@ -246,5 +246,23 @@
EXPECT_TRUE(v.Validate()) << v.error();
}
+TEST_F(ValidateFunctionTest, FunctionConstInitWithParam) {
+ // fn foo(bar : f32) -> void{
+ // const baz : f32 = bar;
+ // }
+
+ auto* bar = Var("bar", ty.f32(), ast::StorageClass::kFunction);
+ auto* baz = Const("baz", ty.f32(), Expr("bar"));
+
+ Func("foo", ast::VariableList{bar}, ty.void_(), ast::StatementList{Decl(baz)},
+ ast::DecorationList{
+ create<ast::StageDecoration>(ast::PipelineStage::kVertex),
+ });
+
+ ValidatorImpl& v = Build();
+
+ EXPECT_TRUE(v.Validate()) << v.error();
+}
+
} // namespace
} // namespace tint