[wgsl-writer] Use EmitDecorations() for function parameters

Removes some duplicated code.

Change-Id: I05120e5f443810e54babb842f0f993e4e0a7da79
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/44603
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/writer/wgsl/generator_impl.cc b/src/writer/wgsl/generator_impl.cc
index 273f934..814dbf2 100644
--- a/src/writer/wgsl/generator_impl.cc
+++ b/src/writer/wgsl/generator_impl.cc
@@ -309,15 +309,11 @@
     }
     first = false;
 
-    for (auto* deco : v->decorations()) {
-      out_ << "[[";
-      if (auto* builtin = deco->As<ast::BuiltinDecoration>()) {
-        out_ << "builtin(" << builtin->value() << ")";
+    if (!v->decorations().empty()) {
+      if (!EmitDecorations(v->decorations())) {
+        return false;
       }
-      if (auto* location = deco->As<ast::LocationDecoration>()) {
-        out_ << "location(" << location->value() << ")";
-      }
-      out_ << "]] ";
+      out_ << " ";
     }
 
     out_ << program_->Symbols().NameFor(v->symbol()) << " : ";