Use the correct C structure when converting 'out' extensible structures.

Change-Id: Ie0c9386c933253a47bf38d042c93a7cc520cea84
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/216714
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Jim Blackler <jimblackler@google.com>
Commit-Queue: Jim Blackler <jimblackler@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/generator/templates/art/structures.cpp b/generator/templates/art/structures.cpp
index 2848018..3aa57b9 100644
--- a/generator/templates/art/structures.cpp
+++ b/generator/templates/art/structures.cpp
@@ -139,9 +139,10 @@
         {%- for structure in chain_children[structure.name.get()] %}
             jobject {{ structure.name.camelCase() }} = nullptr;
         {% endfor %}
+        {% set ChainedStruct = "WGPUChainedStructOut" if structure.extensible == "out" else "WGPUChainedStruct" %}
         //* Walk the chain to find and convert (recursively) all child structures.
         {%- if chain_children[structure.name.get()] %}
-            for (const WGPUChainedStruct* child = input->nextInChain;
+            for (const {{ChainedStruct}}* child = input->nextInChain;
                     child != nullptr; child = child->next) {
                 switch (child->sType) {
                     {% for structure in chain_children[structure.name.get()] %}