wgsl: Remove [[access]] and [[offset]] decorations
These have been deprecated, and their usages in Dawn, CTS and samples have been updated.
Fixed: tint:846
Change-Id: I74b831fd5be2e7ca02e8208835eac8beddcef9af
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54325
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/BUILD.gn b/src/BUILD.gn
index b54c79f..2a095e7 100644
--- a/src/BUILD.gn
+++ b/src/BUILD.gn
@@ -295,8 +295,6 @@
sources = [
"ast/access.cc",
"ast/access.h",
- "ast/access_decoration.cc",
- "ast/access_decoration.h",
"ast/alias.cc",
"ast/alias.h",
"ast/array.cc",
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index af2200b..1df7ed6 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -40,8 +40,6 @@
../include/tint/tint.h
ast/access.cc
ast/access.h
- ast/access_decoration.cc
- ast/access_decoration.h
ast/alias.cc
ast/alias.h
ast/array_accessor_expression.cc
@@ -513,7 +511,6 @@
if(${TINT_BUILD_TESTS})
set(TINT_TEST_SRCS
- ast/access_decoration_test.cc
ast/alias_test.cc
ast/array_accessor_expression_test.cc
ast/array_test.cc
diff --git a/src/ast/access_decoration.cc b/src/ast/access_decoration.cc
deleted file mode 100644
index 6a3b6f0..0000000
--- a/src/ast/access_decoration.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "src/ast/access_decoration.h"
-
-#include <string>
-
-#include "src/program_builder.h"
-
-TINT_INSTANTIATE_TYPEINFO(tint::ast::AccessDecoration);
-
-namespace tint {
-namespace ast {
-
-AccessDecoration::AccessDecoration(ProgramID program_id,
- const Source& source,
- Access val)
- : Base(program_id, source), value_(val) {}
-
-AccessDecoration::~AccessDecoration() = default;
-
-std::string AccessDecoration::name() const {
- return "access";
-}
-
-void AccessDecoration::to_str(const sem::Info&,
- std::ostream& out,
- size_t indent) const {
- make_indent(out, indent);
- out << "AccessDecoration{" << value_ << "}" << std::endl;
-}
-
-AccessDecoration* AccessDecoration::Clone(CloneContext* ctx) const {
- // Clone arguments outside of create() call to have deterministic ordering
- auto src = ctx->Clone(source());
- return ctx->dst->create<AccessDecoration>(src, value_);
-}
-
-} // namespace ast
-} // namespace tint
diff --git a/src/ast/access_decoration.h b/src/ast/access_decoration.h
deleted file mode 100644
index cee1646..0000000
--- a/src/ast/access_decoration.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef SRC_AST_ACCESS_DECORATION_H_
-#define SRC_AST_ACCESS_DECORATION_H_
-
-#include <string>
-
-#include "src/ast/access.h"
-#include "src/ast/decoration.h"
-
-namespace tint {
-namespace ast {
-
-/// An access decoration
-/// [DEPRECATED]: TODO(crbug.com/tint/846): Remove this class
-class AccessDecoration : public Castable<AccessDecoration, Decoration> {
- public:
- /// constructor
- /// @param program_id the identifier of the program that owns this node
- /// @param source the source of this decoration
- /// @param value the access value
- AccessDecoration(ProgramID program_id, const Source& source, Access value);
- ~AccessDecoration() override;
-
- /// @returns the access control value
- Access value() const { return value_; }
-
- /// @returns the WGSL name for the decoration
- std::string name() const override;
-
- /// Outputs the decoration to the given stream
- /// @param sem the semantic info for the program
- /// @param out the stream to write to
- /// @param indent number of spaces to indent the node when writing
- void to_str(const sem::Info& sem,
- std::ostream& out,
- size_t indent) const override;
-
- /// Clones this node and all transitive child nodes using the `CloneContext`
- /// `ctx`.
- /// @param ctx the clone context
- /// @return the newly cloned node
- AccessDecoration* Clone(CloneContext* ctx) const override;
-
- private:
- Access const value_;
-};
-
-} // namespace ast
-} // namespace tint
-
-#endif // SRC_AST_ACCESS_DECORATION_H_
diff --git a/src/ast/access_decoration_test.cc b/src/ast/access_decoration_test.cc
deleted file mode 100644
index ecb6e0d..0000000
--- a/src/ast/access_decoration_test.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2020 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "src/ast/access_decoration.h"
-
-#include "src/ast/test_helper.h"
-
-namespace tint {
-namespace ast {
-namespace {
-
-using AccessDecorationTest = TestHelper;
-
-TEST_F(AccessDecorationTest, Creation) {
- auto* d = create<AccessDecoration>(ast::Access::kWrite);
- EXPECT_EQ(ast::Access::kWrite, d->value());
-}
-
-TEST_F(AccessDecorationTest, ToStr) {
- auto* d = create<AccessDecoration>(ast::Access::kRead);
- EXPECT_EQ(str(d), R"(AccessDecoration{read}
-)");
-}
-
-} // namespace
-} // namespace ast
-} // namespace tint
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc
index a84e15c..425b7d5 100644
--- a/src/reader/wgsl/parser_impl.cc
+++ b/src/reader/wgsl/parser_impl.cc
@@ -14,7 +14,6 @@
#include "src/reader/wgsl/parser_impl.h"
-#include "src/ast/access_decoration.h"
#include "src/ast/array.h"
#include "src/ast/assignment_statement.h"
#include "src/ast/bitcast_expression.h"
@@ -107,14 +106,12 @@
return ast::Builtin::kNone;
}
-const char kAccessDecoration[] = "access";
const char kBindingDecoration[] = "binding";
const char kBlockDecoration[] = "block";
const char kBuiltinDecoration[] = "builtin";
const char kGroupDecoration[] = "group";
const char kLocationDecoration[] = "location";
const char kOverrideDecoration[] = "override";
-const char kOffsetDecoration[] = "offset"; // DEPRECATED
const char kSizeDecoration[] = "size";
const char kAlignDecoration[] = "align";
const char kSetDecoration[] = "set";
@@ -127,11 +124,10 @@
return false;
auto s = t.to_str();
- return s == kAccessDecoration || s == kAlignDecoration ||
- s == kBindingDecoration || s == kBlockDecoration ||
- s == kBuiltinDecoration || s == kGroupDecoration ||
- s == kLocationDecoration || s == kOverrideDecoration ||
- s == kOffsetDecoration || s == kSetDecoration ||
+ return s == kAlignDecoration || s == kBindingDecoration ||
+ s == kBlockDecoration || s == kBuiltinDecoration ||
+ s == kGroupDecoration || s == kLocationDecoration ||
+ s == kOverrideDecoration || s == kSetDecoration ||
s == kSizeDecoration || s == kStageDecoration ||
s == kStrideDecoration || s == kWorkgroupSizeDecoration;
}
@@ -204,13 +200,9 @@
ParserImpl::TypedIdentifier::TypedIdentifier(const TypedIdentifier&) = default;
ParserImpl::TypedIdentifier::TypedIdentifier(ast::Type* type_in,
- ast::Access access_in,
std::string name_in,
Source source_in)
- : type(type_in),
- access(access_in),
- name(std::move(name_in)),
- source(std::move(source_in)) {}
+ : type(type_in), name(std::move(name_in)), source(std::move(source_in)) {}
ParserImpl::TypedIdentifier::~TypedIdentifier() = default;
@@ -557,19 +549,7 @@
if (decl.errored)
return Failure::kErrored;
- auto access = vq.access;
-
- if (access == ast::Access::kUndefined &&
- decl->access != ast::Access::kUndefined) {
- // TODO(crbug.com/tint/846): Remove this
- access = decl->access;
- std::stringstream msg;
- msg << "declare access with var<" << vq.storage_class << ", " << access
- << "> instead of using [[access]] decoration";
- deprecated(source, msg.str());
- }
-
- return VarDeclInfo{decl->source, decl->name, vq.storage_class, access,
+ return VarDeclInfo{decl->source, decl->name, vq.storage_class, vq.access,
decl->type};
}
@@ -580,8 +560,7 @@
// | multisampled_texture_type LESS_THAN type_decl GREATER_THAN
// | storage_texture_type LESS_THAN image_storage_type
// COMMA access GREATER_THAN
-Maybe<ast::Type*> ParserImpl::texture_sampler_types(
- ast::DecorationList& decos) {
+Maybe<ast::Type*> ParserImpl::texture_sampler_types() {
auto type = sampler_type();
if (type.matched)
return type;
@@ -630,21 +609,8 @@
return Failure::kErrored;
}
- if (!match(Token::Type::kComma)) {
- // TODO(crbug.com/tint/846): Remove this, along with the decos parameter
- auto access_decos = take_decorations<ast::AccessDecoration>(decos);
- if (access_decos.size() > 1) {
- return add_error(access_decos[1]->source(),
- "multiple access decorations not allowed");
- }
- if (access_decos.size() == 0) {
- return add_error(source_range, "expected access control");
- }
-
- deprecated(
- peek().source(),
- "access control is expected as last parameter of storage textures");
- return std::make_pair(format.value, access_decos[0]->value());
+ if (!expect("access control", Token::Type::kComma)) {
+ return Failure::kErrored;
}
auto access = expect_access("access control");
@@ -926,8 +892,7 @@
return Failure::kErrored;
if (allow_inferred && !peek().Is(Token::Type::kColon)) {
- return TypedIdentifier{nullptr, ast::Access::kUndefined, ident.value,
- ident.source};
+ return TypedIdentifier{nullptr, ident.value, ident.source};
}
if (!expect(use, Token::Type::kColon))
@@ -944,18 +909,10 @@
if (!type.matched)
return add_error(t.source(), "invalid type", use);
- auto access_decos = take_decorations<ast::AccessDecoration>(decos.value);
-
if (!expect_decorations_consumed(decos.value))
return Failure::kErrored;
- if (access_decos.size() > 1)
- return add_error(ident.source, "multiple access decorations not allowed");
-
- auto access =
- access_decos.empty() ? ast::Access::kUndefined : access_decos[0]->value();
-
- return TypedIdentifier{type.value, access, ident.value, ident.source};
+ return TypedIdentifier{type.value, ident.value, ident.source};
}
Expect<ast::Access> ParserImpl::expect_access(const std::string& use) {
@@ -1120,7 +1077,7 @@
return expect_type_decl_matrix(t);
}
- auto texture_or_sampler = texture_sampler_types(decos);
+ auto texture_or_sampler = texture_sampler_types();
if (texture_or_sampler.errored)
return Failure::kErrored;
if (texture_or_sampler.matched)
@@ -2991,16 +2948,6 @@
}
auto s = t.to_str();
- if (s == kAccessDecoration) {
- const char* use = "access decoration";
- return expect_paren_block(use, [&]() -> Result {
- auto val = expect_access("access control");
- if (val.errored)
- return Failure::kErrored;
-
- return create<ast::AccessDecoration>(t.source(), val.value);
- });
- }
if (s == kLocationDecoration) {
const char* use = "location decoration";
@@ -3108,20 +3055,6 @@
});
}
- if (s == kOffsetDecoration) {
- deprecated(t.source(),
- "[[offset]] has been replaced with [[size]] and [[align]]");
-
- const char* use = "offset decoration";
- return expect_paren_block(use, [&]() -> Result {
- auto val = expect_positive_sint(use);
- if (val.errored)
- return Failure::kErrored;
-
- return create<ast::StructMemberOffsetDecoration>(t.source(), val.value);
- });
- }
-
if (s == kSizeDecoration) {
const char* use = "size decoration";
return expect_paren_block(use, [&]() -> Result {
diff --git a/src/reader/wgsl/parser_impl.h b/src/reader/wgsl/parser_impl.h
index 8e6fb0c..adeced4 100644
--- a/src/reader/wgsl/parser_impl.h
+++ b/src/reader/wgsl/parser_impl.h
@@ -208,20 +208,14 @@
TypedIdentifier(const TypedIdentifier& other);
/// Constructor
/// @param type_in parsed type
- /// @param access_in parsed access
/// @param name_in parsed identifier
/// @param source_in source to the identifier
- TypedIdentifier(ast::Type* type_in,
- ast::Access access_in,
- std::string name_in,
- Source source_in);
+ TypedIdentifier(ast::Type* type_in, std::string name_in, Source source_in);
/// Destructor
~TypedIdentifier();
/// Parsed type. May be nullptr for inferred types.
ast::Type* type = nullptr;
- /// The access control. TODO(crbug.com/tint/846): Remove
- ast::Access access = ast::Access::kUndefined;
/// Parsed identifier.
std::string name;
/// Source to the identifier.
@@ -456,10 +450,8 @@
/// @returns the parsed function, nullptr otherwise
Maybe<ast::Function*> function_decl(ast::DecorationList& decos);
/// Parses a `texture_sampler_types` grammar element
- /// TODO(crbug.com/tint/864): Remove decos parameter
- /// @param decos the list of decorations for the type declaration.
/// @returns the parsed Type or nullptr if none matched.
- Maybe<ast::Type*> texture_sampler_types(ast::DecorationList& decos);
+ Maybe<ast::Type*> texture_sampler_types();
/// Parses a `sampler_type` grammar element
/// @returns the parsed Type or nullptr if none matched.
Maybe<ast::Type*> sampler_type();
diff --git a/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc b/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
index d62538e..6add8ee 100644
--- a/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_member_decoration_test.cc
@@ -19,74 +19,6 @@
namespace wgsl {
namespace {
-TEST_F(ParserImplTest, Decoration_Offset) {
- auto p = parser("offset(4)");
- auto deco = p->decoration();
- EXPECT_TRUE(deco.matched);
- EXPECT_FALSE(deco.errored);
- ASSERT_NE(deco.value, nullptr);
- ASSERT_FALSE(p->has_error());
-
- auto* member_deco = deco.value->As<ast::Decoration>();
- ASSERT_NE(member_deco, nullptr);
- ASSERT_TRUE(member_deco->Is<ast::StructMemberOffsetDecoration>());
-
- auto* o = member_deco->As<ast::StructMemberOffsetDecoration>();
- EXPECT_EQ(o->offset(), 4u);
-}
-
-TEST_F(ParserImplTest, Decoration_Offset_MissingLeftParen) {
- auto p = parser("offset 4)");
- auto deco = p->decoration();
- EXPECT_FALSE(deco.matched);
- EXPECT_TRUE(deco.errored);
- EXPECT_EQ(deco.value, nullptr);
- EXPECT_TRUE(p->has_error());
- EXPECT_EQ(
- p->error(),
- R"(1:1: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
-1:8: expected '(' for offset decoration)");
-}
-
-TEST_F(ParserImplTest, Decoration_Offset_MissingRightParen) {
- auto p = parser("offset(4");
- auto deco = p->decoration();
- EXPECT_FALSE(deco.matched);
- EXPECT_TRUE(deco.errored);
- EXPECT_EQ(deco.value, nullptr);
- EXPECT_TRUE(p->has_error());
- EXPECT_EQ(
- p->error(),
- R"(1:1: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
-1:9: expected ')' for offset decoration)");
-}
-
-TEST_F(ParserImplTest, Decoration_Offset_MissingValue) {
- auto p = parser("offset()");
- auto deco = p->decoration();
- EXPECT_FALSE(deco.matched);
- EXPECT_TRUE(deco.errored);
- EXPECT_EQ(deco.value, nullptr);
- EXPECT_TRUE(p->has_error());
- EXPECT_EQ(
- p->error(),
- R"(1:1: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
-1:8: expected signed integer literal for offset decoration)");
-}
-
-TEST_F(ParserImplTest, Decoration_Offset_MissingInvalid) {
- auto p = parser("offset(nan)");
- auto deco = p->decoration();
- EXPECT_FALSE(deco.matched);
- EXPECT_TRUE(deco.errored);
- EXPECT_EQ(deco.value, nullptr);
- EXPECT_TRUE(p->has_error());
- EXPECT_EQ(
- p->error(),
- R"(1:1: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
-1:8: expected signed integer literal for offset decoration)");
-}
-
TEST_F(ParserImplTest, Decoration_Size) {
auto p = parser("size(4)");
auto deco = p->decoration();
diff --git a/src/reader/wgsl/parser_impl_struct_member_test.cc b/src/reader/wgsl/parser_impl_struct_member_test.cc
index cfa3555..2ba2260 100644
--- a/src/reader/wgsl/parser_impl_struct_member_test.cc
+++ b/src/reader/wgsl/parser_impl_struct_member_test.cc
@@ -42,33 +42,6 @@
EXPECT_EQ(m->type()->source().range, (Source::Range{{1u, 5u}, {1u, 8u}}));
}
-TEST_F(ParserImplTest, StructMember_ParsesWithOffsetDecoration_DEPRECATED) {
- auto p = parser("[[offset(2)]] a : i32;");
-
- auto& builder = p->builder();
-
- auto decos = p->decoration_list();
- EXPECT_FALSE(decos.errored);
- EXPECT_TRUE(decos.matched);
- EXPECT_EQ(decos.value.size(), 1u);
-
- auto m = p->expect_struct_member(decos.value);
- ASSERT_FALSE(p->has_error());
- ASSERT_FALSE(m.errored);
- ASSERT_NE(m.value, nullptr);
-
- EXPECT_EQ(m->symbol(), builder.Symbols().Get("a"));
- EXPECT_TRUE(m->type()->Is<ast::I32>());
- EXPECT_EQ(m->decorations().size(), 1u);
- EXPECT_TRUE(m->decorations()[0]->Is<ast::StructMemberOffsetDecoration>());
- EXPECT_EQ(
- m->decorations()[0]->As<ast::StructMemberOffsetDecoration>()->offset(),
- 2u);
-
- EXPECT_EQ(m->source().range, (Source::Range{{1u, 15u}, {1u, 16u}}));
- EXPECT_EQ(m->type()->source().range, (Source::Range{{1u, 19u}, {1u, 22u}}));
-}
-
TEST_F(ParserImplTest, StructMember_ParsesWithAlignDecoration) {
auto p = parser("[[align(2)]] a : i32;");
diff --git a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
index fce5b3c..c006882 100644
--- a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
+++ b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
@@ -12,7 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/ast/access_decoration.h"
#include "src/reader/wgsl/parser_impl_test_helper.h"
#include "src/sem/depth_texture_type.h"
#include "src/sem/multisampled_texture_type.h"
@@ -25,8 +24,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_Invalid) {
auto p = parser("1234");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_FALSE(t.errored);
@@ -35,8 +33,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_Sampler) {
auto p = parser("sampler");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -48,8 +45,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SamplerComparison) {
auto p = parser("sampler_comparison");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -61,8 +57,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_DepthTexture) {
auto p = parser("texture_depth_2d");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -75,8 +70,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32) {
auto p = parser("texture_1d<f32>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -90,8 +84,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_I32) {
auto p = parser("texture_2d<i32>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -105,8 +98,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_U32) {
auto p = parser("texture_3d<u32>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -120,8 +112,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_Invalid) {
auto p = parser("texture_1d<abc>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -131,8 +122,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingType) {
auto p = parser("texture_1d<>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -142,8 +132,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingLessThan) {
auto p = parser("texture_1d");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -153,8 +142,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingGreaterThan) {
auto p = parser("texture_1d<u32");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -164,8 +152,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_MultisampledTexture_I32) {
auto p = parser("texture_multisampled_2d<i32>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -179,8 +166,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_MultisampledTexture_Invalid) {
auto p = parser("texture_multisampled_2d<abc>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -190,8 +176,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_MultisampledTexture_MissingType) {
auto p = parser("texture_multisampled_2d<>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
@@ -202,8 +187,7 @@
TEST_F(ParserImplTest,
TextureSamplerTypes_MultisampledTexture_MissingLessThan) {
auto p = parser("texture_multisampled_2d");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
@@ -213,38 +197,16 @@
TEST_F(ParserImplTest,
TextureSamplerTypes_MultisampledTexture_MissingGreaterThan) {
auto p = parser("texture_multisampled_2d<u32");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
EXPECT_EQ(p->error(), "1:28: expected '>' for multisampled texture type");
}
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- TextureSamplerTypes_StorageTexture_Readonly1dR8Unorm_DEPRECATED) {
- auto p = parser("texture_storage_1d<r8unorm>");
- ast::DecorationList decos{create<ast::AccessDecoration>(ast::Access::kRead)};
- auto t = p->texture_sampler_types(decos);
- ASSERT_FALSE(p->has_error()) << p->error();
- EXPECT_TRUE(t.matched);
- EXPECT_FALSE(t.errored);
- ASSERT_NE(t.value, nullptr);
-
- ASSERT_TRUE(t->Is<ast::Texture>());
- ASSERT_TRUE(t->Is<ast::StorageTexture>());
- EXPECT_EQ(t->As<ast::StorageTexture>()->image_format(),
- ast::ImageFormat::kR8Unorm);
- EXPECT_EQ(t->As<ast::StorageTexture>()->access(), ast::Access::kRead);
- EXPECT_EQ(t->As<ast::Texture>()->dim(), ast::TextureDimension::k1d);
- EXPECT_EQ(t.value->source().range, (Source::Range{{1u, 1u}, {1u, 28u}}));
-}
-
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dR8Unorm) {
auto p = parser("texture_storage_1d<r8unorm, read>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -259,30 +221,9 @@
EXPECT_EQ(t->source().range, (Source::Range{{1u, 1u}, {1u, 34u}}));
}
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- TextureSamplerTypes_StorageTexture_Writeonly2dR16Float_DEPRECATED) {
- auto p = parser("texture_storage_2d<r16float>");
- ast::DecorationList decos{create<ast::AccessDecoration>(ast::Access::kWrite)};
- auto t = p->texture_sampler_types(decos);
- ASSERT_FALSE(p->has_error()) << p->error();
- EXPECT_TRUE(t.matched);
- EXPECT_FALSE(t.errored);
- ASSERT_NE(t.value, nullptr);
-
- ASSERT_TRUE(t->Is<ast::Texture>());
- ASSERT_TRUE(t->Is<ast::StorageTexture>());
- EXPECT_EQ(t->As<ast::StorageTexture>()->image_format(),
- ast::ImageFormat::kR16Float);
- EXPECT_EQ(t->As<ast::StorageTexture>()->access(), ast::Access::kWrite);
- EXPECT_EQ(t->As<ast::Texture>()->dim(), ast::TextureDimension::k2d);
- EXPECT_EQ(t.value->source().range, (Source::Range{{1u, 1u}, {1u, 29u}}));
-}
-
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR16Float) {
auto p = parser("texture_storage_2d<r16float, write>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
@@ -299,8 +240,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidType) {
auto p = parser("texture_storage_1d<abc, read>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
@@ -309,8 +249,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidAccess) {
auto p = parser("texture_storage_1d<r16float, abc>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
@@ -319,8 +258,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingType) {
auto p = parser("texture_storage_1d<>");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
@@ -329,8 +267,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingLessThan) {
auto p = parser("texture_storage_1d");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
@@ -339,8 +276,7 @@
TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingGreaterThan) {
auto p = parser("texture_storage_1d<r8unorm, read");
- ast::DecorationList decos;
- auto t = p->texture_sampler_types(decos);
+ auto t = p->texture_sampler_types();
EXPECT_EQ(t.value, nullptr);
EXPECT_FALSE(t.matched);
EXPECT_TRUE(t.errored);
diff --git a/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc b/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
index af959b4..a063a61 100644
--- a/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_ident_decl_test.cc
@@ -84,168 +84,6 @@
ASSERT_EQ(p->error(), "1:10: unknown type 'invalid'");
}
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- VariableIdentDecl_ParsesWithTextureAccessDeco_Read_DEPRECATED) {
- auto p = parser("my_var : [[access(read)]] texture_storage_1d<r32float>");
-
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_FALSE(p->has_error()) << p->error();
- ASSERT_FALSE(decl.errored);
- ASSERT_EQ(decl->name, "my_var");
- ASSERT_NE(decl->type, nullptr);
- ASSERT_TRUE(decl->type->Is<ast::StorageTexture>());
- EXPECT_TRUE(decl->type->As<ast::StorageTexture>()->is_read_only());
-
- EXPECT_EQ(p->error(),
- "1:54: use of deprecated language feature: access control is "
- "expected as last parameter of storage textures");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- VariableIdentDecl_ParsesWithTextureAccessDeco_Write_DEPRECATED) {
- auto p = parser("my_var : [[access(write)]] texture_storage_1d<r32float>");
-
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_FALSE(p->has_error()) << p->error();
- ASSERT_FALSE(decl.errored);
- ASSERT_EQ(decl->name, "my_var");
- ASSERT_NE(decl->type, nullptr);
- ASSERT_TRUE(decl->type->Is<ast::StorageTexture>());
- EXPECT_TRUE(decl->type->As<ast::StorageTexture>()->is_write_only());
-
- EXPECT_EQ(p->error(),
- "1:55: use of deprecated language feature: access control is "
- "expected as last parameter of storage textures");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest, VariableIdentDecl_ParsesWithAccessDeco_Read_DEPRECATED) {
- auto p = parser("var my_var : [[access(read)]] S;");
-
- auto* mem = Member("a", ty.i32(), ast::DecorationList{});
- ast::StructMemberList members;
- members.push_back(mem);
-
- auto* block_deco = create<ast::StructBlockDecoration>();
- ast::DecorationList decos;
- decos.push_back(block_deco);
-
- auto* s = Structure(Sym("S"), members, decos);
-
- p->register_type("S", s);
-
- auto res = p->expect_global_decl();
- ASSERT_FALSE(res.errored) << p->error();
- ASSERT_NE(p->builder().AST().GlobalVariables().size(), 0u);
- auto* decl = p->builder().AST().GlobalVariables()[0];
- ASSERT_NE(decl, nullptr);
- ASSERT_EQ(decl->symbol(), p->builder().Symbols().Get("my_var"));
- ASSERT_NE(decl->type(), nullptr);
- EXPECT_TRUE(decl->type()->Is<ast::TypeName>());
- EXPECT_EQ(decl->declared_access(), ast::Access::kRead);
-
- EXPECT_EQ(p->error(),
- "1:1: use of deprecated language feature: declare access with "
- "var<none, read> instead of using [[access]] decoration");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- VariableIdentDecl_ParsesWithAccessDeco_ReadWrite_DEPRECATED) {
- auto p = parser("var my_var : [[access(read_write)]] S;");
-
- auto* mem = Member("a", ty.i32(), ast::DecorationList{});
- ast::StructMemberList members;
- members.push_back(mem);
-
- auto* block_deco = create<ast::StructBlockDecoration>();
- ast::DecorationList decos;
- decos.push_back(block_deco);
-
- auto* s = Structure(Sym("S"), members, decos);
-
- p->register_type("S", s);
-
- auto res = p->expect_global_decl();
- ASSERT_FALSE(res.errored) << p->error();
- ASSERT_NE(p->builder().AST().GlobalVariables().size(), 0u);
- auto* decl = p->builder().AST().GlobalVariables()[0];
- ASSERT_NE(decl, nullptr);
- ASSERT_EQ(decl->symbol(), p->builder().Symbols().Get("my_var"));
- ASSERT_NE(decl->type(), nullptr);
- EXPECT_TRUE(decl->type()->Is<ast::TypeName>());
- EXPECT_EQ(decl->declared_access(), ast::Access::kReadWrite);
-
- EXPECT_EQ(p->error(),
- "1:1: use of deprecated language feature: declare access with "
- "var<none, read_write> instead of using [[access]] decoration");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest, VariableIdentDecl_MultipleAccessDecoFail_DEPRECATED) {
- auto p = parser("my_var : [[access(read), access(read_write)]] S");
-
- auto* mem = Member("a", ty.i32(), ast::DecorationList{});
- ast::StructMemberList members;
- members.push_back(mem);
-
- auto* block_deco = create<ast::StructBlockDecoration>();
- ast::DecorationList decos;
- decos.push_back(block_deco);
-
- auto* s = Structure(Sym("S"), members, decos);
-
- p->register_type("S", s);
-
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_TRUE(p->has_error());
- ASSERT_TRUE(decl.errored);
- ASSERT_EQ(p->error(), "1:1: multiple access decorations not allowed");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest,
- VariableIdentDecl_MultipleAccessDeco_MultiBlock_Fail_DEPRECATED) {
- auto p = parser("my_var : [[access(read)]][[access(read_write)]] S");
-
- auto* mem = Member("a", ty.i32(), ast::DecorationList{});
- ast::StructMemberList members;
- members.push_back(mem);
-
- auto* block_deco = create<ast::StructBlockDecoration>();
- ast::DecorationList decos;
- decos.push_back(block_deco);
-
- auto* s = Structure(Sym("S"), members, decos);
-
- p->register_type("S", s);
-
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_TRUE(p->has_error());
- ASSERT_TRUE(decl.errored);
- ASSERT_EQ(p->error(), "1:1: multiple access decorations not allowed");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest, VariableIdentDecl_AccessDecoBadValue_DEPRECATED) {
- auto p = parser("my_var : [[access(unknown)]] S");
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_TRUE(p->has_error());
- ASSERT_TRUE(decl.errored);
- ASSERT_EQ(p->error(), "1:19: invalid value for access control");
-}
-
-// TODO(crbug.com/tint/846): Remove
-TEST_F(ParserImplTest, VariableIdentDecl_AccessDecoIllegalValue_DEPRECATED) {
- auto p = parser("my_var : [[access(1)]] S");
- auto decl = p->expect_variable_ident_decl("test");
- ASSERT_TRUE(p->has_error());
- ASSERT_TRUE(decl.errored);
- ASSERT_EQ(p->error(), "1:19: expected identifier for access control");
-}
-
TEST_F(ParserImplTest, VariableIdentDecl_NonAccessDecoFail) {
auto p = parser("my_var : [[stride(1)]] S");
diff --git a/src/resolver/decoration_validation_test.cc b/src/resolver/decoration_validation_test.cc
index 664bb92..974d1ed 100644
--- a/src/resolver/decoration_validation_test.cc
+++ b/src/resolver/decoration_validation_test.cc
@@ -12,7 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/ast/access_decoration.h"
#include "src/ast/disable_validation_decoration.h"
#include "src/ast/override_decoration.h"
#include "src/ast/return_statement.h"
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index d337fe1..bec3f4b 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -17,7 +17,6 @@
#include <algorithm>
#include <utility>
-#include "src/ast/access_decoration.h"
#include "src/ast/alias.h"
#include "src/ast/array.h"
#include "src/ast/assignment_statement.h"
@@ -243,16 +242,6 @@
for (auto* node : builder_->ASTNodes().Objects()) {
if (marked_.count(node) == 0) {
- if (node->IsAnyOf<ast::AccessDecoration, ast::StrideDecoration>()) {
- // TODO(crbug.com/tint/724) - Remove once tint:724 is complete.
- // ast::AccessDecorations are generated by the WGSL parser, used to
- // build sem::AccessControls and then leaked.
- // ast::StrideDecoration are used to build a sem::Arrays, but
- // multiple arrays of the same stride, size and element type are
- // currently de-duplicated by the type manager, and we leak these
- // decorations.
- continue;
- }
TINT_ICE(diagnostics_) << "AST node '" << node->TypeInfo().name
<< "' was not reached by the resolver\n"
<< "At: " << node->source() << "\n"
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 477a0a4..e2cce2f 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -145,7 +145,6 @@
tint_unittests_source_set("tint_unittests_core_src") {
sources = [
- "../src/ast/access_decoration_test.cc",
"../src/ast/alias_test.cc",
"../src/ast/array_accessor_expression_test.cc",
"../src/ast/array_test.cc",
diff --git a/test/bug/tint/294.wgsl b/test/bug/tint/294.wgsl
index f60b564..8a0f450 100644
--- a/test/bug/tint/294.wgsl
+++ b/test/bug/tint/294.wgsl
@@ -5,4 +5,4 @@
[[block]] struct Lights {
light : [[stride(32)]] array<Light>;
};
-[[set(0), binding(1)]] var<storage> lights : [[access(read)]] Lights;
+[[set(0), binding(1)]] var<storage, read> lights : Lights;
diff --git a/test/bug/tint/294.wgsl.expected.hlsl b/test/bug/tint/294.wgsl.expected.hlsl
index 52d06e8..f4843df 100644
--- a/test/bug/tint/294.wgsl.expected.hlsl
+++ b/test/bug/tint/294.wgsl.expected.hlsl
@@ -1,7 +1,3 @@
-bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var<storage, read> instead of using [[access]] decoration
-[[set(0), binding(1)]] var<storage> lights : [[access(read)]] Lights;
- ^^^
-
[numthreads(1, 1, 1)]
void unused_entry_point() {
return;
diff --git a/test/bug/tint/294.wgsl.expected.msl b/test/bug/tint/294.wgsl.expected.msl
index 047cfdb..224cead 100644
--- a/test/bug/tint/294.wgsl.expected.msl
+++ b/test/bug/tint/294.wgsl.expected.msl
@@ -1,7 +1,3 @@
-bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var<storage, read> instead of using [[access]] decoration
-[[set(0), binding(1)]] var<storage> lights : [[access(read)]] Lights;
- ^^^
-
#include <metal_stdlib>
using namespace metal;
diff --git a/test/bug/tint/294.wgsl.expected.spvasm b/test/bug/tint/294.wgsl.expected.spvasm
index 28f5e64..6450555 100644
--- a/test/bug/tint/294.wgsl.expected.spvasm
+++ b/test/bug/tint/294.wgsl.expected.spvasm
@@ -1,7 +1,3 @@
-bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var<storage, read> instead of using [[access]] decoration
-[[set(0), binding(1)]] var<storage> lights : [[access(read)]] Lights;
- ^^^
-
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
diff --git a/test/bug/tint/294.wgsl.expected.wgsl b/test/bug/tint/294.wgsl.expected.wgsl
index d2a8668..ea5db21 100644
--- a/test/bug/tint/294.wgsl.expected.wgsl
+++ b/test/bug/tint/294.wgsl.expected.wgsl
@@ -1,7 +1,3 @@
-bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var<storage, read> instead of using [[access]] decoration
-[[set(0), binding(1)]] var<storage> lights : [[access(read)]] Lights;
- ^^^
-
struct Light {
position : vec3<f32>;
colour : vec3<f32>;
diff --git a/test/bug/tint/453.wgsl b/test/bug/tint/453.wgsl
index c4be66b..0391a80 100644
--- a/test/bug/tint/453.wgsl
+++ b/test/bug/tint/453.wgsl
@@ -1,5 +1,5 @@
-[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d<r32uint>;
-[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d<r32uint>;
+[[group(0), binding(0)]] var Src : texture_storage_2d<r32uint, read>;
+[[group(0), binding(1)]] var Dst : texture_storage_2d<r32uint, write>;
[[stage(compute)]]
fn main() {
diff --git a/test/bug/tint/453.wgsl.expected.hlsl b/test/bug/tint/453.wgsl.expected.hlsl
index 4e05305..fde2021 100644
--- a/test/bug/tint/453.wgsl.expected.hlsl
+++ b/test/bug/tint/453.wgsl.expected.hlsl
@@ -1,11 +1,3 @@
-bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d<r32uint>;
- ^
-
-bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d<r32uint>;
- ^
-
Texture2D<uint4> Src : register(t0, space0);
RWTexture2D<uint4> Dst : register(u1, space0);
diff --git a/test/bug/tint/453.wgsl.expected.spvasm b/test/bug/tint/453.wgsl.expected.spvasm
index e22df2b..06bba82 100644
--- a/test/bug/tint/453.wgsl.expected.spvasm
+++ b/test/bug/tint/453.wgsl.expected.spvasm
@@ -1,11 +1,3 @@
-bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d<r32uint>;
- ^
-
-bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d<r32uint>;
- ^
-
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
diff --git a/test/bug/tint/453.wgsl.expected.wgsl b/test/bug/tint/453.wgsl.expected.wgsl
index 5a5db6c..f1c4aa3 100644
--- a/test/bug/tint/453.wgsl.expected.wgsl
+++ b/test/bug/tint/453.wgsl.expected.wgsl
@@ -1,11 +1,3 @@
-bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d<r32uint>;
- ^
-
-bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d<r32uint>;
- ^
-
[[group(0), binding(0)]] var Src : texture_storage_2d<r32uint, read>;
[[group(0), binding(1)]] var Dst : texture_storage_2d<r32uint, write>;
diff --git a/test/bug/tint/757.wgsl b/test/bug/tint/757.wgsl
index 68239aa..1c458ca 100644
--- a/test/bug/tint/757.wgsl
+++ b/test/bug/tint/757.wgsl
@@ -1,13 +1,13 @@
[[block]] struct Constants {
- [[offset(0)]] level : i32;
+ level : i32;
};
[[group(0), binding(0)]] var<uniform> constants : Constants;
[[group(0), binding(1)]] var myTexture : texture_2d_array<f32>;
[[block]] struct Result {
- [[offset(0)]] values : [[stride(4)]] array<f32>;
+ values : [[stride(4)]] array<f32>;
};
[[group(0), binding(3)]] var<storage, read_write> result : Result;
diff --git a/test/bug/tint/757.wgsl.expected.hlsl b/test/bug/tint/757.wgsl.expected.hlsl
index 9cbf74f..63d2e80 100644
--- a/test/bug/tint/757.wgsl.expected.hlsl
+++ b/test/bug/tint/757.wgsl.expected.hlsl
@@ -1,11 +1,3 @@
-bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
- [[offset(0)]] level : i32;
- ^^^^^^
-
-bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
- [[offset(0)]] values : [[stride(4)]] array<f32>;
- ^^^^^^
-
struct Constants {
int level;
};
diff --git a/test/bug/tint/757.wgsl.expected.wgsl b/test/bug/tint/757.wgsl.expected.wgsl
index 3fcd2a0..66512bf 100644
--- a/test/bug/tint/757.wgsl.expected.wgsl
+++ b/test/bug/tint/757.wgsl.expected.wgsl
@@ -1,11 +1,3 @@
-bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
- [[offset(0)]] level : i32;
- ^^^^^^
-
-bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]]
- [[offset(0)]] values : [[stride(4)]] array<f32>;
- ^^^^^^
-
[[block]]
struct Constants {
level : i32;
diff --git a/test/bug/tint/827.wgsl b/test/bug/tint/827.wgsl
index f755d8c..b884ad9 100644
--- a/test/bug/tint/827.wgsl
+++ b/test/bug/tint/827.wgsl
@@ -5,7 +5,7 @@
let width : u32 = 128u;
[[group(0), binding(0)]] var tex : texture_depth_2d;
-[[group(0), binding(1)]] var<storage> result : [[access(read_write)]] Result;
+[[group(0), binding(1)]] var<storage, read_write> result : Result;
[[stage(compute)]] fn main(
[[builtin(global_invocation_id)]] GlobalInvocationId : vec3<u32>
diff --git a/test/bug/tint/827.wgsl.expected.hlsl b/test/bug/tint/827.wgsl.expected.hlsl
index 506cc6d..bb53157 100644
--- a/test/bug/tint/827.wgsl.expected.hlsl
+++ b/test/bug/tint/827.wgsl.expected.hlsl
@@ -1,7 +1,3 @@
-bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(1)]] var<storage> result : [[access(read_write)]] Result;
- ^^^
-
static const uint width = 128u;
Texture2D tex : register(t0, space0);
RWByteAddressBuffer result : register(u1, space0);
diff --git a/test/bug/tint/827.wgsl.expected.spvasm b/test/bug/tint/827.wgsl.expected.spvasm
index 315bbc7..4bc890f 100644
--- a/test/bug/tint/827.wgsl.expected.spvasm
+++ b/test/bug/tint/827.wgsl.expected.spvasm
@@ -1,7 +1,3 @@
-bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(1)]] var<storage> result : [[access(read_write)]] Result;
- ^^^
-
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
diff --git a/test/bug/tint/827.wgsl.expected.wgsl b/test/bug/tint/827.wgsl.expected.wgsl
index 89f72ca..f3c0e9f 100644
--- a/test/bug/tint/827.wgsl.expected.wgsl
+++ b/test/bug/tint/827.wgsl.expected.wgsl
@@ -1,7 +1,3 @@
-bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(1)]] var<storage> result : [[access(read_write)]] Result;
- ^^^
-
[[block]]
struct Result {
values : array<f32>;
diff --git a/test/deprecated/access_deco/storage_buffer.wgsl b/test/deprecated/access_deco/storage_buffer.wgsl
deleted file mode 100644
index 3948107..0000000
--- a/test/deprecated/access_deco/storage_buffer.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-
-[[block]]
-struct SB {
- a : f32;
-};
-
-[[group(0), binding(0)]] var<storage> sb : [[access(read_write)]] SB;
-
-[[stage(compute)]]
-fn main() {
- var x : f32 = sb.a;
-}
diff --git a/test/deprecated/access_deco/storage_buffer.wgsl.expected.hlsl b/test/deprecated/access_deco/storage_buffer.wgsl.expected.hlsl
deleted file mode 100644
index d686f81..0000000
--- a/test/deprecated/access_deco/storage_buffer.wgsl.expected.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-deprecated/access_deco/storage_buffer.wgsl:7:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(0)]] var<storage> sb : [[access(read_write)]] SB;
- ^^^
-
-RWByteAddressBuffer sb : register(u0, space0);
-
-[numthreads(1, 1, 1)]
-void main() {
- float x = asfloat(sb.Load(0u));
- return;
-}
diff --git a/test/deprecated/access_deco/storage_buffer.wgsl.expected.msl b/test/deprecated/access_deco/storage_buffer.wgsl.expected.msl
deleted file mode 100644
index 666ca66..0000000
--- a/test/deprecated/access_deco/storage_buffer.wgsl.expected.msl
+++ /dev/null
@@ -1,16 +0,0 @@
-deprecated/access_deco/storage_buffer.wgsl:7:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(0)]] var<storage> sb : [[access(read_write)]] SB;
- ^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct SB {
- /* 0x0000 */ float a;
-};
-
-kernel void tint_symbol(device SB& sb [[buffer(0)]]) {
- float x = sb.a;
- return;
-}
-
diff --git a/test/deprecated/access_deco/storage_buffer.wgsl.expected.spvasm b/test/deprecated/access_deco/storage_buffer.wgsl.expected.spvasm
deleted file mode 100644
index 0736052..0000000
--- a/test/deprecated/access_deco/storage_buffer.wgsl.expected.spvasm
+++ /dev/null
@@ -1,41 +0,0 @@
-deprecated/access_deco/storage_buffer.wgsl:7:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(0)]] var<storage> sb : [[access(read_write)]] SB;
- ^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 17
-; Schema: 0
- OpCapability Shader
- OpMemoryModel Logical GLSL450
- OpEntryPoint GLCompute %main "main"
- OpExecutionMode %main LocalSize 1 1 1
- OpName %SB "SB"
- OpMemberName %SB 0 "a"
- OpName %sb "sb"
- OpName %main "main"
- OpName %x "x"
- OpDecorate %SB Block
- OpMemberDecorate %SB 0 Offset 0
- OpDecorate %sb DescriptorSet 0
- OpDecorate %sb Binding 0
- %float = OpTypeFloat 32
- %SB = OpTypeStruct %float
-%_ptr_StorageBuffer_SB = OpTypePointer StorageBuffer %SB
- %sb = OpVariable %_ptr_StorageBuffer_SB StorageBuffer
- %void = OpTypeVoid
- %5 = OpTypeFunction %void
- %uint = OpTypeInt 32 0
- %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_float = OpTypePointer Function %float
- %16 = OpConstantNull %float
- %main = OpFunction %void None %5
- %8 = OpLabel
- %x = OpVariable %_ptr_Function_float Function %16
- %12 = OpAccessChain %_ptr_StorageBuffer_float %sb %uint_0
- %13 = OpLoad %float %12
- OpStore %x %13
- OpReturn
- OpFunctionEnd
diff --git a/test/deprecated/access_deco/storage_buffer.wgsl.expected.wgsl b/test/deprecated/access_deco/storage_buffer.wgsl.expected.wgsl
deleted file mode 100644
index 4e23308..0000000
--- a/test/deprecated/access_deco/storage_buffer.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-deprecated/access_deco/storage_buffer.wgsl:7:26 warning: use of deprecated language feature: declare access with var<storage, read_write> instead of using [[access]] decoration
-[[group(0), binding(0)]] var<storage> sb : [[access(read_write)]] SB;
- ^^^
-
-[[block]]
-struct SB {
- a : f32;
-};
-
-[[group(0), binding(0)]] var<storage, read_write> sb : SB;
-
-[[stage(compute)]]
-fn main() {
- var x : f32 = sb.a;
-}
diff --git a/test/deprecated/access_deco/storage_texture.wgsl b/test/deprecated/access_deco/storage_texture.wgsl
deleted file mode 100644
index 17cd7fd..0000000
--- a/test/deprecated/access_deco/storage_texture.wgsl
+++ /dev/null
@@ -1,6 +0,0 @@
-[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
-
-[[stage(compute)]]
-fn main() {
- var x : vec2<i32> = textureDimensions(tex);
-}
diff --git a/test/deprecated/access_deco/storage_texture.wgsl.expected.hlsl b/test/deprecated/access_deco/storage_texture.wgsl.expected.hlsl
deleted file mode 100644
index 24bb410..0000000
--- a/test/deprecated/access_deco/storage_texture.wgsl.expected.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-deprecated/access_deco/storage_texture.wgsl:1:84 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
- ^
-
-RWTexture2D<float4> tex : register(u0, space0);
-
-[numthreads(1, 1, 1)]
-void main() {
- int2 tint_tmp;
- tex.GetDimensions(tint_tmp.x, tint_tmp.y);
- int2 x = tint_tmp;
- return;
-}
diff --git a/test/deprecated/access_deco/storage_texture.wgsl.expected.msl b/test/deprecated/access_deco/storage_texture.wgsl.expected.msl
deleted file mode 100644
index acf4fbb..0000000
--- a/test/deprecated/access_deco/storage_texture.wgsl.expected.msl
+++ /dev/null
@@ -1,12 +0,0 @@
-deprecated/access_deco/storage_texture.wgsl:1:84 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
- ^
-
-#include <metal_stdlib>
-
-using namespace metal;
-kernel void tint_symbol(texture2d<float, access::write> tint_symbol_1 [[texture(0)]]) {
- int2 x = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
- return;
-}
-
diff --git a/test/deprecated/access_deco/storage_texture.wgsl.expected.spvasm b/test/deprecated/access_deco/storage_texture.wgsl.expected.spvasm
deleted file mode 100644
index 03c770e..0000000
--- a/test/deprecated/access_deco/storage_texture.wgsl.expected.spvasm
+++ /dev/null
@@ -1,38 +0,0 @@
-deprecated/access_deco/storage_texture.wgsl:1:84 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
- ^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 16
-; Schema: 0
- OpCapability Shader
- OpCapability ImageQuery
- OpMemoryModel Logical GLSL450
- OpEntryPoint GLCompute %main "main"
- OpExecutionMode %main LocalSize 1 1 1
- OpName %tex "tex"
- OpName %main "main"
- OpName %x "x"
- OpDecorate %tex NonReadable
- OpDecorate %tex DescriptorSet 0
- OpDecorate %tex Binding 0
- %float = OpTypeFloat 32
- %3 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
- %tex = OpVariable %_ptr_UniformConstant_3 UniformConstant
- %void = OpTypeVoid
- %5 = OpTypeFunction %void
- %int = OpTypeInt 32 1
- %v2int = OpTypeVector %int 2
-%_ptr_Function_v2int = OpTypePointer Function %v2int
- %15 = OpConstantNull %v2int
- %main = OpFunction %void None %5
- %8 = OpLabel
- %x = OpVariable %_ptr_Function_v2int Function %15
- %12 = OpLoad %3 %tex
- %9 = OpImageQuerySize %v2int %12
- OpStore %x %9
- OpReturn
- OpFunctionEnd
diff --git a/test/deprecated/access_deco/storage_texture.wgsl.expected.wgsl b/test/deprecated/access_deco/storage_texture.wgsl.expected.wgsl
deleted file mode 100644
index b7a6aec..0000000
--- a/test/deprecated/access_deco/storage_texture.wgsl.expected.wgsl
+++ /dev/null
@@ -1,10 +0,0 @@
-deprecated/access_deco/storage_texture.wgsl:1:84 warning: use of deprecated language feature: access control is expected as last parameter of storage textures
-[[group(0), binding(0)]] var tex : [[access(write)]] texture_storage_2d<rgba32float>;
- ^
-
-[[group(0), binding(0)]] var tex : texture_storage_2d<rgba32float, write>;
-
-[[stage(compute)]]
-fn main() {
- var x : vec2<i32> = textureDimensions(tex);
-}