[tint] Require names for @const parameters

This ensures that error messages for @const parameters are useful.

Fixed: 476461188
Change-Id: I5193ef715bee9087c5309734d05119cab5b9d7e2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/285617
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/tools/src/tint/intrinsic/resolver/resolve.go b/tools/src/tint/intrinsic/resolver/resolve.go
index 21ad9c7..3b0e22b 100644
--- a/tools/src/tint/intrinsic/resolver/resolve.go
+++ b/tools/src/tint/intrinsic/resolver/resolve.go
@@ -447,6 +447,9 @@
 		isConst := false
 		if attribute := p.Attributes.Take("const"); attribute != nil {
 			isConst = true
+			if p.Name == "" {
+				return fmt.Errorf("%v @const parameters must be named", p.Source)
+			}
 		}
 		testValue := 1.0
 		if attribute := p.Attributes.Take("test_value"); attribute != nil {
diff --git a/tools/src/tint/intrinsic/resolver/resolver_test.go b/tools/src/tint/intrinsic/resolver/resolver_test.go
index f6b8e92..5dca4e0 100644
--- a/tools/src/tint/intrinsic/resolver/resolver_test.go
+++ b/tools/src/tint/intrinsic/resolver/resolver_test.go
@@ -577,6 +577,11 @@
 implicit(T) fn f<T>()`,
 			`file.txt:1:18 'T' already declared
 First declared here: file.txt:1:10`,
+		}, {
+			`
+type bool
+fn f(@const bool)`,
+			`file.txt:2:13 @const parameters must be named`,
 		},
 	} {