mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 22:17:51 +00:00
sem::StructType remove symbol()
The name now lives on the ast::Struct. Use that instead. Bug: tint:724 Change-Id: I4ee5e9b29973e468edd8df8c5448816b36f0fca6 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/48384 Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
committed by
Commit Bot service account
parent
8a8d26bbd9
commit
913a2f4b2a
@@ -948,8 +948,7 @@ sem::Type* ParserImpl::ConvertType(
|
||||
auto sym = builder_.Symbols().Register(name);
|
||||
auto* ast_struct = create<ast::Struct>(Source{}, sym, std::move(ast_members),
|
||||
std::move(ast_struct_decorations));
|
||||
|
||||
auto* result = builder_.create<sem::StructType>(sym, ast_struct);
|
||||
auto* result = builder_.create<sem::StructType>(ast_struct);
|
||||
id_to_type_[type_id] = result;
|
||||
if (num_non_writable_members == members.size()) {
|
||||
read_only_struct_types_.insert(result);
|
||||
|
||||
@@ -339,8 +339,8 @@ Expect<bool> ParserImpl::expect_global_decl() {
|
||||
if (!expect("struct declaration", Token::Type::kSemicolon))
|
||||
return Failure::kErrored;
|
||||
|
||||
register_constructed(builder_.Symbols().NameFor(str.value->symbol()),
|
||||
str.value);
|
||||
register_constructed(
|
||||
builder_.Symbols().NameFor(str.value->impl()->name()), str.value);
|
||||
builder_.AST().AddConstructedType(str.value);
|
||||
return true;
|
||||
}
|
||||
@@ -1135,9 +1135,8 @@ Maybe<sem::StructType*> ParserImpl::struct_decl(ast::DecorationList& decos) {
|
||||
return Failure::kErrored;
|
||||
|
||||
auto sym = builder_.Symbols().Register(name.value);
|
||||
return create<sem::StructType>(
|
||||
sym, create<ast::Struct>(source, sym, std::move(body.value),
|
||||
std::move(decos)));
|
||||
return create<sem::StructType>(create<ast::Struct>(
|
||||
source, sym, std::move(body.value), std::move(decos)));
|
||||
}
|
||||
|
||||
// struct_body_decl
|
||||
|
||||
@@ -104,7 +104,7 @@ type B = A;)");
|
||||
ASSERT_EQ(program.AST().ConstructedTypes().size(), 2u);
|
||||
ASSERT_TRUE(program.AST().ConstructedTypes()[0]->Is<sem::StructType>());
|
||||
auto* str = program.AST().ConstructedTypes()[0]->As<sem::StructType>();
|
||||
EXPECT_EQ(str->symbol(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->name(), program.Symbols().Get("A"));
|
||||
|
||||
ASSERT_TRUE(program.AST().ConstructedTypes()[1]->Is<sem::Alias>());
|
||||
auto* alias = program.AST().ConstructedTypes()[1]->As<sem::Alias>();
|
||||
@@ -168,7 +168,7 @@ TEST_F(ParserImplTest, GlobalDecl_ParsesStruct) {
|
||||
ASSERT_TRUE(t->Is<sem::StructType>());
|
||||
|
||||
auto* str = t->As<sem::StructType>();
|
||||
EXPECT_EQ(str->symbol(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->name(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->members().size(), 2u);
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ TEST_F(ParserImplTest, GlobalDecl_Struct_WithStride) {
|
||||
ASSERT_TRUE(t->Is<sem::StructType>());
|
||||
|
||||
auto* str = t->As<sem::StructType>();
|
||||
EXPECT_EQ(str->symbol(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->name(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->members().size(), 1u);
|
||||
EXPECT_FALSE(str->IsBlockDecorated());
|
||||
|
||||
@@ -213,7 +213,7 @@ TEST_F(ParserImplTest, GlobalDecl_Struct_WithDecoration) {
|
||||
ASSERT_TRUE(t->Is<sem::StructType>());
|
||||
|
||||
auto* str = t->As<sem::StructType>();
|
||||
EXPECT_EQ(str->symbol(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->name(), program.Symbols().Get("A"));
|
||||
EXPECT_EQ(str->impl()->members().size(), 1u);
|
||||
EXPECT_TRUE(str->IsBlockDecorated());
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ struct S {
|
||||
EXPECT_FALSE(s.errored);
|
||||
EXPECT_TRUE(s.matched);
|
||||
ASSERT_NE(s.value, nullptr);
|
||||
ASSERT_EQ(s->symbol(), p->builder().Symbols().Register("S"));
|
||||
ASSERT_EQ(s->impl()->name(), p->builder().Symbols().Register("S"));
|
||||
ASSERT_EQ(s->impl()->members().size(), 2u);
|
||||
EXPECT_EQ(s->impl()->members()[0]->symbol(),
|
||||
p->builder().Symbols().Register("a"));
|
||||
@@ -60,7 +60,7 @@ TEST_F(ParserImplTest, StructDecl_ParsesWithDecoration) {
|
||||
EXPECT_FALSE(s.errored);
|
||||
EXPECT_TRUE(s.matched);
|
||||
ASSERT_NE(s.value, nullptr);
|
||||
ASSERT_EQ(s->symbol(), p->builder().Symbols().Register("B"));
|
||||
ASSERT_EQ(s->impl()->name(), p->builder().Symbols().Register("B"));
|
||||
ASSERT_EQ(s->impl()->members().size(), 2u);
|
||||
EXPECT_EQ(s->impl()->members()[0]->symbol(),
|
||||
p->builder().Symbols().Register("a"));
|
||||
@@ -87,7 +87,7 @@ TEST_F(ParserImplTest, StructDecl_ParsesWithMultipleDecoration) {
|
||||
EXPECT_FALSE(s.errored);
|
||||
EXPECT_TRUE(s.matched);
|
||||
ASSERT_NE(s.value, nullptr);
|
||||
ASSERT_EQ(s->symbol(), p->builder().Symbols().Register("S"));
|
||||
ASSERT_EQ(s->impl()->name(), p->builder().Symbols().Register("S"));
|
||||
ASSERT_EQ(s->impl()->members().size(), 2u);
|
||||
EXPECT_EQ(s->impl()->members()[0]->symbol(),
|
||||
p->builder().Symbols().Register("a"));
|
||||
|
||||
@@ -38,8 +38,8 @@ TEST_F(ParserImplTest, TypeDecl_ParsesType) {
|
||||
TEST_F(ParserImplTest, TypeDecl_ParsesStruct_Ident) {
|
||||
auto p = parser("type a = B");
|
||||
|
||||
sem::StructType str(p->builder().Symbols().Get("B"), {});
|
||||
p->register_constructed("B", &str);
|
||||
auto* str = Structure(p->builder().Symbols().Register("B"), {});
|
||||
p->register_constructed("B", str);
|
||||
|
||||
auto t = p->type_alias();
|
||||
EXPECT_FALSE(p->has_error());
|
||||
@@ -52,8 +52,8 @@ TEST_F(ParserImplTest, TypeDecl_ParsesStruct_Ident) {
|
||||
ASSERT_TRUE(alias->type()->Is<sem::StructType>());
|
||||
|
||||
auto* s = alias->type()->As<sem::StructType>();
|
||||
EXPECT_EQ(s->symbol(), p->builder().Symbols().Get("B"));
|
||||
EXPECT_EQ(s->symbol(), p->builder().Symbols().Get("B"));
|
||||
EXPECT_EQ(s->impl()->name(), p->builder().Symbols().Get("B"));
|
||||
EXPECT_EQ(s->impl()->name(), p->builder().Symbols().Get("B"));
|
||||
}
|
||||
|
||||
TEST_F(ParserImplTest, TypeDecl_MissingIdent) {
|
||||
|
||||
@@ -116,7 +116,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_ParsesWithAccessDeco_Read) {
|
||||
decos.push_back(block_deco);
|
||||
|
||||
auto* str = create<ast::Struct>(Sym("S"), members, decos);
|
||||
auto* s = ty.struct_("S", str);
|
||||
auto* s = ty.struct_(str);
|
||||
|
||||
p->register_constructed("S", s);
|
||||
|
||||
@@ -141,7 +141,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_ParsesWithAccessDeco_ReadWrite) {
|
||||
decos.push_back(block_deco);
|
||||
|
||||
auto* str = create<ast::Struct>(Sym("S"), members, decos);
|
||||
auto* s = ty.struct_("S", str);
|
||||
auto* s = ty.struct_(str);
|
||||
|
||||
p->register_constructed("S", s);
|
||||
|
||||
@@ -166,7 +166,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_MultipleAccessDecoFail) {
|
||||
decos.push_back(block_deco);
|
||||
|
||||
auto* str = create<ast::Struct>(Sym("S"), members, decos);
|
||||
auto* s = ty.struct_("S", str);
|
||||
auto* s = ty.struct_(str);
|
||||
|
||||
p->register_constructed("S", s);
|
||||
|
||||
@@ -188,7 +188,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_MultipleAccessDeco_MultiBlock_Fail) {
|
||||
decos.push_back(block_deco);
|
||||
|
||||
auto* str = create<ast::Struct>(Sym("S"), members, decos);
|
||||
auto* s = ty.struct_("S", str);
|
||||
auto* s = ty.struct_(str);
|
||||
|
||||
p->register_constructed("S", s);
|
||||
|
||||
@@ -226,7 +226,7 @@ TEST_F(ParserImplTest, VariableIdentDecl_NonAccessDecoFail) {
|
||||
decos.push_back(block_deco);
|
||||
|
||||
auto* str = create<ast::Struct>(Sym("S"), members, decos);
|
||||
auto* s = ty.struct_("S", str);
|
||||
auto* s = ty.struct_(str);
|
||||
|
||||
p->register_constructed("S", s);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user