[tint][ir] Remove Function::ReturnBuiltin, use core::BuiltinValue
Validation can catch the invalid builtin values, just like it catches everything else.
Change-Id: I10ac58eddbecf52680d997c75566ac6e1b47d42d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/165043
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/lang/core/ir/function.h b/src/tint/lang/core/ir/function.h
index a03e510..5cf533f 100644
--- a/src/tint/lang/core/ir/function.h
+++ b/src/tint/lang/core/ir/function.h
@@ -62,16 +62,6 @@
kVertex,
};
- /// Builtin attached to return types
- enum class ReturnBuiltin {
- /// Builtin Position attribute
- kPosition,
- /// Builtin FragDepth attribute
- kFragDepth,
- /// Builtin SampleMask
- kSampleMask,
- };
-
/// Constructor
Function();
@@ -114,12 +104,12 @@
/// Sets the return attributes
/// @param builtin the builtin to set
- void SetReturnBuiltin(ReturnBuiltin builtin) {
+ void SetReturnBuiltin(BuiltinValue builtin) {
TINT_ASSERT(!return_.builtin.has_value());
return_.builtin = builtin;
}
/// @returns the return builtin attribute
- std::optional<enum ReturnBuiltin> ReturnBuiltin() const { return return_.builtin; }
+ std::optional<BuiltinValue> ReturnBuiltin() const { return return_.builtin; }
/// Clears the return builtin attribute.
void ClearReturnBuiltin() { return_.builtin = {}; }
@@ -184,7 +174,7 @@
struct {
const core::type::Type* type = nullptr;
- std::optional<enum ReturnBuiltin> builtin;
+ std::optional<BuiltinValue> builtin;
std::optional<Location> location;
bool invariant = false;
} return_;
@@ -205,18 +195,6 @@
return out << ToString(value);
}
-/// @param value the enum value
-/// @returns the string for the given enum value
-std::string_view ToString(enum Function::ReturnBuiltin value);
-
-/// @param out the stream to write to
-/// @param value the Function::ReturnBuiltin
-/// @returns @p out so calls can be chained
-template <typename STREAM, typename = traits::EnableIfIsOStream<STREAM>>
-auto& operator<<(STREAM& out, enum Function::ReturnBuiltin value) {
- return out << ToString(value);
-}
-
} // namespace tint::core::ir
#endif // SRC_TINT_LANG_CORE_IR_FUNCTION_H_