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>
This commit is contained in:
Ben Clayton
2023-02-09 15:35:27 +00:00
committed by Ben Clayton
parent 0ddddb00cb
commit 031e2f5585
11 changed files with 551 additions and 2 deletions

View File

@@ -18,6 +18,7 @@
#include <utility>
#include "src/tint/program_builder.h"
#include "src/tint/sem/builtin_enum_expression.h"
#include "src/tint/sem/call.h"
#include "src/tint/sem/member_accessor_expression.h"
#include "src/tint/sem/type_conversion.h"
@@ -1292,6 +1293,11 @@ Transform::ApplyResult Renamer::Apply(const Program* src,
preserved_identifiers.Add(diagnostic->control.rule_name);
},
[&](const ast::TypeName* ty) { preserve_if_builtin_type(ty->name); },
[&](const ast::IdentifierExpression* expr) {
if (src->Sem().Get<sem::BuiltinEnumExpressionBase>(expr)) {
preserved_identifiers.Add(expr->identifier);
}
},
[&](const ast::CallExpression* call) {
if (auto* ident = call->target.name) {
Switch(