Remove IdentifierExpression::name().
This CL removes the name method from IdentifierExpression. The usages
have been converted over to the symbol.
Change-Id: Id751c2fc4a43bd5414fbaf8a8a66ecffb3838e48
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36801
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/ast/identifier_expression.h b/src/ast/identifier_expression.h
index b30c4cc..82ffca0 100644
--- a/src/ast/identifier_expression.h
+++ b/src/ast/identifier_expression.h
@@ -42,8 +42,6 @@
/// @returns the symbol for the identifier
Symbol symbol() const { return sym_; }
- /// @returns the name part of the identifier
- std::string name() const { return name_; }
/// Sets the intrinsic for this identifier
/// @param i the intrinsic to set
diff --git a/src/ast/identifier_expression_test.cc b/src/ast/identifier_expression_test.cc
index 959cbb2..1059af2 100644
--- a/src/ast/identifier_expression_test.cc
+++ b/src/ast/identifier_expression_test.cc
@@ -25,13 +25,11 @@
TEST_F(IdentifierExpressionTest, Creation) {
auto* i = Expr("ident");
EXPECT_EQ(i->symbol(), Symbol(1));
- EXPECT_EQ(i->name(), "ident");
}
TEST_F(IdentifierExpressionTest, Creation_WithSource) {
auto* i = Expr(Source{Source::Location{20, 2}}, "ident");
EXPECT_EQ(i->symbol(), Symbol(1));
- EXPECT_EQ(i->name(), "ident");
auto src = i->source();
EXPECT_EQ(src.range.begin.line, 20u);
diff --git a/src/reader/wgsl/parser_impl_additive_expression_test.cc b/src/reader/wgsl/parser_impl_additive_expression_test.cc
index 6776ad2..69b5623 100644
--- a/src/reader/wgsl/parser_impl_additive_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_additive_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -62,7 +62,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_and_expression_test.cc b/src/reader/wgsl/parser_impl_and_expression_test.cc
index 881d9ff..e50c345 100644
--- a/src/reader/wgsl/parser_impl_and_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_and_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_assignment_stmt_test.cc b/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
index 69387ba..a770895 100644
--- a/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_assignment_stmt_test.cc
@@ -42,7 +42,7 @@
ASSERT_TRUE(e->lhs()->Is<ast::IdentifierExpression>());
auto* ident = e->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(e->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(e->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -77,7 +77,7 @@
ASSERT_TRUE(mem->member()->Is<ast::IdentifierExpression>());
auto* ident = mem->member()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "d");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("d"));
ASSERT_TRUE(mem->structure()->Is<ast::ArrayAccessorExpression>());
auto* ary = mem->structure()->As<ast::ArrayAccessorExpression>();
@@ -93,18 +93,18 @@
mem = ary->array()->As<ast::MemberAccessorExpression>();
ASSERT_TRUE(mem->member()->Is<ast::IdentifierExpression>());
ident = mem->member()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "c");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("c"));
ASSERT_TRUE(mem->structure()->Is<ast::MemberAccessorExpression>());
mem = mem->structure()->As<ast::MemberAccessorExpression>();
ASSERT_TRUE(mem->structure()->Is<ast::IdentifierExpression>());
ident = mem->structure()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(mem->member()->Is<ast::IdentifierExpression>());
ident = mem->member()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "b");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("b"));
}
TEST_F(ParserImplTest, AssignmentStmt_MissingEqual) {
diff --git a/src/reader/wgsl/parser_impl_call_stmt_test.cc b/src/reader/wgsl/parser_impl_call_stmt_test.cc
index 158f7fc..1fd8f77 100644
--- a/src/reader/wgsl/parser_impl_call_stmt_test.cc
+++ b/src/reader/wgsl/parser_impl_call_stmt_test.cc
@@ -37,8 +37,8 @@
auto* c = e->As<ast::CallStatement>()->expr();
ASSERT_TRUE(c->func()->Is<ast::IdentifierExpression>());
- auto* func = c->func()->As<ast::IdentifierExpression>();
- EXPECT_EQ(func->name(), "a");
+ auto* ident = c->func()->As<ast::IdentifierExpression>();
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
EXPECT_EQ(c->params().size(), 0u);
}
@@ -55,8 +55,8 @@
auto* c = e->As<ast::CallStatement>()->expr();
ASSERT_TRUE(c->func()->Is<ast::IdentifierExpression>());
- auto* func = c->func()->As<ast::IdentifierExpression>();
- EXPECT_EQ(func->name(), "a");
+ auto* ident = c->func()->As<ast::IdentifierExpression>();
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
EXPECT_EQ(c->params().size(), 3u);
EXPECT_TRUE(c->params()[0]->Is<ast::ConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_equality_expression_test.cc b/src/reader/wgsl/parser_impl_equality_expression_test.cc
index cb99ff9..fffec25 100644
--- a/src/reader/wgsl/parser_impl_equality_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_equality_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -62,7 +62,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc b/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
index 8fbcbb0..d50a6fa 100644
--- a/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_exclusive_or_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc b/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
index 12b1ddb..6612866 100644
--- a/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_inclusive_or_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_logical_and_expression_test.cc b/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
index e961e9e..7218c70 100644
--- a/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_logical_and_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_logical_or_expression_test.cc b/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
index d4ee1b6..67f5674 100644
--- a/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_logical_or_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc b/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
index 3f1595b..8cc5101 100644
--- a/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_multiplicative_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -62,7 +62,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -85,7 +85,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_postfix_expression_test.cc b/src/reader/wgsl/parser_impl_postfix_expression_test.cc
index e20955f..afe83ea 100644
--- a/src/reader/wgsl/parser_impl_postfix_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_postfix_expression_test.cc
@@ -42,7 +42,7 @@
ASSERT_TRUE(ary->array()->Is<ast::IdentifierExpression>());
auto* ident = ary->array()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(ary->idx_expr()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(ary->idx_expr()->Is<ast::ScalarConstructorExpression>());
@@ -64,7 +64,7 @@
ASSERT_TRUE(ary->array()->Is<ast::IdentifierExpression>());
auto* ident = ary->array()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(ary->idx_expr()->Is<ast::BinaryExpression>());
}
@@ -112,7 +112,7 @@
ASSERT_TRUE(c->func()->Is<ast::IdentifierExpression>());
auto* func = c->func()->As<ast::IdentifierExpression>();
- EXPECT_EQ(func->name(), "a");
+ EXPECT_EQ(func->symbol(), p->get_module().RegisterSymbol("a"));
EXPECT_EQ(c->params().size(), 0u);
}
@@ -130,7 +130,7 @@
ASSERT_TRUE(c->func()->Is<ast::IdentifierExpression>());
auto* func = c->func()->As<ast::IdentifierExpression>();
- EXPECT_EQ(func->name(), "test");
+ EXPECT_EQ(func->symbol(), p->get_module().RegisterSymbol("test"));
EXPECT_EQ(c->params().size(), 3u);
EXPECT_TRUE(c->params()[0]->Is<ast::ConstructorExpression>());
@@ -179,10 +179,12 @@
auto* m = e->As<ast::MemberAccessorExpression>();
ASSERT_TRUE(m->structure()->Is<ast::IdentifierExpression>());
- EXPECT_EQ(m->structure()->As<ast::IdentifierExpression>()->name(), "a");
+ EXPECT_EQ(m->structure()->As<ast::IdentifierExpression>()->symbol(),
+ p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(m->member()->Is<ast::IdentifierExpression>());
- EXPECT_EQ(m->member()->As<ast::IdentifierExpression>()->name(), "b");
+ EXPECT_EQ(m->member()->As<ast::IdentifierExpression>()->symbol(),
+ p->get_module().RegisterSymbol("b"));
}
TEST_F(ParserImplTest, PostfixExpression_MemberAccesssor_InvalidIdent) {
diff --git a/src/reader/wgsl/parser_impl_primary_expression_test.cc b/src/reader/wgsl/parser_impl_primary_expression_test.cc
index 8a566af..a6bdb1b 100644
--- a/src/reader/wgsl/parser_impl_primary_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_primary_expression_test.cc
@@ -41,7 +41,7 @@
ASSERT_NE(e.value, nullptr);
ASSERT_TRUE(e->Is<ast::IdentifierExpression>());
auto* ident = e->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
}
TEST_F(ParserImplTest, PrimaryExpression_TypeDecl) {
diff --git a/src/reader/wgsl/parser_impl_relational_expression_test.cc b/src/reader/wgsl/parser_impl_relational_expression_test.cc
index 3fe6196..b17292e 100644
--- a/src/reader/wgsl/parser_impl_relational_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_relational_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -62,7 +62,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -85,7 +85,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -108,7 +108,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_shift_expression_test.cc b/src/reader/wgsl/parser_impl_shift_expression_test.cc
index b3f2319..41cee53 100644
--- a/src/reader/wgsl/parser_impl_shift_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_shift_expression_test.cc
@@ -39,7 +39,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
@@ -62,7 +62,7 @@
ASSERT_TRUE(rel->lhs()->Is<ast::IdentifierExpression>());
auto* ident = rel->lhs()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(rel->rhs()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(rel->rhs()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/reader/wgsl/parser_impl_unary_expression_test.cc b/src/reader/wgsl/parser_impl_unary_expression_test.cc
index e41e3ae..70a1098 100644
--- a/src/reader/wgsl/parser_impl_unary_expression_test.cc
+++ b/src/reader/wgsl/parser_impl_unary_expression_test.cc
@@ -38,7 +38,7 @@
auto* ary = e->As<ast::ArrayAccessorExpression>();
ASSERT_TRUE(ary->array()->Is<ast::IdentifierExpression>());
auto* ident = ary->array()->As<ast::IdentifierExpression>();
- EXPECT_EQ(ident->name(), "a");
+ EXPECT_EQ(ident->symbol(), p->get_module().RegisterSymbol("a"));
ASSERT_TRUE(ary->idx_expr()->Is<ast::ConstructorExpression>());
ASSERT_TRUE(ary->idx_expr()->Is<ast::ScalarConstructorExpression>());
diff --git a/src/type_determiner.cc b/src/type_determiner.cc
index d6a94be..8459b8a 100644
--- a/src/type_determiner.cc
+++ b/src/type_determiner.cc
@@ -504,8 +504,8 @@
ast::CallExpression* expr) {
if (ast::intrinsic::IsDerivative(ident->intrinsic())) {
if (expr->params().size() != 1) {
- set_error(expr->source(),
- "incorrect number of parameters for " + ident->name());
+ set_error(expr->source(), "incorrect number of parameters for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
@@ -525,8 +525,8 @@
}
if (ast::intrinsic::IsFloatClassificationIntrinsic(ident->intrinsic())) {
if (expr->params().size() != 1) {
- set_error(expr->source(),
- "incorrect number of parameters for " + ident->name());
+ set_error(expr->source(), "incorrect number of parameters for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
@@ -548,7 +548,8 @@
if (!texture_param->result_type()
->UnwrapPtrIfNeeded()
->Is<ast::type::Texture>()) {
- set_error(expr->source(), "invalid first argument for " + ident->name());
+ set_error(expr->source(), "invalid first argument for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
ast::type::Texture* texture = texture_param->result_type()
@@ -658,9 +659,10 @@
if (expr->params().size() != param.count) {
set_error(expr->source(),
- "incorrect number of parameters for " + ident->name() +
- ", got " + std::to_string(expr->params().size()) +
- " and expected " + std::to_string(param.count));
+ "incorrect number of parameters for " +
+ mod_->SymbolToName(ident->symbol()) + ", got " +
+ std::to_string(expr->params().size()) + " and expected " +
+ std::to_string(param.count));
return false;
}
@@ -701,8 +703,8 @@
}
if (ident->intrinsic() == ast::Intrinsic::kOuterProduct) {
if (expr->params().size() != 2) {
- set_error(expr->source(),
- "incorrect number of parameters for " + ident->name());
+ set_error(expr->source(), "incorrect number of parameters for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
@@ -710,7 +712,8 @@
auto* param1_type = expr->params()[1]->result_type()->UnwrapPtrIfNeeded();
if (!param0_type->Is<ast::type::Vector>() ||
!param1_type->Is<ast::type::Vector>()) {
- set_error(expr->source(), "invalid parameter type for " + ident->name());
+ set_error(expr->source(), "invalid parameter type for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
@@ -723,7 +726,8 @@
if (ident->intrinsic() == ast::Intrinsic::kSelect) {
if (expr->params().size() != 3) {
set_error(expr->source(), "incorrect number of parameters for " +
- ident->name() + " expected 3 got " +
+ mod_->SymbolToName(ident->symbol()) +
+ " expected 3 got " +
std::to_string(expr->params().size()));
return false;
}
@@ -742,13 +746,14 @@
}
}
if (data == nullptr) {
- error_ = "unable to find intrinsic " + ident->name();
+ error_ = "unable to find intrinsic " + mod_->SymbolToName(ident->symbol());
return false;
}
if (expr->params().size() != data->param_count) {
set_error(expr->source(), "incorrect number of parameters for " +
- ident->name() + ". Expected " +
+ mod_->SymbolToName(ident->symbol()) +
+ ". Expected " +
std::to_string(data->param_count) + " got " +
std::to_string(expr->params().size()));
return false;
@@ -764,7 +769,8 @@
if (!result_types.back()->is_float_scalar_or_vector() &&
!result_types.back()->is_integer_scalar_or_vector()) {
set_error(expr->source(),
- "incorrect type for " + ident->name() + ". " +
+ "incorrect type for " +
+ mod_->SymbolToName(ident->symbol()) + ". " +
"Requires float or int, scalar or vector values");
return false;
}
@@ -772,7 +778,8 @@
case IntrinsicDataType::kFloatScalarOrVector:
if (!result_types.back()->is_float_scalar_or_vector()) {
set_error(expr->source(),
- "incorrect type for " + ident->name() + ". " +
+ "incorrect type for " +
+ mod_->SymbolToName(ident->symbol()) + ". " +
"Requires float scalar or float vector values");
return false;
}
@@ -781,14 +788,16 @@
case IntrinsicDataType::kIntScalarOrVector:
if (!result_types.back()->is_integer_scalar_or_vector()) {
set_error(expr->source(),
- "incorrect type for " + ident->name() + ". " +
+ "incorrect type for " +
+ mod_->SymbolToName(ident->symbol()) + ". " +
"Requires integer scalar or integer vector values");
return false;
}
break;
case IntrinsicDataType::kFloatVector:
if (!result_types.back()->is_float_vector()) {
- set_error(expr->source(), "incorrect type for " + ident->name() +
+ set_error(expr->source(), "incorrect type for " +
+ mod_->SymbolToName(ident->symbol()) +
". " + "Requires float vector values");
return false;
}
@@ -796,7 +805,8 @@
result_types.back()->As<ast::type::Vector>()->size() !=
data->vector_size) {
set_error(expr->source(), "incorrect vector size for " +
- ident->name() + ". " + "Requires " +
+ mod_->SymbolToName(ident->symbol()) +
+ ". " + "Requires " +
std::to_string(data->vector_size) +
" elements");
return false;
@@ -804,7 +814,8 @@
break;
case IntrinsicDataType::kMatrix:
if (!result_types.back()->Is<ast::type::Matrix>()) {
- set_error(expr->source(), "incorrect type for " + ident->name() +
+ set_error(expr->source(), "incorrect type for " +
+ mod_->SymbolToName(ident->symbol()) +
". Requires matrix value");
return false;
}
@@ -815,8 +826,8 @@
// Verify all the parameter types match
for (size_t i = 1; i < data->param_count; ++i) {
if (result_types[0] != result_types[i]) {
- set_error(expr->source(),
- "mismatched parameter types for " + ident->name());
+ set_error(expr->source(), "mismatched parameter types for " +
+ mod_->SymbolToName(ident->symbol()));
return false;
}
}
@@ -891,143 +902,144 @@
}
bool TypeDeterminer::SetIntrinsicIfNeeded(ast::IdentifierExpression* ident) {
- if (ident->name() == "abs") {
+ auto name = mod_->SymbolToName(ident->symbol());
+ if (name == "abs") {
ident->set_intrinsic(ast::Intrinsic::kAbs);
- } else if (ident->name() == "acos") {
+ } else if (name == "acos") {
ident->set_intrinsic(ast::Intrinsic::kAcos);
- } else if (ident->name() == "all") {
+ } else if (name == "all") {
ident->set_intrinsic(ast::Intrinsic::kAll);
- } else if (ident->name() == "any") {
+ } else if (name == "any") {
ident->set_intrinsic(ast::Intrinsic::kAny);
- } else if (ident->name() == "arrayLength") {
+ } else if (name == "arrayLength") {
ident->set_intrinsic(ast::Intrinsic::kArrayLength);
- } else if (ident->name() == "asin") {
+ } else if (name == "asin") {
ident->set_intrinsic(ast::Intrinsic::kAsin);
- } else if (ident->name() == "atan") {
+ } else if (name == "atan") {
ident->set_intrinsic(ast::Intrinsic::kAtan);
- } else if (ident->name() == "atan2") {
+ } else if (name == "atan2") {
ident->set_intrinsic(ast::Intrinsic::kAtan2);
- } else if (ident->name() == "ceil") {
+ } else if (name == "ceil") {
ident->set_intrinsic(ast::Intrinsic::kCeil);
- } else if (ident->name() == "clamp") {
+ } else if (name == "clamp") {
ident->set_intrinsic(ast::Intrinsic::kClamp);
- } else if (ident->name() == "cos") {
+ } else if (name == "cos") {
ident->set_intrinsic(ast::Intrinsic::kCos);
- } else if (ident->name() == "cosh") {
+ } else if (name == "cosh") {
ident->set_intrinsic(ast::Intrinsic::kCosh);
- } else if (ident->name() == "countOneBits") {
+ } else if (name == "countOneBits") {
ident->set_intrinsic(ast::Intrinsic::kCountOneBits);
- } else if (ident->name() == "cross") {
+ } else if (name == "cross") {
ident->set_intrinsic(ast::Intrinsic::kCross);
- } else if (ident->name() == "determinant") {
+ } else if (name == "determinant") {
ident->set_intrinsic(ast::Intrinsic::kDeterminant);
- } else if (ident->name() == "distance") {
+ } else if (name == "distance") {
ident->set_intrinsic(ast::Intrinsic::kDistance);
- } else if (ident->name() == "dot") {
+ } else if (name == "dot") {
ident->set_intrinsic(ast::Intrinsic::kDot);
- } else if (ident->name() == "dpdx") {
+ } else if (name == "dpdx") {
ident->set_intrinsic(ast::Intrinsic::kDpdx);
- } else if (ident->name() == "dpdxCoarse") {
+ } else if (name == "dpdxCoarse") {
ident->set_intrinsic(ast::Intrinsic::kDpdxCoarse);
- } else if (ident->name() == "dpdxFine") {
+ } else if (name == "dpdxFine") {
ident->set_intrinsic(ast::Intrinsic::kDpdxFine);
- } else if (ident->name() == "dpdy") {
+ } else if (name == "dpdy") {
ident->set_intrinsic(ast::Intrinsic::kDpdy);
- } else if (ident->name() == "dpdyCoarse") {
+ } else if (name == "dpdyCoarse") {
ident->set_intrinsic(ast::Intrinsic::kDpdyCoarse);
- } else if (ident->name() == "dpdyFine") {
+ } else if (name == "dpdyFine") {
ident->set_intrinsic(ast::Intrinsic::kDpdyFine);
- } else if (ident->name() == "exp") {
+ } else if (name == "exp") {
ident->set_intrinsic(ast::Intrinsic::kExp);
- } else if (ident->name() == "exp2") {
+ } else if (name == "exp2") {
ident->set_intrinsic(ast::Intrinsic::kExp2);
- } else if (ident->name() == "faceForward") {
+ } else if (name == "faceForward") {
ident->set_intrinsic(ast::Intrinsic::kFaceForward);
- } else if (ident->name() == "floor") {
+ } else if (name == "floor") {
ident->set_intrinsic(ast::Intrinsic::kFloor);
- } else if (ident->name() == "fma") {
+ } else if (name == "fma") {
ident->set_intrinsic(ast::Intrinsic::kFma);
- } else if (ident->name() == "fract") {
+ } else if (name == "fract") {
ident->set_intrinsic(ast::Intrinsic::kFract);
- } else if (ident->name() == "frexp") {
+ } else if (name == "frexp") {
ident->set_intrinsic(ast::Intrinsic::kFrexp);
- } else if (ident->name() == "fwidth") {
+ } else if (name == "fwidth") {
ident->set_intrinsic(ast::Intrinsic::kFwidth);
- } else if (ident->name() == "fwidthCoarse") {
+ } else if (name == "fwidthCoarse") {
ident->set_intrinsic(ast::Intrinsic::kFwidthCoarse);
- } else if (ident->name() == "fwidthFine") {
+ } else if (name == "fwidthFine") {
ident->set_intrinsic(ast::Intrinsic::kFwidthFine);
- } else if (ident->name() == "inverseSqrt") {
+ } else if (name == "inverseSqrt") {
ident->set_intrinsic(ast::Intrinsic::kInverseSqrt);
- } else if (ident->name() == "isFinite") {
+ } else if (name == "isFinite") {
ident->set_intrinsic(ast::Intrinsic::kIsFinite);
- } else if (ident->name() == "isInf") {
+ } else if (name == "isInf") {
ident->set_intrinsic(ast::Intrinsic::kIsInf);
- } else if (ident->name() == "isNan") {
+ } else if (name == "isNan") {
ident->set_intrinsic(ast::Intrinsic::kIsNan);
- } else if (ident->name() == "isNormal") {
+ } else if (name == "isNormal") {
ident->set_intrinsic(ast::Intrinsic::kIsNormal);
- } else if (ident->name() == "ldexp") {
+ } else if (name == "ldexp") {
ident->set_intrinsic(ast::Intrinsic::kLdexp);
- } else if (ident->name() == "length") {
+ } else if (name == "length") {
ident->set_intrinsic(ast::Intrinsic::kLength);
- } else if (ident->name() == "log") {
+ } else if (name == "log") {
ident->set_intrinsic(ast::Intrinsic::kLog);
- } else if (ident->name() == "log2") {
+ } else if (name == "log2") {
ident->set_intrinsic(ast::Intrinsic::kLog2);
- } else if (ident->name() == "max") {
+ } else if (name == "max") {
ident->set_intrinsic(ast::Intrinsic::kMax);
- } else if (ident->name() == "min") {
+ } else if (name == "min") {
ident->set_intrinsic(ast::Intrinsic::kMin);
- } else if (ident->name() == "mix") {
+ } else if (name == "mix") {
ident->set_intrinsic(ast::Intrinsic::kMix);
- } else if (ident->name() == "modf") {
+ } else if (name == "modf") {
ident->set_intrinsic(ast::Intrinsic::kModf);
- } else if (ident->name() == "normalize") {
+ } else if (name == "normalize") {
ident->set_intrinsic(ast::Intrinsic::kNormalize);
- } else if (ident->name() == "outerProduct") {
+ } else if (name == "outerProduct") {
ident->set_intrinsic(ast::Intrinsic::kOuterProduct);
- } else if (ident->name() == "pow") {
+ } else if (name == "pow") {
ident->set_intrinsic(ast::Intrinsic::kPow);
- } else if (ident->name() == "reflect") {
+ } else if (name == "reflect") {
ident->set_intrinsic(ast::Intrinsic::kReflect);
- } else if (ident->name() == "reverseBits") {
+ } else if (name == "reverseBits") {
ident->set_intrinsic(ast::Intrinsic::kReverseBits);
- } else if (ident->name() == "round") {
+ } else if (name == "round") {
ident->set_intrinsic(ast::Intrinsic::kRound);
- } else if (ident->name() == "select") {
+ } else if (name == "select") {
ident->set_intrinsic(ast::Intrinsic::kSelect);
- } else if (ident->name() == "sign") {
+ } else if (name == "sign") {
ident->set_intrinsic(ast::Intrinsic::kSign);
- } else if (ident->name() == "sin") {
+ } else if (name == "sin") {
ident->set_intrinsic(ast::Intrinsic::kSin);
- } else if (ident->name() == "sinh") {
+ } else if (name == "sinh") {
ident->set_intrinsic(ast::Intrinsic::kSinh);
- } else if (ident->name() == "smoothStep") {
+ } else if (name == "smoothStep") {
ident->set_intrinsic(ast::Intrinsic::kSmoothStep);
- } else if (ident->name() == "sqrt") {
+ } else if (name == "sqrt") {
ident->set_intrinsic(ast::Intrinsic::kSqrt);
- } else if (ident->name() == "step") {
+ } else if (name == "step") {
ident->set_intrinsic(ast::Intrinsic::kStep);
- } else if (ident->name() == "tan") {
+ } else if (name == "tan") {
ident->set_intrinsic(ast::Intrinsic::kTan);
- } else if (ident->name() == "tanh") {
+ } else if (name == "tanh") {
ident->set_intrinsic(ast::Intrinsic::kTanh);
- } else if (ident->name() == "textureLoad") {
+ } else if (name == "textureLoad") {
ident->set_intrinsic(ast::Intrinsic::kTextureLoad);
- } else if (ident->name() == "textureStore") {
+ } else if (name == "textureStore") {
ident->set_intrinsic(ast::Intrinsic::kTextureStore);
- } else if (ident->name() == "textureSample") {
+ } else if (name == "textureSample") {
ident->set_intrinsic(ast::Intrinsic::kTextureSample);
- } else if (ident->name() == "textureSampleBias") {
+ } else if (name == "textureSampleBias") {
ident->set_intrinsic(ast::Intrinsic::kTextureSampleBias);
- } else if (ident->name() == "textureSampleCompare") {
+ } else if (name == "textureSampleCompare") {
ident->set_intrinsic(ast::Intrinsic::kTextureSampleCompare);
- } else if (ident->name() == "textureSampleGrad") {
+ } else if (name == "textureSampleGrad") {
ident->set_intrinsic(ast::Intrinsic::kTextureSampleGrad);
- } else if (ident->name() == "textureSampleLevel") {
+ } else if (name == "textureSampleLevel") {
ident->set_intrinsic(ast::Intrinsic::kTextureSampleLevel);
- } else if (ident->name() == "trunc") {
+ } else if (name == "trunc") {
ident->set_intrinsic(ast::Intrinsic::kTrunc);
} else {
return false;
diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc
index b631141..1da0158 100644
--- a/src/writer/hlsl/generator_impl.cc
+++ b/src/writer/hlsl/generator_impl.cc
@@ -81,21 +81,6 @@
stmts->last()->Is<ast::FallthroughStatement>();
}
-std::string get_buffer_name(ast::Expression* expr) {
- for (;;) {
- if (auto* ident = expr->As<ast::IdentifierExpression>()) {
- return ident->name();
- } else if (auto* member = expr->As<ast::MemberAccessorExpression>()) {
- expr = member->structure();
- } else if (auto* array = expr->As<ast::ArrayAccessorExpression>()) {
- expr = array->array();
- } else {
- break;
- }
- }
- return "";
-}
-
uint32_t convert_swizzle_to_index(const std::string& swizzle) {
if (swizzle == "r" || swizzle == "x") {
return 0;
@@ -684,17 +669,18 @@
return true;
}
- auto name = ident->name();
- auto caller_sym = module_->GetSymbol(name);
+ auto name = namer_->NameFor(ident->symbol());
+ auto caller_sym = ident->symbol();
auto it = ep_func_name_remapped_.find(current_ep_sym_.to_str() + "_" +
caller_sym.to_str());
if (it != ep_func_name_remapped_.end()) {
name = it->second;
}
- auto* func = module_->FindFunctionBySymbol(module_->GetSymbol(ident->name()));
+ auto* func = module_->FindFunctionBySymbol(ident->symbol());
if (func == nullptr) {
- error_ = "Unable to find function: " + name;
+ error_ =
+ "Unable to find function: " + module_->SymbolToName(ident->symbol());
return false;
}
@@ -782,7 +768,7 @@
break;
default:
error_ = "Internal compiler error: Unhandled texture intrinsic '" +
- ident->name() + "'";
+ module_->SymbolToName(ident->symbol()) + "'";
return false;
}
@@ -885,7 +871,7 @@
case ast::Intrinsic::kMax:
case ast::Intrinsic::kMin:
case ast::Intrinsic::kClamp:
- out = ident->name();
+ out = module_->SymbolToName(ident->symbol());
break;
case ast::Intrinsic::kFaceForward:
out = "faceforward";
@@ -900,7 +886,8 @@
out = "smoothstep";
break;
default:
- error_ = "Unknown builtin method: " + ident->name();
+ error_ =
+ "Unknown builtin method: " + module_->SymbolToName(ident->symbol());
return "";
}
@@ -1948,9 +1935,12 @@
ast::MemberAccessorExpression* expr) {
auto* structure = expr->structure();
auto* data_type = structure->result_type()->UnwrapAll();
+ // TODO(dsinclair): Swizzle
+ //
// If the data is a multi-element swizzle then we will not load the swizzle
// portion through the Load command.
- if (data_type->Is<ast::type::Vector>() && expr->member()->name().size() > 1) {
+ if (data_type->Is<ast::type::Vector>() &&
+ module_->SymbolToName(expr->member()->symbol()).size() > 1) {
return false;
}
@@ -2364,6 +2354,21 @@
return true;
}
+std::string GeneratorImpl::get_buffer_name(ast::Expression* expr) {
+ for (;;) {
+ if (auto* ident = expr->As<ast::IdentifierExpression>()) {
+ return namer_->NameFor(ident->symbol());
+ } else if (auto* member = expr->As<ast::MemberAccessorExpression>()) {
+ expr = member->structure();
+ } else if (auto* array = expr->As<ast::ArrayAccessorExpression>()) {
+ expr = array->array();
+ } else {
+ break;
+ }
+ }
+ return "";
+}
+
} // namespace hlsl
} // namespace writer
} // namespace tint
diff --git a/src/writer/hlsl/generator_impl.h b/src/writer/hlsl/generator_impl.h
index 9c1a113..a8ac5d8 100644
--- a/src/writer/hlsl/generator_impl.h
+++ b/src/writer/hlsl/generator_impl.h
@@ -387,6 +387,7 @@
};
std::string current_ep_var_name(VarType type);
+ std::string get_buffer_name(ast::Expression* expr);
std::string error_;
size_t indent_ = 0;
diff --git a/src/writer/msl/generator_impl.cc b/src/writer/msl/generator_impl.cc
index 31f0364..7d920ac 100644
--- a/src/writer/msl/generator_impl.cc
+++ b/src/writer/msl/generator_impl.cc
@@ -563,17 +563,18 @@
return true;
}
- auto name = ident->name();
- auto caller_sym = module_->GetSymbol(name);
+ auto name = namer_->NameFor(ident->symbol());
+ auto caller_sym = ident->symbol();
auto it = ep_func_name_remapped_.find(current_ep_sym_.to_str() + "_" +
caller_sym.to_str());
if (it != ep_func_name_remapped_.end()) {
name = it->second;
}
- auto* func = module_->FindFunctionBySymbol(module_->GetSymbol(ident->name()));
+ auto* func = module_->FindFunctionBySymbol(ident->symbol());
if (func == nullptr) {
- error_ = "Unable to find function: " + name;
+ error_ =
+ "Unable to find function: " + module_->SymbolToName(ident->symbol());
return false;
}
@@ -678,7 +679,7 @@
break;
default:
error_ = "Internal compiler error: Unhandled texture intrinsic '" +
- ident->name() + "'";
+ module_->SymbolToName(ident->symbol()) + "'";
return false;
}
@@ -805,7 +806,7 @@
case ast::Intrinsic::kTrunc:
case ast::Intrinsic::kSign:
case ast::Intrinsic::kClamp:
- out += ident->name();
+ out += module_->SymbolToName(ident->symbol());
break;
case ast::Intrinsic::kAbs:
if (ident->result_type()->Is<ast::type::F32>()) {
@@ -841,7 +842,8 @@
out += "rsqrt";
break;
default:
- error_ = "Unknown import method: " + ident->name();
+ error_ =
+ "Unknown import method: " + module_->SymbolToName(ident->symbol());
return "";
}
return out;
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc
index 37093fe..071ceab 100644
--- a/src/writer/spirv/builder.cc
+++ b/src/writer/spirv/builder.cc
@@ -441,12 +441,6 @@
return false;
}
- // TODO(dsinclair): This should be using the namer to update the entry point
- // name to a non-user provided string. Disable for now until we can update
- // the inspector and land the same change in MSL / HLSL to all roll into Dawn
- // at the same time.
- // OperandList operands = {Operand::Int(stage), Operand::Int(id),
- // Operand::String(func->name())};
OperandList operands = {Operand::Int(stage), Operand::Int(id),
Operand::String(namer_->NameFor(func->symbol()))};
@@ -1119,7 +1113,8 @@
return val;
}
- error_ = "unable to find variable with identifier: " + expr->name();
+ error_ = "unable to find variable with identifier: " +
+ mod_->SymbolToName(expr->symbol());
return 0;
}
@@ -1821,7 +1816,8 @@
auto func_id = func_symbol_to_id_[ident->symbol().value()];
if (func_id == 0) {
- error_ = "unable to find called function: " + ident->name();
+ error_ = "unable to find called function: " +
+ mod_->SymbolToName(ident->symbol());
return 0;
}
ops.push_back(Operand::Int(func_id));
@@ -1951,7 +1947,7 @@
auto inst_id =
intrinsic_to_glsl_method(ident->result_type(), ident->intrinsic());
if (inst_id == 0) {
- error_ = "unknown method " + ident->name();
+ error_ = "unknown method " + mod_->SymbolToName(ident->symbol());
return 0;
}
@@ -1962,7 +1958,8 @@
}
if (op == spv::Op::OpNop) {
- error_ = "unable to determine operator for: " + ident->name();
+ error_ = "unable to determine operator for: " +
+ mod_->SymbolToName(ident->symbol());
return 0;
}
@@ -2173,7 +2170,8 @@
}
if (op == spv::Op::OpNop) {
- error_ = "unable to determine operator for: " + ident->name();
+ error_ = "unable to determine operator for: " +
+ mod_->SymbolToName(ident->symbol());
return false;
}
diff --git a/src/writer/wgsl/generator_impl.cc b/src/writer/wgsl/generator_impl.cc
index bf70039..bbcc22d 100644
--- a/src/writer/wgsl/generator_impl.cc
+++ b/src/writer/wgsl/generator_impl.cc
@@ -338,7 +338,7 @@
bool GeneratorImpl::EmitIdentifier(ast::IdentifierExpression* expr) {
auto* ident = expr->As<ast::IdentifierExpression>();
- out_ << ident->name();
+ out_ << module_.SymbolToName(ident->symbol());
return true;
}