tint/resolver: Resolve builtin enumerators
'address space', 'access' and 'texel_format'
Bug: tint:1810
Change-Id: If471912fcef57f7579d76c8c4edd663d1c0311ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119125
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
diff --git a/src/tint/resolver/dependency_graph.cc b/src/tint/resolver/dependency_graph.cc
index b77c812..61bb760 100644
--- a/src/tint/resolver/dependency_graph.cc
+++ b/src/tint/resolver/dependency_graph.cc
@@ -488,6 +488,18 @@
graph_.resolved_identifiers.Add(from, ResolvedIdentifier(builtin_ty));
return;
}
+ if (auto addr = type::ParseAddressSpace(s); addr != type::AddressSpace::kUndefined) {
+ graph_.resolved_identifiers.Add(from, ResolvedIdentifier(addr));
+ return;
+ }
+ if (auto fmt = type::ParseTexelFormat(s); fmt != type::TexelFormat::kUndefined) {
+ graph_.resolved_identifiers.Add(from, ResolvedIdentifier(fmt));
+ return;
+ }
+ if (auto access = type::ParseAccess(s); access != type::Access::kUndefined) {
+ graph_.resolved_identifiers.Add(from, ResolvedIdentifier(access));
+ return;
+ }
UnknownSymbol(to, from->source, use);
return;
@@ -859,6 +871,15 @@
if (auto builtin_ty = BuiltinType(); builtin_ty != type::Builtin::kUndefined) {
return "builtin type '" + utils::ToString(builtin_ty) + "'";
}
+ if (auto access = Access(); access != type::Access::kUndefined) {
+ return "access '" + utils::ToString(access) + "'";
+ }
+ if (auto addr = AddressSpace(); addr != type::AddressSpace::kUndefined) {
+ return "address space '" + utils::ToString(addr) + "'";
+ }
+ if (auto fmt = TexelFormat(); fmt != type::TexelFormat::kUndefined) {
+ return "texel format '" + utils::ToString(fmt) + "'";
+ }
TINT_UNREACHABLE(Resolver, diagnostics) << "unhandled ResolvedIdentifier";
return "<unknown>";
}