ast: Remove non-group DecorationKind enums The following DecorationKinds were sub-types of core decoration types: kStride, kStage, kWorkgroup, kStructMemberOffset, kAccess, kBinding, kBuiltin, kConstantId, kLocation These only existed for casting (not for error messages), and are no longer needed, so remove them. Change-Id: I1e4bb9bf51952c6e86bac984d0d667a071ca80bf Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/34303 Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/ast/access_decoration.cc b/src/ast/access_decoration.cc index a22b99b..f192b06 100644 --- a/src/ast/access_decoration.cc +++ b/src/ast/access_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind AccessDecoration::Kind; - AccessDecoration::AccessDecoration(AccessControl val, const Source& source) : Base(source), value_(val) {} AccessDecoration::~AccessDecoration() = default; -DecorationKind AccessDecoration::GetKind() const { - return Kind; -} - bool AccessDecoration::IsAccess() const { return true; }
diff --git a/src/ast/access_decoration.h b/src/ast/access_decoration.h index 41baa63..15f7e12 100644 --- a/src/ast/access_decoration.h +++ b/src/ast/access_decoration.h
@@ -26,18 +26,12 @@ /// An access decoration class AccessDecoration : public Castable<AccessDecoration, TypeDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kAccess; - /// constructor /// @param value the access value /// @param source the source of this decoration explicit AccessDecoration(AccessControl value, const Source& source); ~AccessDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is an access decoration bool IsAccess() const override;
diff --git a/src/ast/binding_decoration.cc b/src/ast/binding_decoration.cc index 73f3836..2b85dda 100644 --- a/src/ast/binding_decoration.cc +++ b/src/ast/binding_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind BindingDecoration::Kind; - BindingDecoration::BindingDecoration(uint32_t val, const Source& source) : Base(source), value_(val) {} BindingDecoration::~BindingDecoration() = default; -DecorationKind BindingDecoration::GetKind() const { - return Kind; -} - bool BindingDecoration::IsBinding() const { return true; }
diff --git a/src/ast/binding_decoration.h b/src/ast/binding_decoration.h index 8799656..c4bbf9d 100644 --- a/src/ast/binding_decoration.h +++ b/src/ast/binding_decoration.h
@@ -26,18 +26,12 @@ class BindingDecoration : public Castable<BindingDecoration, VariableDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kBinding; - /// constructor /// @param value the binding value /// @param source the source of this decoration BindingDecoration(uint32_t value, const Source& source); ~BindingDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a binding decoration bool IsBinding() const override;
diff --git a/src/ast/builtin_decoration.cc b/src/ast/builtin_decoration.cc index a620290..34d48f5 100644 --- a/src/ast/builtin_decoration.cc +++ b/src/ast/builtin_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind BuiltinDecoration::Kind; - BuiltinDecoration::BuiltinDecoration(Builtin builtin, const Source& source) : Base(source), builtin_(builtin) {} BuiltinDecoration::~BuiltinDecoration() = default; -DecorationKind BuiltinDecoration::GetKind() const { - return Kind; -} - bool BuiltinDecoration::IsBuiltin() const { return true; }
diff --git a/src/ast/builtin_decoration.h b/src/ast/builtin_decoration.h index 4aaf215..251a409 100644 --- a/src/ast/builtin_decoration.h +++ b/src/ast/builtin_decoration.h
@@ -25,18 +25,12 @@ class BuiltinDecoration : public Castable<BuiltinDecoration, VariableDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kBuiltin; - /// constructor /// @param builtin the builtin value /// @param source the source of this decoration BuiltinDecoration(Builtin builtin, const Source& source); ~BuiltinDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a builtin decoration bool IsBuiltin() const override;
diff --git a/src/ast/constant_id_decoration.cc b/src/ast/constant_id_decoration.cc index 405d064..86eaa7a 100644 --- a/src/ast/constant_id_decoration.cc +++ b/src/ast/constant_id_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind ConstantIdDecoration::Kind; - ConstantIdDecoration::ConstantIdDecoration(uint32_t val, const Source& source) : Base(source), value_(val) {} ConstantIdDecoration::~ConstantIdDecoration() = default; -DecorationKind ConstantIdDecoration::GetKind() const { - return Kind; -} - bool ConstantIdDecoration::IsConstantId() const { return true; }
diff --git a/src/ast/constant_id_decoration.h b/src/ast/constant_id_decoration.h index ec8512c..0a1192f 100644 --- a/src/ast/constant_id_decoration.h +++ b/src/ast/constant_id_decoration.h
@@ -25,18 +25,12 @@ class ConstantIdDecoration : public Castable<ConstantIdDecoration, VariableDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kConstantId; - /// constructor /// @param val the constant_id value /// @param source the source of this decoration ConstantIdDecoration(uint32_t val, const Source& source); ~ConstantIdDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a constant_id decoration bool IsConstantId() const override;
diff --git a/src/ast/decoration.cc b/src/ast/decoration.cc index 5c8af19..f507183 100644 --- a/src/ast/decoration.cc +++ b/src/ast/decoration.cc
@@ -23,34 +23,16 @@ switch (data) { case DecorationKind::kArray: return out << "array"; - case DecorationKind::kStride: - return out << "stride"; case DecorationKind::kFunction: return out << "function"; - case DecorationKind::kStage: - return out << "stage"; - case DecorationKind::kWorkgroup: - return out << "workgroup"; case DecorationKind::kStruct: return out << "struct"; case DecorationKind::kStructMember: return out << "struct member"; - case DecorationKind::kStructMemberOffset: - return out << "offset"; case DecorationKind::kType: return out << "type"; - case DecorationKind::kAccess: - return out << "access"; case DecorationKind::kVariable: return out << "variable"; - case DecorationKind::kBinding: - return out << "binding"; - case DecorationKind::kBuiltin: - return out << "builtin"; - case DecorationKind::kConstantId: - return out << "constant_id"; - case DecorationKind::kLocation: - return out << "location"; } return out << "<unknown>"; }
diff --git a/src/ast/decoration.h b/src/ast/decoration.h index 69e3287..7a92d4a 100644 --- a/src/ast/decoration.h +++ b/src/ast/decoration.h
@@ -28,20 +28,11 @@ /// The decoration kind enumerator enum class DecorationKind { kArray, - /*|*/ kStride, kFunction, - /*|*/ kStage, - /*|*/ kWorkgroup, kStruct, kStructMember, - /*|*/ kStructMemberOffset, kType, - /*|*/ kAccess, kVariable, - /*|*/ kBinding, - /*|*/ kBuiltin, - /*|*/ kConstantId, - /*|*/ kLocation, }; std::ostream& operator<<(std::ostream& out, DecorationKind data);
diff --git a/src/ast/decoration_test.cc b/src/ast/decoration_test.cc index d514979..f3feae8 100644 --- a/src/ast/decoration_test.cc +++ b/src/ast/decoration_test.cc
@@ -64,21 +64,20 @@ TEST_F(DecorationTest, Kinds) { EXPECT_EQ(ArrayDecoration::Kind, DecorationKind::kArray); - EXPECT_EQ(StrideDecoration::Kind, DecorationKind::kStride); + EXPECT_EQ(StrideDecoration::Kind, DecorationKind::kArray); EXPECT_EQ(FunctionDecoration::Kind, DecorationKind::kFunction); - EXPECT_EQ(StageDecoration::Kind, DecorationKind::kStage); - EXPECT_EQ(WorkgroupDecoration::Kind, DecorationKind::kWorkgroup); + EXPECT_EQ(StageDecoration::Kind, DecorationKind::kFunction); + EXPECT_EQ(WorkgroupDecoration::Kind, DecorationKind::kFunction); EXPECT_EQ(StructDecoration::Kind, DecorationKind::kStruct); EXPECT_EQ(StructMemberDecoration::Kind, DecorationKind::kStructMember); - EXPECT_EQ(StructMemberOffsetDecoration::Kind, - DecorationKind::kStructMemberOffset); + EXPECT_EQ(StructMemberOffsetDecoration::Kind, DecorationKind::kStructMember); EXPECT_EQ(TypeDecoration::Kind, DecorationKind::kType); - EXPECT_EQ(AccessDecoration::Kind, DecorationKind::kAccess); + EXPECT_EQ(AccessDecoration::Kind, DecorationKind::kType); EXPECT_EQ(VariableDecoration::Kind, DecorationKind::kVariable); - EXPECT_EQ(BindingDecoration::Kind, DecorationKind::kBinding); - EXPECT_EQ(BuiltinDecoration::Kind, DecorationKind::kBuiltin); - EXPECT_EQ(ConstantIdDecoration::Kind, DecorationKind::kConstantId); - EXPECT_EQ(LocationDecoration::Kind, DecorationKind::kLocation); + EXPECT_EQ(BindingDecoration::Kind, DecorationKind::kVariable); + EXPECT_EQ(BuiltinDecoration::Kind, DecorationKind::kVariable); + EXPECT_EQ(ConstantIdDecoration::Kind, DecorationKind::kVariable); + EXPECT_EQ(LocationDecoration::Kind, DecorationKind::kVariable); } } // namespace
diff --git a/src/ast/location_decoration.cc b/src/ast/location_decoration.cc index bc0c625..3001b61 100644 --- a/src/ast/location_decoration.cc +++ b/src/ast/location_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind LocationDecoration::Kind; - LocationDecoration::LocationDecoration(uint32_t val, const Source& source) : Base(source), value_(val) {} LocationDecoration::~LocationDecoration() = default; -DecorationKind LocationDecoration::GetKind() const { - return Kind; -} - bool LocationDecoration::IsLocation() const { return true; }
diff --git a/src/ast/location_decoration.h b/src/ast/location_decoration.h index 2d1d029..e04c503 100644 --- a/src/ast/location_decoration.h +++ b/src/ast/location_decoration.h
@@ -26,18 +26,12 @@ class LocationDecoration : public Castable<LocationDecoration, VariableDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kLocation; - /// constructor /// @param value the location value /// @param source the source of this decoration explicit LocationDecoration(uint32_t value, const Source& source); ~LocationDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a location decoration bool IsLocation() const override;
diff --git a/src/ast/stage_decoration.cc b/src/ast/stage_decoration.cc index da0f52b..ecb923f 100644 --- a/src/ast/stage_decoration.cc +++ b/src/ast/stage_decoration.cc
@@ -17,17 +17,11 @@ namespace tint { namespace ast { -constexpr const DecorationKind StageDecoration::Kind; - StageDecoration::StageDecoration(ast::PipelineStage stage, const Source& source) : Base(source), stage_(stage) {} StageDecoration::~StageDecoration() = default; -DecorationKind StageDecoration::GetKind() const { - return Kind; -} - bool StageDecoration::IsStage() const { return true; }
diff --git a/src/ast/stage_decoration.h b/src/ast/stage_decoration.h index 15d7490..0846b6d 100644 --- a/src/ast/stage_decoration.h +++ b/src/ast/stage_decoration.h
@@ -24,18 +24,12 @@ /// A workgroup decoration class StageDecoration : public Castable<StageDecoration, FunctionDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kStage; - /// constructor /// @param stage the pipeline stage /// @param source the source of this decoration StageDecoration(ast::PipelineStage stage, const Source& source); ~StageDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a stage decoration bool IsStage() const override;
diff --git a/src/ast/stride_decoration.cc b/src/ast/stride_decoration.cc index a0b2c4e..eea3053 100644 --- a/src/ast/stride_decoration.cc +++ b/src/ast/stride_decoration.cc
@@ -17,15 +17,9 @@ namespace tint { namespace ast { -constexpr const DecorationKind StrideDecoration::Kind; - StrideDecoration::StrideDecoration(uint32_t stride, const Source& source) : Base(source), stride_(stride) {} -DecorationKind StrideDecoration::GetKind() const { - return Kind; -} - bool StrideDecoration::IsStride() const { return true; }
diff --git a/src/ast/stride_decoration.h b/src/ast/stride_decoration.h index 84acdd3..ac4fd37 100644 --- a/src/ast/stride_decoration.h +++ b/src/ast/stride_decoration.h
@@ -27,18 +27,12 @@ /// A stride decoration class StrideDecoration : public Castable<StrideDecoration, ArrayDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kStride; - /// constructor /// @param stride the stride value /// @param source the source of this decoration StrideDecoration(uint32_t stride, const Source& source); ~StrideDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a stride decoration bool IsStride() const override;
diff --git a/src/ast/struct_member_offset_decoration.cc b/src/ast/struct_member_offset_decoration.cc index 9ded0fa..f1ceb43 100644 --- a/src/ast/struct_member_offset_decoration.cc +++ b/src/ast/struct_member_offset_decoration.cc
@@ -17,16 +17,10 @@ namespace tint { namespace ast { -constexpr const DecorationKind StructMemberOffsetDecoration::Kind; - StructMemberOffsetDecoration::StructMemberOffsetDecoration(uint32_t offset, const Source& source) : Base(source), offset_(offset) {} -DecorationKind StructMemberOffsetDecoration::GetKind() const { - return Kind; -} - bool StructMemberOffsetDecoration::IsOffset() const { return true; }
diff --git a/src/ast/struct_member_offset_decoration.h b/src/ast/struct_member_offset_decoration.h index e0f015c..21c2cf4 100644 --- a/src/ast/struct_member_offset_decoration.h +++ b/src/ast/struct_member_offset_decoration.h
@@ -28,19 +28,12 @@ class StructMemberOffsetDecoration : public Castable<StructMemberOffsetDecoration, StructMemberDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = - DecorationKind::kStructMemberOffset; - /// constructor /// @param offset the offset value /// @param source the source of this decoration StructMemberOffsetDecoration(uint32_t offset, const Source& source); ~StructMemberOffsetDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is an offset decoration bool IsOffset() const override;
diff --git a/src/ast/workgroup_decoration.cc b/src/ast/workgroup_decoration.cc index 1d30401..248718b 100644 --- a/src/ast/workgroup_decoration.cc +++ b/src/ast/workgroup_decoration.cc
@@ -17,8 +17,6 @@ namespace tint { namespace ast { -constexpr const DecorationKind WorkgroupDecoration::Kind; - WorkgroupDecoration::WorkgroupDecoration(uint32_t x, const Source& source) : Base(source), x_(x) {} @@ -35,10 +33,6 @@ WorkgroupDecoration::~WorkgroupDecoration() = default; -DecorationKind WorkgroupDecoration::GetKind() const { - return Kind; -} - bool WorkgroupDecoration::IsWorkgroup() const { return true; }
diff --git a/src/ast/workgroup_decoration.h b/src/ast/workgroup_decoration.h index bc6bd99..47cc51a 100644 --- a/src/ast/workgroup_decoration.h +++ b/src/ast/workgroup_decoration.h
@@ -28,9 +28,6 @@ class WorkgroupDecoration : public Castable<WorkgroupDecoration, FunctionDecoration> { public: - /// The kind of decoration that this type represents - static constexpr const DecorationKind Kind = DecorationKind::kWorkgroup; - /// constructor /// @param x the workgroup x dimension size /// @param source the source of this decoration @@ -48,9 +45,6 @@ WorkgroupDecoration(uint32_t x, uint32_t y, uint32_t z, const Source& source); ~WorkgroupDecoration() override; - /// @return the decoration kind - DecorationKind GetKind() const override; - /// @returns true if this is a workgroup decoration bool IsWorkgroup() const override;