Revert "Remove support for the set decoration."

This reverts commit 67beed1b94b148c72b74f703b0d5d3d4b9331c09.

Reason for revert: CTS Roll happened just before this fix landed in CTS.

Original change's description:
> Remove support for the set decoration.
>
> This CL removes the set decoration support, it has been replaced by the
> group decoration.
>
> Change-Id: Ib9ca94872d39e5da9dbe18bba3cae6d64320e55d
> Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/38824
> Auto-Submit: dan sinclair <dsinclair@chromium.org>
> Reviewed-by: Ben Clayton <bclayton@google.com>
> Commit-Queue: dan sinclair <dsinclair@chromium.org>

TBR=dneto@google.com,dsinclair@chromium.org,bclayton@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I89dec6d2663e18ac8e15ae3c7a5ffb443591f6b9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/39360
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc
index 89a33c2..8fc397b 100644
--- a/src/reader/wgsl/parser_impl.cc
+++ b/src/reader/wgsl/parser_impl.cc
@@ -137,6 +137,7 @@
 const char kGroupDecoration[] = "group";
 const char kLocationDecoration[] = "location";
 const char kOffsetDecoration[] = "offset";
+const char kSetDecoration[] = "set";
 const char kStageDecoration[] = "stage";
 const char kStrideDecoration[] = "stride";
 const char kWorkgroupSizeDecoration[] = "workgroup_size";
@@ -149,8 +150,9 @@
   return s == kAccessDecoration || s == kBindingDecoration ||
          s == kBlockDecoration || s == kBuiltinDecoration ||
          s == kLocationDecoration || s == kOffsetDecoration ||
-         s == kGroupDecoration || s == kStageDecoration ||
-         s == kStrideDecoration || s == kWorkgroupSizeDecoration;
+         s == kSetDecoration || s == kGroupDecoration ||
+         s == kStageDecoration || s == kStrideDecoration ||
+         s == kWorkgroupSizeDecoration;
 }
 
 /// Enter-exit counters for block token types.
@@ -2851,7 +2853,7 @@
     });
   }
 
-  if (s == kGroupDecoration) {
+  if (s == kSetDecoration || s == kGroupDecoration) {
     const char* use = "group decoration";
     return expect_paren_block(use, [&]() -> Result {
       auto val = expect_positive_sint(use);
diff --git a/src/reader/wgsl/parser_impl_variable_decoration_test.cc b/src/reader/wgsl/parser_impl_variable_decoration_test.cc
index 128ec8a..9cf65ab 100644
--- a/src/reader/wgsl/parser_impl_variable_decoration_test.cc
+++ b/src/reader/wgsl/parser_impl_variable_decoration_test.cc
@@ -236,6 +236,22 @@
             "1:9: expected signed integer literal for binding decoration");
 }
 
+// DEPRECATED
+TEST_F(ParserImplTest, VariableDecoration_set) {
+  auto p = parser("set(4)");
+  auto deco = p->decoration();
+  EXPECT_TRUE(deco.matched);
+  EXPECT_FALSE(deco.errored);
+  ASSERT_NE(deco.value, nullptr);
+  auto* var_deco = deco.value->As<ast::VariableDecoration>();
+  ASSERT_FALSE(p->has_error());
+  ASSERT_NE(var_deco, nullptr);
+  ASSERT_TRUE(var_deco->Is<ast::GroupDecoration>());
+
+  auto* group = var_deco->As<ast::GroupDecoration>();
+  EXPECT_EQ(group->value(), 4u);
+}
+
 TEST_F(ParserImplTest, VariableDecoration_group) {
   auto p = parser("group(4)");
   auto deco = p->decoration();