Просмотр исходного кода

Prevent accidental copies of TypeStructure (#6519)

The TypeStructure is pretty large, with multiple vectors inside, and we
don't want to do a bunch of mallocs for no reason. There is no need for
a copy ever at this time.

Based on #6517
Dana Jansens 4 месяцев назад
Родитель
Сommit
8e577a5d28
1 измененных файлов с 5 добавлено и 0 удалено
  1. 5 0
      toolchain/check/type_structure.h

+ 5 - 0
toolchain/check/type_structure.h

@@ -24,6 +24,11 @@ namespace Carbon::Check {
 // better, more specified, match.
 class TypeStructure : public Printable<TypeStructure> {
  public:
+  // TypeStructure is a pretty heavy data structure, avoid accidental copies.
+  // TODO: Add a Clone() method if we want to make a copy of this in the future.
+  TypeStructure(TypeStructure&&) noexcept = default;
+  auto operator=(TypeStructure&&) noexcept -> TypeStructure& = default;
+
   enum class CompareTest {
     // Test whether `this` has the same structure as `other`, or `this` is
     // strictly more specific (has more concrete values) than `other` while