Fix generation of proc table

There was an error in a CL that added new procs.
https://ci.chromium.org/ui/p/chromium/builders/try/dawn-try-linux-tsan-rel/177/overview
The addition of new procs exceeded the nested parenthesis limit.

Fix it by not using nested expressions to generate the proc table.

Change-Id: I21b3d8977bfbd2f910a3600e16a47d06e722814e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/180880
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/generator/templates/dawn/native/ProcTable.cpp b/generator/templates/dawn/native/ProcTable.cpp
index c3ac507..dcc7370 100644
--- a/generator/templates/dawn/native/ProcTable.cpp
+++ b/generator/templates/dawn/native/ProcTable.cpp
@@ -192,27 +192,20 @@
         return result;
     }
 
-
-    template <typename... MemberPtrPairs>
-    constexpr {{Prefix}}ProcTable MakeProcTable(int, MemberPtrPairs... pairs) {
+    constexpr {{Prefix}}ProcTable MakeProcTable() {
         {{Prefix}}ProcTable procs = {};
-        ([&](auto& pair){
-            procs.*(pair.first) = pair.second;
-        }(pairs), ...);
-        return procs;
-    }
-
-    static {{Prefix}}ProcTable gProcTable = MakeProcTable(
-        /* unused */ 0
         {% for function in by_category["function"] %}
-            , std::make_pair(&{{Prefix}}ProcTable::{{as_varName(function.name)}}, Native{{as_cppType(function.name)}})
+            procs.{{as_varName(function.name)}} = Native{{as_cppType(function.name)}};
         {% endfor %}
         {% for type in by_category["object"] %}
             {% for method in c_methods(type) %}
-                , std::make_pair(&{{Prefix}}ProcTable::{{as_varName(type.name, method.name)}}, Native{{as_MethodSuffix(type.name, method.name)}})
+                procs.{{as_varName(type.name, method.name)}} = Native{{as_MethodSuffix(type.name, method.name)}};
             {% endfor %}
         {% endfor %}
-    );
+        return procs;
+    }
+
+    static {{Prefix}}ProcTable gProcTable = MakeProcTable();
 
     const {{Prefix}}ProcTable& GetProcsAutogen() {
         return gProcTable;
diff --git a/generator/templates/dawn/wire/client/ApiProcs.cpp b/generator/templates/dawn/wire/client/ApiProcs.cpp
index 3830d73..e4d1dd7 100644
--- a/generator/templates/dawn/wire/client/ApiProcs.cpp
+++ b/generator/templates/dawn/wire/client/ApiProcs.cpp
@@ -180,26 +180,20 @@
 
     {% set Prefix = metadata.proc_table_prefix %}
 
-    template <typename... MemberPtrPairs>
-    constexpr {{Prefix}}ProcTable MakeProcTable(int, MemberPtrPairs... pairs) {
+    constexpr {{Prefix}}ProcTable MakeProcTable() {
         {{Prefix}}ProcTable procs = {};
-        ([&](auto& pair){
-            procs.*(pair.first) = pair.second;
-        }(pairs), ...);
-        return procs;
-    }
-
-    static {{Prefix}}ProcTable gProcTable = MakeProcTable(
-        /* unused */ 0
         {% for function in by_category["function"] %}
-            , std::make_pair(&{{Prefix}}ProcTable::{{as_varName(function.name)}}, Client{{as_cppType(function.name)}})
+            procs.{{as_varName(function.name)}} = Client{{as_cppType(function.name)}};
         {% endfor %}
         {% for type in by_category["object"] %}
             {% for method in c_methods(type) %}
-                , std::make_pair(&{{Prefix}}ProcTable::{{as_varName(type.name, method.name)}}, Client{{as_MethodSuffix(type.name, method.name)}})
+                procs.{{as_varName(type.name, method.name)}} = Client{{as_MethodSuffix(type.name, method.name)}};
             {% endfor %}
         {% endfor %}
-    );
+        return procs;
+    }
+
+    static {{Prefix}}ProcTable gProcTable = MakeProcTable();
 
     const {{Prefix}}ProcTable& GetProcs() {
         return gProcTable;