Rename Index and Member builder helpers.
This CL renames Index to IndexAccessor and Member to MemberAccessor.
This keeps the naming consistent and makes room to use Member for
StructMember.
Change-Id: Icbba3a39ed5e079cd83d8f512fff69494dfac10d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35824
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/ast/builder.h b/src/ast/builder.h
index 05afa92..6554b73 100644
--- a/src/ast/builder.h
+++ b/src/ast/builder.h
@@ -557,7 +557,7 @@
/// @param idx the index argument for the array accessor expression
/// @returns a `ArrayAccessorExpression` that indexes `arr` with `idx`
template <typename ARR, typename IDX>
- Expression* Index(ARR&& arr, IDX&& idx) {
+ Expression* IndexAccessor(ARR&& arr, IDX&& idx) {
return create<ArrayAccessorExpression>(Expr(std::forward<ARR>(arr)),
Expr(std::forward<IDX>(idx)));
}
@@ -566,7 +566,7 @@
/// @param idx the index argument for the array accessor expression
/// @returns a `MemberAccessorExpression` that indexes `obj` with `idx`
template <typename OBJ, typename IDX>
- Expression* Member(OBJ&& obj, IDX&& idx) {
+ Expression* MemberAccessor(OBJ&& obj, IDX&& idx) {
return create<MemberAccessorExpression>(Expr(std::forward<OBJ>(obj)),
Expr(std::forward<IDX>(idx)));
}
diff --git a/src/transform/bound_array_accessors_test.cc b/src/transform/bound_array_accessors_test.cc
index 52886d3..1f33e00 100644
--- a/src/transform/bound_array_accessors_test.cc
+++ b/src/transform/bound_array_accessors_test.cc
@@ -119,7 +119,8 @@
Var("a", ast::StorageClass::kFunction, ty.array<f32, 3>());
Const("c", ast::StorageClass::kFunction, ty.u32);
Const("b", ast::StorageClass::kFunction,
- ty.pointer<f32>(ast::StorageClass::kFunction), Index("a", "c"), {});
+ ty.pointer<f32>(ast::StorageClass::kFunction),
+ IndexAccessor("a", "c"), {});
}
};
@@ -168,7 +169,7 @@
Var("b", ast::StorageClass::kFunction, ty.array<f32, 5>());
Var("i", ast::StorageClass::kFunction, ty.u32);
Const("c", ast::StorageClass::kFunction, ty.f32,
- Index("a", Index("b", "i")), {});
+ IndexAccessor("a", IndexAccessor("b", "i")), {});
}
};
@@ -237,7 +238,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.array(ty.f32, 3));
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", 1u), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", 1u),
+ {});
}
};
@@ -270,7 +272,7 @@
Var("a", ast::StorageClass::kFunction, ty.array<f32, 3>());
Var("c", ast::StorageClass::kFunction, ty.u32);
Var("b", ast::StorageClass::kFunction, ty.f32,
- Index("a", Add("c", Sub(2u, 3u))), {});
+ IndexAccessor("a", Add("c", Sub(2u, 3u))), {});
}
};
@@ -335,7 +337,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.array<f32, 3>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", -1), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", -1),
+ {});
}
};
@@ -365,7 +368,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.array<f32, 3>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", 3u), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", 3u),
+ {});
}
};
@@ -395,7 +399,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.vec3<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", 1u), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", 1u),
+ {});
}
};
@@ -428,7 +433,7 @@
Var("a", ast::StorageClass::kFunction, ty.vec3<f32>());
Var("c", ast::StorageClass::kFunction, ty.u32);
Var("b", ast::StorageClass::kFunction, ty.f32,
- Index("a", Add("c", Sub(2u, 3u))), {});
+ IndexAccessor("a", Add("c", Sub(2u, 3u))), {});
}
};
@@ -491,7 +496,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.vec3<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", -1), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", -1),
+ {});
}
};
@@ -521,7 +527,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.vec3<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index("a", 3u), {});
+ Var("b", ast::StorageClass::kFunction, ty.f32, IndexAccessor("a", 3u),
+ {});
}
};
@@ -551,8 +558,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index(Index("a", 2u), 1u),
- {});
+ Var("b", ast::StorageClass::kFunction, ty.f32,
+ IndexAccessor(IndexAccessor("a", 2u), 1u), {});
}
};
@@ -598,7 +605,7 @@
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
Var("c", ast::StorageClass::kFunction, ty.u32);
Var("b", ast::StorageClass::kFunction, ty.f32,
- Index(Index("a", Add("c", Sub(2u, 3u))), 1u), {});
+ IndexAccessor(IndexAccessor("a", Add("c", Sub(2u, 3u))), 1u), {});
}
};
@@ -678,7 +685,7 @@
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
Var("c", ast::StorageClass::kFunction, ty.u32);
Var("b", ast::StorageClass::kFunction, ty.f32,
- Index(Index("a", 1u), Add("c", Sub(2u, 3u))), {});
+ IndexAccessor(IndexAccessor("a", 1u), Add("c", Sub(2u, 3u))), {});
}
};
@@ -755,8 +762,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index(Index("a", -1), 1),
- {});
+ Var("b", ast::StorageClass::kFunction, ty.f32,
+ IndexAccessor(IndexAccessor("a", -1), 1), {});
}
};
@@ -799,8 +806,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index(Index("a", 2), -1),
- {});
+ Var("b", ast::StorageClass::kFunction, ty.f32,
+ IndexAccessor(IndexAccessor("a", 2), -1), {});
}
};
@@ -843,8 +850,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index(Index("a", 5u), 1u),
- {});
+ Var("b", ast::StorageClass::kFunction, ty.f32,
+ IndexAccessor(IndexAccessor("a", 5u), 1u), {});
}
};
@@ -887,8 +894,8 @@
struct Builder : ModuleBuilder {
void Build() override {
Var("a", ast::StorageClass::kFunction, ty.mat3x2<f32>());
- Var("b", ast::StorageClass::kFunction, ty.f32, Index(Index("a", 2u), 5u),
- {});
+ Var("b", ast::StorageClass::kFunction, ty.f32,
+ IndexAccessor(IndexAccessor("a", 2u), 5u), {});
}
};
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc
index 9d59d49..3576802 100644
--- a/src/type_determiner_test.cc
+++ b/src/type_determiner_test.cc
@@ -377,7 +377,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index("my_var", idx);
+ auto* acc = IndexAccessor("my_var", idx);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
ASSERT_TRUE(acc->result_type()->Is<ast::type::Pointer>());
@@ -395,7 +395,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index("my_var", 2);
+ auto* acc = IndexAccessor("my_var", 2);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
ASSERT_TRUE(acc->result_type()->Is<ast::type::Pointer>());
@@ -412,7 +412,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index("my_var", 2);
+ auto* acc = IndexAccessor("my_var", 2);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
EXPECT_TRUE(acc->result_type()->Is<ast::type::F32>())
@@ -427,7 +427,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index("my_var", 2);
+ auto* acc = IndexAccessor("my_var", 2);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
ASSERT_TRUE(acc->result_type()->Is<ast::type::Pointer>());
@@ -443,7 +443,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index(Index("my_var", 2), 1);
+ auto* acc = IndexAccessor(IndexAccessor("my_var", 2), 1);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
@@ -459,7 +459,7 @@
EXPECT_TRUE(td()->Determine());
- auto* acc = Index("my_var", 2);
+ auto* acc = IndexAccessor("my_var", 2);
EXPECT_TRUE(td()->DetermineResultType(acc));
ASSERT_NE(acc->result_type(), nullptr);
ASSERT_TRUE(acc->result_type()->Is<ast::type::Pointer>());
@@ -802,7 +802,7 @@
EXPECT_TRUE(td()->Determine());
- auto* mem = Member("my_struct", "second_member");
+ auto* mem = MemberAccessor("my_struct", "second_member");
EXPECT_TRUE(td()->DetermineResultType(mem));
ASSERT_NE(mem->result_type(), nullptr);
ASSERT_TRUE(mem->result_type()->Is<ast::type::Pointer>());
@@ -831,7 +831,7 @@
EXPECT_TRUE(td()->Determine());
- auto* mem = Member("my_struct", "second_member");
+ auto* mem = MemberAccessor("my_struct", "second_member");
EXPECT_TRUE(td()->DetermineResultType(mem));
ASSERT_NE(mem->result_type(), nullptr);
ASSERT_TRUE(mem->result_type()->Is<ast::type::Pointer>());
@@ -846,7 +846,7 @@
EXPECT_TRUE(td()->Determine());
- auto* mem = Member("my_vec", "xy");
+ auto* mem = MemberAccessor("my_vec", "xy");
EXPECT_TRUE(td()->DetermineResultType(mem)) << td()->error();
ASSERT_NE(mem->result_type(), nullptr);
ASSERT_TRUE(mem->result_type()->Is<ast::type::Vector>());
@@ -863,7 +863,7 @@
EXPECT_TRUE(td()->Determine());
- auto* mem = Member("my_vec", "x");
+ auto* mem = MemberAccessor("my_vec", "x");
EXPECT_TRUE(td()->DetermineResultType(mem)) << td()->error();
ASSERT_NE(mem->result_type(), nullptr);
ASSERT_TRUE(mem->result_type()->Is<ast::type::Pointer>());
@@ -922,7 +922,9 @@
EXPECT_TRUE(td()->Determine());
- auto* mem = Member(Member(Index(Member("c", "mem"), 0), "foo"), "yx");
+ auto* mem = MemberAccessor(
+ MemberAccessor(IndexAccessor(MemberAccessor("c", "mem"), 0), "foo"),
+ "yx");
EXPECT_TRUE(td()->DetermineResultType(mem)) << td()->error();
ASSERT_NE(mem->result_type(), nullptr);
diff --git a/src/writer/hlsl/generator_impl_array_accessor_test.cc b/src/writer/hlsl/generator_impl_array_accessor_test.cc
index 7e628fd..fc71b74 100644
--- a/src/writer/hlsl/generator_impl_array_accessor_test.cc
+++ b/src/writer/hlsl/generator_impl_array_accessor_test.cc
@@ -30,14 +30,14 @@
using HlslGeneratorImplTest_Expression = TestHelper;
TEST_F(HlslGeneratorImplTest_Expression, EmitExpression_ArrayAccessor) {
- auto* expr = Index("ary", 5);
+ auto* expr = IndexAccessor("ary", 5);
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
EXPECT_EQ(result(), "ary[5]");
}
TEST_F(HlslGeneratorImplTest_Expression, EmitArrayAccessor) {
- auto* expr = Index("ary", "idx");
+ auto* expr = IndexAccessor("ary", "idx");
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
EXPECT_EQ(result(), "ary[idx]");
diff --git a/src/writer/hlsl/generator_impl_function_entry_point_data_test.cc b/src/writer/hlsl/generator_impl_function_entry_point_data_test.cc
index 4c1d4ca..366ab7a 100644
--- a/src/writer/hlsl/generator_impl_function_entry_point_data_test.cc
+++ b/src/writer/hlsl/generator_impl_function_entry_point_data_test.cc
@@ -359,7 +359,8 @@
ast::VariableList params;
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::AssignmentStatement>(Expr("depth"), Member("coord", "x")),
+ create<ast::AssignmentStatement>(Expr("depth"),
+ MemberAccessor("coord", "x")),
});
auto* func = create<ast::Function>(
mod->RegisterSymbol("main"), "main", params, ty.void_, body,
diff --git a/src/writer/hlsl/generator_impl_function_test.cc b/src/writer/hlsl/generator_impl_function_test.cc
index 09536ff..c17e7dd 100644
--- a/src/writer/hlsl/generator_impl_function_test.cc
+++ b/src/writer/hlsl/generator_impl_function_test.cc
@@ -185,7 +185,8 @@
ast::VariableList params;
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::AssignmentStatement>(Expr("depth"), Member("coord", "x")),
+ create<ast::AssignmentStatement>(Expr("depth"),
+ MemberAccessor("coord", "x")),
create<ast::ReturnStatement>(),
});
auto* func = create<ast::Function>(
@@ -229,7 +230,7 @@
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
- Member("coord", "x"), ast::VariableDecorationList{});
+ MemberAccessor("coord", "x"), ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
create<ast::VariableDeclStatement>(var),
@@ -282,7 +283,7 @@
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
create<ast::MemberAccessorExpression>(
- Member("uniforms", "coord"), Expr("x")),
+ MemberAccessor("uniforms", "coord"), Expr("x")),
ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
@@ -343,7 +344,7 @@
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
- Member("coord", "b"), ast::VariableDecorationList{});
+ MemberAccessor("coord", "b"), ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
create<ast::VariableDeclStatement>(var),
@@ -400,7 +401,7 @@
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
- Member("coord", "b"), ast::VariableDecorationList{});
+ MemberAccessor("coord", "b"), ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
create<ast::VariableDeclStatement>(var),
@@ -456,7 +457,8 @@
mod->AddGlobalVariable(coord_var);
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::AssignmentStatement>(Member("coord", "b"), Expr(2.0f)),
+ create<ast::AssignmentStatement>(MemberAccessor("coord", "b"),
+ Expr(2.0f)),
create<ast::ReturnStatement>(),
});
@@ -641,7 +643,8 @@
params.push_back(Var("param", ast::StorageClass::kFunction, ty.f32));
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::AssignmentStatement>(Expr("depth"), Member("coord", "x")),
+ create<ast::AssignmentStatement>(Expr("depth"),
+ MemberAccessor("coord", "x")),
create<ast::ReturnStatement>(Expr("param")),
});
auto* sub_func =
@@ -703,7 +706,7 @@
params.push_back(Var("param", ast::StorageClass::kFunction, ty.f32));
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::ReturnStatement>(Member("coord", "x")),
+ create<ast::ReturnStatement>(MemberAccessor("coord", "x")),
});
auto* sub_func =
@@ -764,7 +767,7 @@
params.push_back(Var("param", ast::StorageClass::kFunction, ty.f32));
auto* body = create<ast::BlockStatement>(ast::StatementList{
- create<ast::ReturnStatement>(Member("coord", "x")),
+ create<ast::ReturnStatement>(MemberAccessor("coord", "x")),
});
auto* sub_func =
@@ -993,7 +996,7 @@
{
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
- Member("data", "d"), ast::VariableDecorationList{});
+ MemberAccessor("data", "d"), ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
create<ast::VariableDeclStatement>(var),
@@ -1012,7 +1015,7 @@
{
ast::VariableList params;
auto* var = Var("v", ast::StorageClass::kFunction, ty.f32,
- Member("data", "d"), ast::VariableDecorationList{});
+ MemberAccessor("data", "d"), ast::VariableDecorationList{});
auto* body = create<ast::BlockStatement>(ast::StatementList{
create<ast::VariableDeclStatement>(var),
diff --git a/src/writer/hlsl/generator_impl_member_accessor_test.cc b/src/writer/hlsl/generator_impl_member_accessor_test.cc
index 18dfae3..c79b12b 100644
--- a/src/writer/hlsl/generator_impl_member_accessor_test.cc
+++ b/src/writer/hlsl/generator_impl_member_accessor_test.cc
@@ -52,7 +52,7 @@
auto* str_var = Var("str", ast::StorageClass::kPrivate, &s);
- auto* expr = Member("str", "mem");
+ auto* expr = MemberAccessor("str", "mem");
td.RegisterVariableForTesting(str_var);
gen.register_global(str_var);
@@ -88,7 +88,7 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Member("data", "b");
+ auto* expr = MemberAccessor("data", "b");
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -126,7 +126,7 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Member("data", "a");
+ auto* expr = MemberAccessor("data", "a");
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -171,7 +171,7 @@
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* lhs = Member("data", "a");
+ auto* lhs = MemberAccessor("data", "a");
auto* rhs = Expr("b");
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -224,7 +224,7 @@
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* lhs = Member("data", "a");
+ auto* lhs = MemberAccessor("data", "a");
auto* rhs = Construct(ty.mat2x3<f32>(), ast::ExpressionList{});
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -274,7 +274,7 @@
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Member("data", "a");
+ auto* expr = MemberAccessor("data", "a");
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -318,7 +318,7 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Member("data", "a");
+ auto* expr = MemberAccessor("data", "a");
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -353,7 +353,7 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Member("data", "a");
+ auto* expr = MemberAccessor("data", "a");
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -393,7 +393,8 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Index(Index(Member("data", "a"), Expr(2)), Expr(1));
+ auto* expr = IndexAccessor(
+ IndexAccessor(MemberAccessor("data", "a"), Expr(2)), Expr(1));
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -429,7 +430,7 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Index(Member("data", "a"), Expr(2));
+ auto* expr = IndexAccessor(MemberAccessor("data", "a"), Expr(2));
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -465,7 +466,8 @@
auto* str = create<ast::Struct>(members, ast::StructDecorationList{});
ast::type::Struct s(mod->RegisterSymbol("Data"), "Data", str);
auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, &s);
- auto* expr = Index(Member("data", "a"), Sub(Add(Expr(2), Expr(4)), Expr(3)));
+ auto* expr = IndexAccessor(MemberAccessor("data", "a"),
+ Sub(Add(Expr(2), Expr(4)), Expr(3)));
td.RegisterVariableForTesting(coord_var);
gen.register_global(coord_var);
@@ -510,7 +512,7 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Member("data", "b");
+ auto* lhs = MemberAccessor("data", "b");
auto* rhs = Expr(2.0f);
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -553,7 +555,7 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Index(Member("data", "a"), Expr(2));
+ auto* lhs = IndexAccessor(MemberAccessor("data", "a"), Expr(2));
auto* rhs = Expr(2);
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -595,7 +597,7 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Member("data", "a");
+ auto* lhs = MemberAccessor("data", "a");
auto* rhs = Expr(2);
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -637,7 +639,7 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* expr = Member("data", "b");
+ auto* expr = MemberAccessor("data", "b");
ASSERT_TRUE(td.DetermineResultType(expr));
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
@@ -678,7 +680,7 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Member("data", "b");
+ auto* lhs = MemberAccessor("data", "b");
auto* rhs = vec3<f32>(1.f, 2.f, 3.f);
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
@@ -744,7 +746,8 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* expr = Member(Index(Member("data", "c"), Expr(2)), "b");
+ auto* expr =
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b");
ASSERT_TRUE(td.DetermineResultType(expr));
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
@@ -804,7 +807,9 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* expr = Member(Member(Index(Member("data", "c"), Expr(2)), "b"), "xy");
+ auto* expr = MemberAccessor(
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b"),
+ "xy");
ASSERT_TRUE(td.DetermineResultType(expr));
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
@@ -864,7 +869,9 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* expr = Member(Member(Index(Member("data", "c"), Expr(2)), "b"), "g");
+ auto* expr = MemberAccessor(
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b"),
+ "g");
ASSERT_TRUE(td.DetermineResultType(expr));
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
@@ -923,7 +930,9 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* expr = Index(Member(Index(Member("data", "c"), Expr(2)), "b"), Expr(1));
+ auto* expr = IndexAccessor(
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b"),
+ Expr(1));
ASSERT_TRUE(td.DetermineResultType(expr));
ASSERT_TRUE(gen.EmitExpression(pre, out, expr)) << gen.error();
@@ -982,7 +991,8 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Member(Index(Member("data", "c"), Expr(2)), "b");
+ auto* lhs =
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b");
auto* assign =
create<ast::AssignmentStatement>(lhs, vec3<f32>(1.f, 2.f, 3.f));
@@ -1046,7 +1056,9 @@
ASSERT_TRUE(td.Determine()) << td.error();
- auto* lhs = Member(Member(Index(Member("data", "c"), Expr(2)), "b"), "y");
+ auto* lhs = MemberAccessor(
+ MemberAccessor(IndexAccessor(MemberAccessor("data", "c"), Expr(2)), "b"),
+ "y");
auto* rhs = Expr(1.f);
auto* assign = create<ast::AssignmentStatement>(lhs, rhs);
diff --git a/src/writer/spirv/builder_accessor_expression_test.cc b/src/writer/spirv/builder_accessor_expression_test.cc
index dc4bc71..81ac445 100644
--- a/src/writer/spirv/builder_accessor_expression_test.cc
+++ b/src/writer/spirv/builder_accessor_expression_test.cc
@@ -54,7 +54,7 @@
auto* ary = Expr("ary");
auto* idx_expr = Expr(1);
- auto* expr = Index(ary, idx_expr);
+ auto* expr = IndexAccessor(ary, idx_expr);
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -91,7 +91,7 @@
auto* ary = Expr("ary");
auto* idx_expr = Expr("idx");
- auto* expr = Index(ary, idx_expr);
+ auto* expr = IndexAccessor(ary, idx_expr);
td.RegisterVariableForTesting(var);
td.RegisterVariableForTesting(idx);
@@ -130,7 +130,7 @@
auto* ary = Expr("ary");
- auto* expr = Index(ary, Add(1, 2));
+ auto* expr = IndexAccessor(ary, Add(1, 2));
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -166,7 +166,7 @@
auto* var = Var("ary", ast::StorageClass::kFunction, &ary4);
- auto* expr = Index(Index("ary", 3), 2);
+ auto* expr = IndexAccessor(IndexAccessor("ary", 3), 2);
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -204,7 +204,7 @@
auto* var = Var("ary", ast::StorageClass::kFunction, &ary4);
- auto* expr = Member(Index("ary", 2), "xy");
+ auto* expr = MemberAccessor(IndexAccessor("ary", 2), "xy");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -255,7 +255,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, &s_type);
- auto* expr = Member("ident", "b");
+ auto* expr = MemberAccessor("ident", "b");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -312,7 +312,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, &s_type);
- auto* expr = Member(Member("ident", "inner"), "a");
+ auto* expr = MemberAccessor(MemberAccessor("ident", "inner"), "a");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -373,7 +373,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, &s_type);
- auto* expr = Member(Member("ident", "inner"), "a");
+ auto* expr = MemberAccessor(MemberAccessor("ident", "inner"), "a");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -432,7 +432,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, &s_type);
- auto* lhs = Member(Member("ident", "inner"), "a");
+ auto* lhs = MemberAccessor(MemberAccessor("ident", "inner"), "a");
auto* rhs = Expr(2.0f);
@@ -499,7 +499,7 @@
auto* store = Var("store", ast::StorageClass::kFunction, ty.f32);
auto* lhs = Expr("store");
- auto* rhs = Member(Member("ident", "inner"), "a");
+ auto* rhs = MemberAccessor(MemberAccessor("ident", "inner"), "a");
auto* expr = create<ast::AssignmentStatement>(lhs, rhs);
@@ -539,7 +539,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, ty.vec3<f32>());
- auto* expr = Member("ident", "y");
+ auto* expr = MemberAccessor("ident", "y");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -570,7 +570,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, ty.vec3<f32>());
- auto* expr = Member("ident", "yx");
+ auto* expr = MemberAccessor("ident", "yx");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -600,7 +600,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, ty.vec3<f32>());
- auto* expr = Member(Member("ident", "yxz"), "xz");
+ auto* expr = MemberAccessor(MemberAccessor("ident", "yxz"), "xz");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -631,7 +631,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, ty.vec3<f32>());
- auto* expr = Member(Member("ident", "yxz"), "x");
+ auto* expr = MemberAccessor(MemberAccessor("ident", "yxz"), "x");
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -661,7 +661,7 @@
auto* var = Var("ident", ast::StorageClass::kFunction, ty.vec3<f32>());
- auto* expr = Index(Member("ident", "yxz"), 1);
+ auto* expr = IndexAccessor(MemberAccessor("ident", "yxz"), 1);
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(expr)) << td.error();
@@ -727,8 +727,13 @@
auto* var = Var("index", ast::StorageClass::kFunction, &a_ary_type);
- auto* expr = Member(
- Member(Member(Index(Member(Index("index", 0), "foo"), 2), "bar"), "baz"),
+ auto* expr = MemberAccessor(
+ MemberAccessor(
+ MemberAccessor(
+ IndexAccessor(MemberAccessor(IndexAccessor("index", 0), "foo"),
+ 2),
+ "bar"),
+ "baz"),
"yx");
td.RegisterVariableForTesting(var);
@@ -783,7 +788,7 @@
vec2<f32>(-0.5f, -0.5f), vec2<f32>(0.5f, -0.5f)),
{});
- auto* expr = Index("pos", 1u);
+ auto* expr = IndexAccessor("pos", 1u);
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(var->constructor())) << td.error();
@@ -826,7 +831,7 @@
auto* var = Const("pos", ast::StorageClass::kPrivate, ty.vec2<f32>(),
vec2<f32>(0.0f, 0.5f), {});
- auto* expr = Index("pos", 1u);
+ auto* expr = IndexAccessor("pos", 1u);
td.RegisterVariableForTesting(var);
ASSERT_TRUE(td.DetermineResultType(var->constructor())) << td.error();