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;