ast::Struct: Remove Clone() hack
Semantic types are no longer cloneable, entirely avoiding the issue this hack was working around.
Bug: tint:724
Change-Id: Iec876beccfda476a5539fb4d669eeba24d263500
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49962
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/ast/struct.cc b/src/ast/struct.cc
index 8e569a5..a59c3a3 100644
--- a/src/ast/struct.cc
+++ b/src/ast/struct.cc
@@ -65,19 +65,7 @@
auto n = ctx->Clone(name());
auto mem = ctx->Clone(members());
auto decos = ctx->Clone(decorations());
- auto* out = ctx->dst->create<Struct>(src, n, mem, decos);
-
- // HACK(crbug.com/tint/724): AST nodes do not derive from ShareableCloneable,
- // and so each call to Clone() produces a new copy of the node. However,
- // during the type system migration of tint:724, we have the situation where
- // we have diamonds pointers to the ast::Struct - one from the ast::Module and
- // one from the sem::StructType. This is a hack to make ast::Struct act like
- // it derives from ShareableCloneable.
- // This should be removed (possibly along with ShareableCloneable) once
- // tint:724 is complete.
- ctx->Replace(this, out);
-
- return out;
+ return ctx->dst->create<Struct>(src, n, mem, decos);
}
void Struct::to_str(const sem::Info& sem,