Add unit test to check LHS is not an intrinsic function name

Identifiers cannot be assigned.

Bug: tint:203
Change-Id: Ibe34749264024b690d8a8bd271304f425a2688ed
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54080
Reviewed-by: Sarah Mashayekhi <sarahmashay@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Auto-Submit: Sarah Mashayekhi <sarahmashay@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Sarah Mashayekhi <sarahmashay@google.com>
diff --git a/src/reader/wgsl/parser_impl_error_msg_test.cc b/src/reader/wgsl/parser_impl_error_msg_test.cc
index e1e8a97..1e65e63 100644
--- a/src/reader/wgsl/parser_impl_error_msg_test.cc
+++ b/src/reader/wgsl/parser_impl_error_msg_test.cc
@@ -86,6 +86,13 @@
          "               ^\n");
 }
 
+TEST_F(ParserImplErrorTest, AssignmentStmtInvalidLHS_IntrinsicFunctionName) {
+  EXPECT("normalize = 5;",
+         "test.wgsl:1:1 error: statement found outside of function body\n"
+         "normalize = 5;\n"
+         "^^^^^^^^^\n");
+}
+
 TEST_F(ParserImplErrorTest, AssignmentStmtInvalidRHS) {
   EXPECT("fn f() { a = >; }",
          "test.wgsl:1:14 error: unable to parse right side of assignment\n"
diff --git a/src/resolver/validation_test.cc b/src/resolver/validation_test.cc
index aa53bce..25ce629 100644
--- a/src/resolver/validation_test.cc
+++ b/src/resolver/validation_test.cc
@@ -141,6 +141,19 @@
   EXPECT_EQ(r()->error(), "3:8 error: missing '(' for intrinsic call");
 }
 
+TEST_F(ResolverValidationTest,
+       AssignmentStmt_InvalidLHS_IntrinsicFunctionName) {
+  // normalize = 2;
+
+  auto* lhs = Expr(Source{{12, 34}}, "normalize");
+  auto* rhs = Expr(2);
+  auto* assign = Assign(lhs, rhs);
+  WrapInFunction(assign);
+
+  EXPECT_FALSE(r()->Resolve());
+  EXPECT_EQ(r()->error(), "12:34 error: missing '(' for intrinsic call");
+}
+
 TEST_F(ResolverValidationTest, UsingUndefinedVariable_Fail) {
   // b = 2;