mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-09 21:47:47 +00:00
ProgramBuilder: Swap parameter order for Var and Const
Move the storage parameter after type. Const() has no use for storage classes, so this parameter will be removed in the next change. This reordering keeps Var() and Const() parameter types identical for the first two non-optional fields Change-Id: I66669d19fa2175c4f10f615941e69efcab4c23e1 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/41540 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
4b9e7f92b9
commit
37571bc32d
@@ -144,7 +144,7 @@ TEST_F(ValidatorBuiltinsTest, Determinant_Mat4x4) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Frexp_Scalar) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.i32());
|
||||
auto* a = Var("a", ty.i32(), ast::StorageClass::kWorkgroup);
|
||||
RegisterVariable(a);
|
||||
auto* builtin = Call("frexp", 1.0f, Expr("a"));
|
||||
WrapInFunction(builtin);
|
||||
@@ -157,11 +157,11 @@ TEST_F(ValidatorBuiltinsTest, Frexp_Scalar) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Frexp_Vec2) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec2<int>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec2<int>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.i32(), 2),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("frexp", vec2<float>(1.0f, 1.0f), Expr("b"));
|
||||
@@ -176,11 +176,11 @@ TEST_F(ValidatorBuiltinsTest, Frexp_Vec2) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Frexp_Vec3) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec3<int>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec3<int>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.i32(), 3),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("frexp", vec3<float>(1.0f, 1.0f, 1.0f), Expr("b"));
|
||||
@@ -194,11 +194,11 @@ TEST_F(ValidatorBuiltinsTest, Frexp_Vec3) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Frexp_Vec4) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec4<int>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec4<int>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.i32(), 4),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("frexp", vec4<float>(1.0f, 1.0f, 1.0f, 1.0f), Expr("b"));
|
||||
@@ -212,10 +212,9 @@ TEST_F(ValidatorBuiltinsTest, Frexp_Vec4) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Modf_Scalar) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.f32());
|
||||
auto* b =
|
||||
Const("b", ast::StorageClass::kWorkgroup,
|
||||
ty.pointer<float>(ast::StorageClass::kWorkgroup), Expr("a"), {});
|
||||
auto* a = Var("a", ty.f32(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b", ty.pointer<float>(ast::StorageClass::kWorkgroup),
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("modf", 1.0f, Expr("b"));
|
||||
@@ -229,11 +228,11 @@ TEST_F(ValidatorBuiltinsTest, Modf_Scalar) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Modf_Vec2) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec2<float>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec2<float>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.f32(), 2),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("modf", vec2<float>(1.0f, 1.0f), Expr("b"));
|
||||
@@ -247,11 +246,11 @@ TEST_F(ValidatorBuiltinsTest, Modf_Vec2) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Modf_Vec3) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec3<float>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec3<float>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.f32(), 3),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("modf", vec3<float>(1.0f, 1.0f, 1.0f), Expr("b"));
|
||||
@@ -265,11 +264,11 @@ TEST_F(ValidatorBuiltinsTest, Modf_Vec3) {
|
||||
}
|
||||
|
||||
TEST_F(ValidatorBuiltinsTest, Modf_Vec4) {
|
||||
auto* a = Var("a", ast::StorageClass::kWorkgroup, ty.vec4<float>());
|
||||
auto* b = Const("b", ast::StorageClass::kWorkgroup,
|
||||
auto* a = Var("a", ty.vec4<float>(), ast::StorageClass::kWorkgroup);
|
||||
auto* b = Const("b",
|
||||
create<type::Pointer>(create<type::Vector>(ty.f32(), 4),
|
||||
ast::StorageClass::kWorkgroup),
|
||||
Expr("a"), {});
|
||||
ast::StorageClass::kWorkgroup, Expr("a"), {});
|
||||
RegisterVariable(a);
|
||||
RegisterVariable(b);
|
||||
auto* builtin = Call("modf", vec4<float>(1.0f, 1.0f, 1.0f, 1.0f), Expr("b"));
|
||||
|
||||
@@ -42,7 +42,7 @@ TEST_F(ValidateControlBlockTest, SwitchSelectorExpressionNoneIntegerType_Fail) {
|
||||
// switch (a) {
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(3.14f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(3.14f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList body;
|
||||
@@ -71,7 +71,7 @@ TEST_F(ValidateControlBlockTest, SwitchWithoutDefault_Fail) {
|
||||
// switch (a) {
|
||||
// case 1: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseSelectorList csl;
|
||||
@@ -104,7 +104,7 @@ TEST_F(ValidateControlBlockTest, SwitchWithTwoDefault_Fail) {
|
||||
// case 1: {}
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList switch_body;
|
||||
@@ -146,7 +146,7 @@ TEST_F(ValidateControlBlockTest,
|
||||
// case 1: {}
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList switch_body;
|
||||
@@ -181,7 +181,7 @@ TEST_F(ValidateControlBlockTest,
|
||||
// case -1: {}
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.u32(), Expr(2u),
|
||||
auto* var = Var("a", ty.u32(), ast::StorageClass::kNone, Expr(2u),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList switch_body;
|
||||
@@ -216,7 +216,7 @@ TEST_F(ValidateControlBlockTest, NonUniqueCaseSelectorValueUint_Fail) {
|
||||
// case 2, 2: {}
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.u32(), Expr(3u),
|
||||
auto* var = Var("a", ty.u32(), ast::StorageClass::kNone, Expr(3u),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList switch_body;
|
||||
@@ -257,7 +257,7 @@ TEST_F(ValidateControlBlockTest, NonUniqueCaseSelectorValueSint_Fail) {
|
||||
// case 0,1,2,10: {}
|
||||
// default: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseStatementList switch_body;
|
||||
@@ -298,7 +298,7 @@ TEST_F(ValidateControlBlockTest, LastClauseLastStatementIsFallthrough_Fail) {
|
||||
// switch (a) {
|
||||
// default: { fallthrough; }
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseSelectorList default_csl;
|
||||
@@ -330,7 +330,7 @@ TEST_F(ValidateControlBlockTest, SwitchCase_Pass) {
|
||||
// default: {}
|
||||
// case 5: {}
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseSelectorList default_csl;
|
||||
@@ -362,7 +362,7 @@ TEST_F(ValidateControlBlockTest, SwitchCaseAlias_Pass) {
|
||||
// }
|
||||
|
||||
auto* my_int = ty.alias("MyInt", ty.u32());
|
||||
auto* var = Var("a", ast::StorageClass::kNone, my_int, Expr(2u),
|
||||
auto* var = Var("a", my_int, ast::StorageClass::kNone, Expr(2u),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ast::CaseSelectorList default_csl;
|
||||
|
||||
@@ -38,7 +38,7 @@ class ValidateFunctionTest : public ValidatorTestHelper,
|
||||
TEST_F(ValidateFunctionTest, VoidFunctionEndWithoutReturnStatement_Pass) {
|
||||
// [[stage(vertex)]]
|
||||
// fn func -> void { var a:i32 = 2; }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func(Source{Source::Location{12, 34}}, "func", ast::VariableList{},
|
||||
@@ -74,7 +74,7 @@ TEST_F(ValidateFunctionTest,
|
||||
TEST_F(ValidateFunctionTest, FunctionEndWithoutReturnStatement_Fail) {
|
||||
// fn func -> int { var a:i32 = 2; }
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func(Source{Source::Location{12, 34}}, "func", ast::VariableList{}, ty.i32(),
|
||||
@@ -201,7 +201,7 @@ TEST_F(ValidateFunctionTest, RecursionIsNotAllowedExpr_Fail) {
|
||||
ast::ExpressionList call_params;
|
||||
auto* call_expr = create<ast::CallExpression>(
|
||||
Source{Source::Location{12, 34}}, Expr("func"), call_params);
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), call_expr,
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, call_expr,
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("func", ast::VariableList{}, ty.i32(),
|
||||
@@ -242,7 +242,7 @@ TEST_F(ValidateFunctionTest, Function_WithPipelineStage_WithParams_Fail) {
|
||||
// fn vtx_func(a : i32) -> void { return; }
|
||||
|
||||
Func(Source{Source::Location{12, 34}}, "vtx_func",
|
||||
ast::VariableList{Var("a", ast::StorageClass::kNone, ty.i32(), nullptr,
|
||||
ast::VariableList{Var("a", ty.i32(), ast::StorageClass::kNone, nullptr,
|
||||
ast::VariableDecorationList{})},
|
||||
ty.void_(),
|
||||
ast::StatementList{
|
||||
|
||||
@@ -64,7 +64,7 @@ TEST_F(ValidatorTest, AssignToScalar_Fail) {
|
||||
// var my_var : i32 = 2;
|
||||
// 1 = my_var;
|
||||
|
||||
auto* var = Var("my_var", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("my_var", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
RegisterVariable(var);
|
||||
|
||||
@@ -122,7 +122,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableInBlockStatement_Fail) {
|
||||
TEST_F(ValidatorTest, AssignCompatibleTypes_Pass) {
|
||||
// var a :i32 = 2;
|
||||
// a = 2
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
RegisterVariable(var);
|
||||
|
||||
@@ -146,7 +146,7 @@ TEST_F(ValidatorTest, AssignCompatibleTypesThroughAlias_Pass) {
|
||||
// var a :myint = 2;
|
||||
// a = 2
|
||||
auto* myint = ty.alias("myint", ty.i32());
|
||||
auto* var = Var("a", ast::StorageClass::kNone, myint, Expr(2),
|
||||
auto* var = Var("a", myint, ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
RegisterVariable(var);
|
||||
|
||||
@@ -169,9 +169,9 @@ TEST_F(ValidatorTest, AssignCompatibleTypesInferRHSLoad_Pass) {
|
||||
// var a :i32 = 2;
|
||||
// var b :i32 = 3;
|
||||
// a = b;
|
||||
auto* var_a = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var_a = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
auto* var_b = Var("b", ast::StorageClass::kNone, ty.i32(), Expr(3),
|
||||
auto* var_b = Var("b", ty.i32(), ast::StorageClass::kNone, Expr(3),
|
||||
ast::VariableDecorationList{});
|
||||
RegisterVariable(var_a);
|
||||
RegisterVariable(var_b);
|
||||
@@ -196,8 +196,8 @@ TEST_F(ValidatorTest, AssignThroughPointer_Pass) {
|
||||
// const b : ptr<function,i32> = a;
|
||||
// b = 2;
|
||||
const auto func = ast::StorageClass::kFunction;
|
||||
auto* var_a = Var("a", func, ty.i32(), Expr(2), {});
|
||||
auto* var_b = Const("b", ast::StorageClass::kNone, ty.pointer<int>(func),
|
||||
auto* var_a = Var("a", ty.i32(), func, Expr(2), {});
|
||||
auto* var_b = Const("b", ty.pointer<int>(func), ast::StorageClass::kNone,
|
||||
Expr("a"), {});
|
||||
RegisterVariable(var_a);
|
||||
RegisterVariable(var_b);
|
||||
@@ -223,7 +223,7 @@ TEST_F(ValidatorTest, AssignIncompatibleTypes_Fail) {
|
||||
// a = 2.3;
|
||||
// }
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
RegisterVariable(var);
|
||||
|
||||
@@ -252,8 +252,8 @@ TEST_F(ValidatorTest, AssignThroughPointerWrongeStoreType_Fail) {
|
||||
// const b : ptr<function,f32> = a;
|
||||
// b = 2;
|
||||
const auto priv = ast::StorageClass::kFunction;
|
||||
auto* var_a = Var("a", priv, ty.f32(), Expr(2), {});
|
||||
auto* var_b = Const("b", ast::StorageClass::kNone, ty.pointer<float>(priv),
|
||||
auto* var_a = Var("a", ty.f32(), priv, Expr(2), {});
|
||||
auto* var_b = Const("b", ty.pointer<float>(priv), ast::StorageClass::kNone,
|
||||
Expr("a"), {});
|
||||
RegisterVariable(var_a);
|
||||
RegisterVariable(var_b);
|
||||
@@ -281,7 +281,7 @@ TEST_F(ValidatorTest, AssignCompatibleTypesInBlockStatement_Pass) {
|
||||
// var a :i32 = 2;
|
||||
// a = 2
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* lhs = Expr("a");
|
||||
@@ -308,7 +308,7 @@ TEST_F(ValidatorTest, AssignIncompatibleTypesInBlockStatement_Fail) {
|
||||
// a = 2.3;
|
||||
// }
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* lhs = Expr("a");
|
||||
@@ -342,7 +342,7 @@ TEST_F(ValidatorTest, AssignIncompatibleTypesInNestedBlockStatement_Fail) {
|
||||
// }
|
||||
// }
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* lhs = Expr("a");
|
||||
@@ -375,9 +375,9 @@ TEST_F(ValidatorTest, AssignIncompatibleTypesInNestedBlockStatement_Fail) {
|
||||
|
||||
TEST_F(ValidatorTest, GlobalVariableWithStorageClass_Pass) {
|
||||
// var<in> gloabl_var: f32;
|
||||
auto* var = Global(Source{Source::Location{12, 34}}, "global_var",
|
||||
ast::StorageClass::kInput, ty.f32(), nullptr,
|
||||
ast::VariableDecorationList{});
|
||||
auto* var =
|
||||
Global(Source{Source::Location{12, 34}}, "global_var", ty.f32(),
|
||||
ast::StorageClass::kInput, nullptr, ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
|
||||
@@ -386,9 +386,8 @@ TEST_F(ValidatorTest, GlobalVariableWithStorageClass_Pass) {
|
||||
|
||||
TEST_F(ValidatorTest, GlobalVariableNoStorageClass_Fail) {
|
||||
// var gloabl_var: f32;
|
||||
Global(Source{Source::Location{12, 34}}, "global_var",
|
||||
ast::StorageClass::kNone, ty.f32(), nullptr,
|
||||
ast::VariableDecorationList{});
|
||||
Global(Source{Source::Location{12, 34}}, "global_var", ty.f32(),
|
||||
ast::StorageClass::kNone, nullptr, ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
|
||||
@@ -399,8 +398,8 @@ TEST_F(ValidatorTest, GlobalVariableNoStorageClass_Fail) {
|
||||
|
||||
TEST_F(ValidatorTest, GlobalConstantWithStorageClass_Fail) {
|
||||
// const<in> gloabl_var: f32;
|
||||
GlobalConst(Source{Source::Location{12, 34}}, "global_var",
|
||||
ast::StorageClass::kInput, ty.f32(), nullptr,
|
||||
GlobalConst(Source{Source::Location{12, 34}}, "global_var", ty.f32(),
|
||||
ast::StorageClass::kInput, nullptr,
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
@@ -413,9 +412,8 @@ TEST_F(ValidatorTest, GlobalConstantWithStorageClass_Fail) {
|
||||
|
||||
TEST_F(ValidatorTest, GlobalConstNoStorageClass_Pass) {
|
||||
// const gloabl_var: f32;
|
||||
GlobalConst(Source{Source::Location{12, 34}}, "global_var",
|
||||
ast::StorageClass::kNone, ty.f32(), nullptr,
|
||||
ast::VariableDecorationList{});
|
||||
GlobalConst(Source{Source::Location{12, 34}}, "global_var", ty.f32(),
|
||||
ast::StorageClass::kNone, nullptr, ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
|
||||
@@ -439,7 +437,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableGlobalVariableAfter_Fail) {
|
||||
ast::FunctionDecorationList{
|
||||
create<ast::StageDecoration>(ast::PipelineStage::kVertex)});
|
||||
|
||||
Global("global_var", ast::StorageClass::kPrivate, ty.f32(), Expr(2.1f),
|
||||
Global("global_var", ty.f32(), ast::StorageClass::kPrivate, Expr(2.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
@@ -455,7 +453,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableGlobalVariable_Pass) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
Global("global_var", ast::StorageClass::kPrivate, ty.f32(), Expr(2.1f),
|
||||
Global("global_var", ty.f32(), ast::StorageClass::kPrivate, Expr(2.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("my_func", ast::VariableList{}, ty.void_(),
|
||||
@@ -478,7 +476,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableInnerScope_Fail) {
|
||||
// if (true) { var a : f32 = 2.0; }
|
||||
// a = 3.14;
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* cond = Expr(true);
|
||||
@@ -512,7 +510,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableOuterScope_Pass) {
|
||||
// var a : f32 = 2.0;
|
||||
// if (true) { a = 3.14; }
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
SetSource(Source{Source::Location{12, 34}});
|
||||
@@ -545,7 +543,7 @@ TEST_F(ValidatorTest, UsingUndefinedVariableDifferentScope_Fail) {
|
||||
// { var a : f32 = 2.0; }
|
||||
// { a = 3.14; }
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
auto* first_body = create<ast::BlockStatement>(ast::StatementList{
|
||||
create<ast::VariableDeclStatement>(var),
|
||||
@@ -578,11 +576,11 @@ TEST_F(ValidatorTest, UsingUndefinedVariableDifferentScope_Fail) {
|
||||
TEST_F(ValidatorTest, GlobalVariableUnique_Pass) {
|
||||
// var global_var0 : f32 = 0.1;
|
||||
// var global_var1 : i32 = 0;
|
||||
auto* var0 = Global("global_var0", ast::StorageClass::kPrivate, ty.f32(),
|
||||
auto* var0 = Global("global_var0", ty.f32(), ast::StorageClass::kPrivate,
|
||||
Expr(0.1f), ast::VariableDecorationList{});
|
||||
|
||||
auto* var1 = Global(Source{Source::Location{12, 34}}, "global_var1",
|
||||
ast::StorageClass::kPrivate, ty.f32(), Expr(0),
|
||||
auto* var1 = Global(Source{Source::Location{12, 34}}, "global_var1", ty.f32(),
|
||||
ast::StorageClass::kPrivate, Expr(0),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
@@ -594,12 +592,11 @@ TEST_F(ValidatorTest, GlobalVariableUnique_Pass) {
|
||||
TEST_F(ValidatorTest, GlobalVariableNotUnique_Fail) {
|
||||
// var global_var : f32 = 0.1;
|
||||
// var global_var : i32 = 0;
|
||||
Global("global_var", ast::StorageClass::kPrivate, ty.f32(), Expr(0.1f),
|
||||
Global("global_var", ty.f32(), ast::StorageClass::kPrivate, Expr(0.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Global(Source{Source::Location{12, 34}}, "global_var",
|
||||
ast::StorageClass::kPrivate, ty.i32(), Expr(0),
|
||||
ast::VariableDecorationList{});
|
||||
Global(Source{Source::Location{12, 34}}, "global_var", ty.i32(),
|
||||
ast::StorageClass::kPrivate, Expr(0), ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
|
||||
@@ -613,7 +610,7 @@ TEST_F(ValidatorTest, AssignToConstant_Fail) {
|
||||
// const a :i32 = 2;
|
||||
// a = 2
|
||||
// }
|
||||
auto* var = Const("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Const("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* lhs = Expr("a");
|
||||
@@ -642,7 +639,7 @@ TEST_F(ValidatorTest, GlobalVariableFunctionVariableNotUnique_Pass) {
|
||||
// }
|
||||
// var a: f32 = 2.1;
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("my_func", ast::VariableList{}, ty.void_(),
|
||||
@@ -652,7 +649,7 @@ TEST_F(ValidatorTest, GlobalVariableFunctionVariableNotUnique_Pass) {
|
||||
ast::FunctionDecorationList{
|
||||
create<ast::StageDecoration>(ast::PipelineStage::kVertex)});
|
||||
|
||||
Global("a", ast::StorageClass::kPrivate, ty.f32(), Expr(2.1f),
|
||||
Global("a", ty.f32(), ast::StorageClass::kPrivate, Expr(2.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
ValidatorImpl& v = Build();
|
||||
@@ -667,10 +664,10 @@ TEST_F(ValidatorTest, GlobalVariableFunctionVariableNotUnique_Fail) {
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
Global("a", ast::StorageClass::kPrivate, ty.f32(), Expr(2.1f),
|
||||
Global("a", ty.f32(), ast::StorageClass::kPrivate, Expr(2.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("my_func", ast::VariableList{}, ty.void_(),
|
||||
@@ -691,10 +688,10 @@ TEST_F(ValidatorTest, RedeclaredIdentifier_Fail) {
|
||||
// var a :i32 = 2;
|
||||
// var a :f21 = 2.0;
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), Expr(2),
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, Expr(2),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* var_a_float = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(0.1f),
|
||||
auto* var_a_float = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(0.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("my_func", ast::VariableList{}, ty.void_(),
|
||||
@@ -716,7 +713,7 @@ TEST_F(ValidatorTest, RedeclaredIdentifierInnerScope_Pass) {
|
||||
// if (true) { var a : f32 = 2.0; }
|
||||
// var a : f32 = 3.14;
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* cond = Expr(true);
|
||||
@@ -724,7 +721,7 @@ TEST_F(ValidatorTest, RedeclaredIdentifierInnerScope_Pass) {
|
||||
create<ast::VariableDeclStatement>(var),
|
||||
});
|
||||
|
||||
auto* var_a_float = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(3.1f),
|
||||
auto* var_a_float = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(3.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* outer_body = create<ast::BlockStatement>(ast::StatementList{
|
||||
@@ -747,10 +744,10 @@ TEST_F(ValidatorTest, DISABLED_RedeclaredIdentifierInnerScope_False) {
|
||||
// var a : f32 = 3.14;
|
||||
// if (true) { var a : f32 = 2.0; }
|
||||
// }
|
||||
auto* var_a_float = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(3.1f),
|
||||
auto* var_a_float = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(3.1f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* cond = Expr(true);
|
||||
@@ -776,13 +773,13 @@ TEST_F(ValidatorTest, RedeclaredIdentifierInnerScopeBlock_Pass) {
|
||||
// { var a : f32; }
|
||||
// var a : f32;
|
||||
// }
|
||||
auto* var_inner = Var("a", ast::StorageClass::kNone, ty.f32());
|
||||
auto* var_inner = Var("a", ty.f32(), ast::StorageClass::kNone);
|
||||
auto* inner = create<ast::BlockStatement>(ast::StatementList{
|
||||
create<ast::VariableDeclStatement>(Source{Source::Location{12, 34}},
|
||||
var_inner),
|
||||
});
|
||||
|
||||
auto* var_outer = Var("a", ast::StorageClass::kNone, ty.f32());
|
||||
auto* var_outer = Var("a", ty.f32(), ast::StorageClass::kNone);
|
||||
auto* outer_body = create<ast::BlockStatement>(ast::StatementList{
|
||||
inner,
|
||||
create<ast::VariableDeclStatement>(var_outer),
|
||||
@@ -800,13 +797,13 @@ TEST_F(ValidatorTest, RedeclaredIdentifierInnerScopeBlock_Fail) {
|
||||
// var a : f32;
|
||||
// { var a : f32; }
|
||||
// }
|
||||
auto* var_inner = Var("a", ast::StorageClass::kNone, ty.f32());
|
||||
auto* var_inner = Var("a", ty.f32(), ast::StorageClass::kNone);
|
||||
auto* inner = create<ast::BlockStatement>(ast::StatementList{
|
||||
create<ast::VariableDeclStatement>(Source{Source::Location{12, 34}},
|
||||
var_inner),
|
||||
});
|
||||
|
||||
auto* var_outer = Var("a", ast::StorageClass::kNone, ty.f32());
|
||||
auto* var_outer = Var("a", ty.f32(), ast::StorageClass::kNone);
|
||||
auto* outer_body = create<ast::BlockStatement>(ast::StatementList{
|
||||
create<ast::VariableDeclStatement>(var_outer),
|
||||
inner,
|
||||
@@ -823,10 +820,10 @@ TEST_F(ValidatorTest, RedeclaredIdentifierInnerScopeBlock_Fail) {
|
||||
TEST_F(ValidatorTest, RedeclaredIdentifierDifferentFunctions_Pass) {
|
||||
// func0 { var a : f32 = 2.0; return; }
|
||||
// func1 { var a : f32 = 3.0; return; }
|
||||
auto* var0 = Var("a", ast::StorageClass::kNone, ty.f32(), Expr(2.0f),
|
||||
auto* var0 = Var("a", ty.f32(), ast::StorageClass::kNone, Expr(2.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
auto* var1 = Var("a", ast::StorageClass::kNone, ty.void_(), Expr(1.0f),
|
||||
auto* var1 = Var("a", ty.void_(), ast::StorageClass::kNone, Expr(1.0f),
|
||||
ast::VariableDecorationList{});
|
||||
|
||||
Func("func0", ast::VariableList{}, ty.void_(),
|
||||
@@ -857,7 +854,7 @@ TEST_F(ValidatorTest, VariableDeclNoConstructor_Pass) {
|
||||
// var a :i32;
|
||||
// a = 2;
|
||||
// }
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.i32(), nullptr,
|
||||
auto* var = Var("a", ty.i32(), ast::StorageClass::kNone, nullptr,
|
||||
ast::VariableDecorationList{});
|
||||
auto* lhs = Expr("a");
|
||||
auto* rhs = Expr(2);
|
||||
|
||||
@@ -162,7 +162,7 @@ TEST_F(ValidatorTypeTest, RuntimeArrayInFunction_Fail) {
|
||||
/// [[stage(vertex)]]
|
||||
// fn func -> void { var a : array<i32>; }
|
||||
|
||||
auto* var = Var("a", ast::StorageClass::kNone, ty.array<i32>());
|
||||
auto* var = Var("a", ty.array<i32>(), ast::StorageClass::kNone);
|
||||
|
||||
Func("func", ast::VariableList{}, ty.void_(),
|
||||
ast::StatementList{
|
||||
@@ -186,8 +186,8 @@ TEST_F(ValidatorTypeTest, RuntimeArrayAsParameter_Fail) {
|
||||
// [[stage(vertex)]] fn main() {}
|
||||
|
||||
auto* param =
|
||||
Var(Source{Source::Location{12, 34}}, "a", ast::StorageClass::kNone,
|
||||
ty.array<i32>(), nullptr, ast::VariableDecorationList{});
|
||||
Var(Source{Source::Location{12, 34}}, "a", ty.array<i32>(),
|
||||
ast::StorageClass::kNone, nullptr, ast::VariableDecorationList{});
|
||||
|
||||
Func("func", ast::VariableList{param}, ty.void_(),
|
||||
ast::StatementList{
|
||||
|
||||
Reference in New Issue
Block a user