ast: Remove the now unused Decoration::IsKind() method

And replace the use of`ast::As(Decoration* deco)` with `Castable::As<T>()`.

These were used for dynamic casting, but is now replaced with Castable.

Change-Id: Ie5fe19ad4db4bc4d19f5386d2cfddaaf84b215d0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/34302
Reviewed-by: dan sinclair <dsinclair@chromium.org>
This commit is contained in:
Ben Clayton
2020-11-30 23:30:58 +00:00
parent e319d7f0e9
commit 370d20a4c6
41 changed files with 17 additions and 276 deletions

View File

@@ -2895,7 +2895,7 @@ std::vector<T*> ParserImpl::take_decorations(ast::DecorationList& in) {
out.reserve(in.size());
for (auto* deco : in) {
if (deco->Is<T>()) {
out.emplace_back(ast::As<T>(deco));
out.emplace_back(deco->As<T>());
} else {
remaining.emplace_back(deco);
}

View File

@@ -30,8 +30,8 @@ TEST_F(ParserImplTest, FunctionDecorationList_Parses) {
EXPECT_TRUE(decos.matched);
ASSERT_EQ(decos.value.size(), 2u);
auto* deco_0 = ast::As<ast::FunctionDecoration>(decos.value[0]);
auto* deco_1 = ast::As<ast::FunctionDecoration>(decos.value[1]);
auto* deco_0 = decos.value[0]->As<ast::FunctionDecoration>();
auto* deco_1 = decos.value[1]->As<ast::FunctionDecoration>();
ASSERT_NE(deco_0, nullptr);
ASSERT_NE(deco_1, nullptr);

View File

@@ -30,7 +30,7 @@ TEST_F(ParserImplTest, FunctionDecoration_Workgroup) {
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr) << p->error();
ASSERT_FALSE(p->has_error());
auto* func_deco = ast::As<ast::FunctionDecoration>(deco.value);
auto* func_deco = deco.value->As<ast::FunctionDecoration>();
ASSERT_NE(func_deco, nullptr);
ASSERT_TRUE(func_deco->IsWorkgroup());
@@ -50,7 +50,7 @@ TEST_F(ParserImplTest, FunctionDecoration_Workgroup_2Param) {
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr) << p->error();
ASSERT_FALSE(p->has_error());
auto* func_deco = ast::As<ast::FunctionDecoration>(deco.value);
auto* func_deco = deco.value->As<ast::FunctionDecoration>();
ASSERT_NE(func_deco, nullptr) << p->error();
ASSERT_TRUE(func_deco->IsWorkgroup());
@@ -70,7 +70,7 @@ TEST_F(ParserImplTest, FunctionDecoration_Workgroup_3Param) {
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr) << p->error();
ASSERT_FALSE(p->has_error());
auto* func_deco = ast::As<ast::FunctionDecoration>(deco.value);
auto* func_deco = deco.value->As<ast::FunctionDecoration>();
ASSERT_NE(func_deco, nullptr);
ASSERT_TRUE(func_deco->IsWorkgroup());
@@ -257,7 +257,7 @@ TEST_F(ParserImplTest, FunctionDecoration_Stage) {
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr) << p->error();
ASSERT_FALSE(p->has_error());
auto* func_deco = ast::As<ast::FunctionDecoration>(deco.value);
auto* func_deco = deco.value->As<ast::FunctionDecoration>();
ASSERT_NE(func_deco, nullptr);
ASSERT_TRUE(func_deco->IsStage());
EXPECT_EQ(func_deco->AsStage()->value(), ast::PipelineStage::kCompute);

View File

@@ -28,7 +28,7 @@ TEST_F(ParserImplTest, StructDecorationDecl_Parses) {
EXPECT_FALSE(decos.errored);
EXPECT_TRUE(decos.matched);
ASSERT_EQ(decos.value.size(), 1u);
auto* struct_deco = ast::As<ast::StructDecoration>(decos.value[0]);
auto* struct_deco = decos.value[0]->As<ast::StructDecoration>();
EXPECT_TRUE(struct_deco->IsBlock());
}

View File

@@ -43,7 +43,7 @@ TEST_P(StructDecorationTest, Parses) {
EXPECT_TRUE(deco.matched);
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr);
auto* struct_deco = ast::As<ast::StructDecoration>(deco.value);
auto* struct_deco = deco.value->As<ast::StructDecoration>();
ASSERT_NE(struct_deco, nullptr);
EXPECT_EQ(struct_deco->IsBlock(), params.is_block);
}

View File

@@ -48,7 +48,7 @@ TEST_F(ParserImplTest, StructMemberDecorationDecl_Single) {
EXPECT_FALSE(decos.errored);
EXPECT_TRUE(decos.matched);
ASSERT_EQ(decos.value.size(), 1u);
auto* deco = ast::As<ast::StructMemberDecoration>(decos.value[0]);
auto* deco = decos.value[0]->As<ast::StructMemberDecoration>();
ASSERT_NE(deco, nullptr);
EXPECT_TRUE(deco->IsOffset());
}

View File

@@ -30,7 +30,7 @@ TEST_F(ParserImplTest, StructMemberDecoration_Offset) {
ASSERT_NE(deco.value, nullptr);
ASSERT_FALSE(p->has_error());
auto* member_deco = ast::As<ast::StructMemberDecoration>(deco.value);
auto* member_deco = deco.value->As<ast::StructMemberDecoration>();
ASSERT_NE(member_deco, nullptr);
ASSERT_TRUE(member_deco->IsOffset());

View File

@@ -31,8 +31,8 @@ TEST_F(ParserImplTest, VariableDecorationList_Parses) {
ASSERT_TRUE(decos.matched);
ASSERT_EQ(decos.value.size(), 2u);
auto* deco_0 = ast::As<ast::VariableDecoration>(decos.value[0]);
auto* deco_1 = ast::As<ast::VariableDecoration>(decos.value[1]);
auto* deco_0 = decos.value[0]->As<ast::VariableDecoration>();
auto* deco_1 = decos.value[1]->As<ast::VariableDecoration>();
ASSERT_NE(deco_0, nullptr);
ASSERT_NE(deco_1, nullptr);

View File

@@ -31,7 +31,7 @@ TEST_F(ParserImplTest, VariableDecoration_Location) {
EXPECT_TRUE(deco.matched);
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr);
auto* var_deco = ast::As<ast::VariableDecoration>(deco.value);
auto* var_deco = deco.value->As<ast::VariableDecoration>();
ASSERT_NE(var_deco, nullptr);
ASSERT_FALSE(p->has_error());
ASSERT_TRUE(var_deco->IsLocation());
@@ -101,7 +101,7 @@ TEST_P(BuiltinTest, VariableDecoration_Builtin) {
EXPECT_TRUE(deco.matched);
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr);
auto* var_deco = ast::As<ast::VariableDecoration>(deco.value);
auto* var_deco = deco.value->As<ast::VariableDecoration>();
ASSERT_FALSE(p->has_error()) << p->error();
ASSERT_NE(var_deco, nullptr);
ASSERT_TRUE(var_deco->IsBuiltin());
@@ -180,7 +180,7 @@ TEST_F(ParserImplTest, VariableDecoration_Binding) {
EXPECT_TRUE(deco.matched);
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr);
auto* var_deco = ast::As<ast::VariableDecoration>(deco.value);
auto* var_deco = deco.value->As<ast::VariableDecoration>();
ASSERT_NE(var_deco, nullptr);
ASSERT_FALSE(p->has_error());
ASSERT_TRUE(var_deco->IsBinding());
@@ -237,7 +237,7 @@ TEST_F(ParserImplTest, VariableDecoration_set) {
EXPECT_TRUE(deco.matched);
EXPECT_FALSE(deco.errored);
ASSERT_NE(deco.value, nullptr);
auto* var_deco = ast::As<ast::VariableDecoration>(deco.value);
auto* var_deco = deco.value->As<ast::VariableDecoration>();
ASSERT_FALSE(p->has_error());
ASSERT_NE(var_deco, nullptr);
ASSERT_TRUE(var_deco->IsSet());