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; }