Resolver: Move logic ValidateFunction() -> Function()

I inserted this non-validation code in the wrong method.

Change-Id: I43f6d8a0cbf6f0b5f20e453785b141b50d159044
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/46442
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index 3d11a23..ae04b15 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -248,15 +248,6 @@
   }
 
   for (auto* param : func->params()) {
-    if (!ApplyStorageClassUsageToType(param->declared_storage_class(),
-                                      param->declared_type(),
-                                      param->source())) {
-      diagnostics_.add_note("while instantiating parameter " +
-                                builder_->Symbols().NameFor(param->symbol()),
-                            param->source());
-      return false;
-    }
-
     if (!ValidateParameter(param)) {
       return false;
     }
@@ -294,6 +285,15 @@
   for (auto* param : func->params()) {
     variable_stack_.set(param->symbol(), CreateVariableInfo(param));
 
+    if (!ApplyStorageClassUsageToType(param->declared_storage_class(),
+                                      param->declared_type(),
+                                      param->source())) {
+      diagnostics_.add_note("while instantiating parameter " +
+                                builder_->Symbols().NameFor(param->symbol()),
+                            param->source());
+      return false;
+    }
+
     if (auto* str =
             param->declared_type()->UnwrapAliasIfNeeded()->As<type::Struct>()) {
       auto* info = Structure(str);