Remove use of UnwrapAll()
Change-Id: I26518ecd17cd3a69357698d1e1a2201fcbc460e0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/48880
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index 06bb7c9..85501b0 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -502,7 +502,7 @@
bool Resolver::ValidateVariable(const ast::Variable* var) {
auto* type = variable_to_info_[var]->type;
- if (auto* r = type->UnwrapAll()->As<sem::ArrayType>()) {
+ if (auto* r = type->As<sem::ArrayType>()) {
if (r->IsRuntimeArray()) {
diagnostics_.add_error(
"v-0015",
@@ -512,7 +512,7 @@
}
}
- if (auto* r = type->UnwrapAll()->As<sem::MultisampledTexture>()) {
+ if (auto* r = type->As<sem::MultisampledTexture>()) {
if (r->dim() != ast::TextureDimension::k2d) {
diagnostics_.add_error("Only 2d multisampled textures are supported",
var->source());
@@ -528,36 +528,38 @@
}
}
- if (auto* r = type->UnwrapAll()->As<sem::StorageTexture>()) {
- auto* ac = type->As<sem::AccessControl>();
- if (!ac) {
- diagnostics_.add_error("Storage Textures must have access control.",
- var->source());
- return false;
- }
+ if (type->As<sem::StorageTexture>()) {
+ diagnostics_.add_error("Storage Textures must have access control.",
+ var->source());
+ return false;
+ }
- if (ac->IsReadWrite()) {
- diagnostics_.add_error(
- "Storage Textures only support Read-Only and Write-Only access "
- "control.",
- var->source());
- return false;
- }
+ if (auto* ac = type->As<sem::AccessControl>()) {
+ if (auto* r = ac->type()->As<sem::StorageTexture>()) {
+ if (ac->IsReadWrite()) {
+ diagnostics_.add_error(
+ "Storage Textures only support Read-Only and Write-Only access "
+ "control.",
+ var->source());
+ return false;
+ }
- if (!IsValidStorageTextureDimension(r->dim())) {
- diagnostics_.add_error(
- "Cube dimensions for storage textures are not "
- "supported.",
- var->source());
- return false;
- }
+ if (!IsValidStorageTextureDimension(r->dim())) {
+ diagnostics_.add_error(
+ "Cube dimensions for storage textures are not "
+ "supported.",
+ var->source());
+ return false;
+ }
- if (!IsValidStorageTextureImageFormat(r->image_format())) {
- diagnostics_.add_error(
- "image format must be one of the texel formats specified for storage "
- "textues in https://gpuweb.github.io/gpuweb/wgsl/#texel-formats",
- var->source());
- return false;
+ if (!IsValidStorageTextureImageFormat(r->image_format())) {
+ diagnostics_.add_error(
+ "image format must be one of the texel formats specified for "
+ "storage textues in "
+ "https://gpuweb.github.io/gpuweb/wgsl/#texel-formats",
+ var->source());
+ return false;
+ }
}
}