[fidlgen_dart] Use TypeShapeV1 and FieldShapeV1 fields

Bug: 42311

This CL removes usages of old wire format fields from the
IR in preparation for removing them.

Change-Id: I987673a08e74e7c78f2e737bd8d58a55e816aae9
diff --git a/bin/dart_fidl_json/json.fidlmerge b/bin/dart_fidl_json/json.fidlmerge
index 3b4428d..7f958c9 100644
--- a/bin/dart_fidl_json/json.fidlmerge
+++ b/bin/dart_fidl_json/json.fidlmerge
@@ -196,7 +196,7 @@
 
 {{- define "TableConverterDecls" }}
   {{- range .Tables }}
-{{- if eq .MaxHandles 0 }}
+{{- if eq .TypeShapeV1.MaxHandles 0 }}
 {{ $type := execTmpl "TypeTemplate" .Name }}
 {{ $className := (execTmpl "CvtClassTemplate" .Name) }}
 class {{ $className}} {
@@ -237,7 +237,7 @@
 
 {{- define "StructConverterDecls" }}
   {{- range .Structs }}
-{{- if eq .MaxHandles 0 }}
+{{- if eq .TypeShapeV1.MaxHandles 0 }}
 {{ $type := execTmpl "TypeTemplate" .Name }}
 {{ $className := (execTmpl "CvtClassTemplate" .Name) }}
 class {{ $className }} {
@@ -274,7 +274,7 @@
 
 {{- define "UnionConverterDecls" -}}
   {{- range . -}}
-{{- if eq .MaxHandles 0 }}
+{{- if eq .TypeShapeV1.MaxHandles 0 }}
 {{- $type := execTmpl "TypeTemplate" .Name }}
 {{- $typeKey := "type" }}
 {{- $valueKey := "value" }}
@@ -321,7 +321,7 @@
 
 {{- define "XUnionConverterDecls" -}}
   {{- range . -}}
-{{- if eq .MaxHandles 0 }}
+{{- if eq .TypeShapeV1.MaxHandles 0 }}
 {{- $type := execTmpl "TypeTemplate" .Name }}
 {{- $typeKey := "type" }}
 {{- $valueKey := "value" }}
diff --git a/bin/fidlgen_dart/backend/ir/ir.go b/bin/fidlgen_dart/backend/ir/ir.go
index a16df1e..811526c 100644
--- a/bin/fidlgen_dart/backend/ir/ir.go
+++ b/bin/fidlgen_dart/backend/ir/ir.go
@@ -831,7 +831,7 @@
 	return b
 }
 
-func (c *compiler) compileParameter(paramName types.Identifier, paramType types.Type, offsetOld, offsetV1 int) Parameter {
+func (c *compiler) compileParameter(paramName types.Identifier, paramType types.Type, offsetV1 int) Parameter {
 	var (
 		t         = c.compileType(paramType)
 		typeStr   = fmt.Sprintf("type: %s", t.typeExpr)
@@ -856,7 +856,7 @@
 func (c *compiler) compileParameterArray(val []types.Parameter) []Parameter {
 	r := []Parameter{}
 	for _, v := range val {
-		r = append(r, c.compileParameter(v.Name, v.Type, v.FieldShapeOld.Offset, v.FieldShapeV1.Offset))
+		r = append(r, c.compileParameter(v.Name, v.Type, v.FieldShapeV1.Offset))
 	}
 	return r
 }
@@ -913,7 +913,7 @@
 
 	// Turn the struct into a parameter array that will be used for function arguments.
 	for _, v := range valueStruct.Members {
-		parameters = append(parameters, c.compileParameter(v.Name, v.Type, v.FieldShapeOld.Offset, v.FieldShapeV1.Offset))
+		parameters = append(parameters, c.compileParameter(v.Name, v.Type, v.FieldShapeV1.Offset))
 	}
 
 	return MethodResponse{
diff --git a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
index 417a64d..243037f 100644
--- a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
@@ -8,13 +8,74 @@
     }
   ],
   "library_dependencies": [],
-  "bits_declarations": [],
+  "bits_declarations": [
+    {
+      "name": "test.name/MyBits",
+      "location": {
+        "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+        "line": 10,
+        "column": 6
+      },
+      "maybe_attributes": [
+        {
+          "name": "Doc",
+          "value": " bits comment #1\n\n bits comment #2\n"
+        }
+      ],
+      "type": {
+        "kind": "primitive",
+        "subtype": "uint32"
+      },
+      "mask": "3",
+      "members": [
+        {
+          "name": "MY_FIRST_BIT",
+          "location": {
+            "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+            "line": 14,
+            "column": 5
+          },
+          "value": {
+            "kind": "literal",
+            "literal": {
+              "kind": "numeric",
+              "value": "1",
+              "expression": "1"
+            }
+          },
+          "maybe_attributes": [
+            {
+              "name": "Doc",
+              "value": " bits member comment #1\n\n bits member comment #3\n"
+            }
+          ]
+        },
+        {
+          "name": "MY_OTHER_BIT",
+          "location": {
+            "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+            "line": 15,
+            "column": 5
+          },
+          "value": {
+            "kind": "literal",
+            "literal": {
+              "kind": "numeric",
+              "value": "2",
+              "expression": "2"
+            }
+          }
+        }
+      ],
+      "strict": true
+    }
+  ],
   "const_declarations": [
     {
       "name": "test.name/C",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 9,
+        "line": 22,
         "column": 13
       },
       "maybe_attributes": [
@@ -37,13 +98,70 @@
       }
     }
   ],
-  "enum_declarations": [],
+  "enum_declarations": [
+    {
+      "name": "test.name/MyEnum",
+      "location": {
+        "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+        "line": 28,
+        "column": 6
+      },
+      "maybe_attributes": [
+        {
+          "name": "Doc",
+          "value": " enum comment #1.\n\n enum comment #2.\n"
+        }
+      ],
+      "type": "uint32",
+      "members": [
+        {
+          "name": "FOO",
+          "location": {
+            "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+            "line": 30,
+            "column": 5
+          },
+          "value": {
+            "kind": "literal",
+            "literal": {
+              "kind": "numeric",
+              "value": "1",
+              "expression": "1"
+            }
+          },
+          "maybe_attributes": [
+            {
+              "name": "Doc",
+              "value": " enum Member comment 1.\n"
+            }
+          ]
+        },
+        {
+          "name": "BAR",
+          "location": {
+            "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
+            "line": 32,
+            "column": 5
+          },
+          "value": {
+            "kind": "literal",
+            "literal": {
+              "kind": "numeric",
+              "value": "2",
+              "expression": "2"
+            }
+          }
+        }
+      ],
+      "strict": true
+    }
+  ],
   "interface_declarations": [
     {
       "name": "test.name/Interface",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 44,
+        "line": 68,
         "column": 10
       },
       "maybe_attributes": [
@@ -59,7 +177,7 @@
           "name": "Method",
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 48,
+            "line": 72,
             "column": 5
           },
           "has_request": true,
@@ -113,7 +231,7 @@
           "name": "OnEvent",
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 53,
+            "line": 77,
             "column": 8
           },
           "has_request": false,
@@ -169,7 +287,7 @@
       "name": "test.name/Service",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 59,
+        "line": 83,
         "column": 9
       },
       "maybe_attributes": [
@@ -188,7 +306,7 @@
           "name": "interface",
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 63,
+            "line": 87,
             "column": 15
           },
           "maybe_attributes": [
@@ -206,7 +324,7 @@
       "name": "test.name/Struct",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 14,
+        "line": 38,
         "column": 8
       },
       "anonymous": false,
@@ -225,7 +343,7 @@
           "name": "Field",
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 18,
+            "line": 42,
             "column": 11
           },
           "maybe_attributes": [
@@ -295,7 +413,7 @@
       "name": "test.name/Table",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 34,
+        "line": 58,
         "column": 7
       },
       "maybe_attributes": [
@@ -315,7 +433,7 @@
           "name": "Field",
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 38,
+            "line": 62,
             "column": 14
           },
           "maybe_attributes": [
@@ -372,7 +490,7 @@
       "name": "test.name/Union",
       "location": {
         "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-        "line": 24,
+        "line": 48,
         "column": 7
       },
       "maybe_attributes": [
@@ -392,7 +510,7 @@
           },
           "location": {
             "filename": "garnet/go/src/fidl/compiler/backend/typestest/doc_comments.test.fidl",
-            "line": 28,
+            "line": 52,
             "column": 14
           },
           "maybe_attributes": [
@@ -451,10 +569,14 @@
     "test.name/Struct",
     "test.name/Interface",
     "test.name/Service",
+    "test.name/MyEnum",
+    "test.name/MyBits",
     "test.name/C"
   ],
   "declarations": {
+    "test.name/MyBits": "bits",
     "test.name/C": "const",
+    "test.name/MyEnum": "enum",
     "test.name/Interface": "interface",
     "test.name/Service": "service",
     "test.name/Struct": "struct",
diff --git a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
index b312d7f..37d1883 100644
--- a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json_async.dart.golden
@@ -41,6 +41,112 @@
 /// const comment #3
 const int c = 0x4;
 
+/// enum comment #1.
+///
+/// enum comment #2.
+class MyEnum extends $fidl.Enum {
+  factory MyEnum(int _v) {
+    switch (_v) {
+      case 0x1:
+        return foo;
+      case 0x2:
+        return bar;
+      default:
+        return null;
+    }
+  }
+
+  /// enum Member comment 1.
+  static const MyEnum foo = MyEnum._(0x1);
+  static const MyEnum bar = MyEnum._(0x2);
+
+  const MyEnum._(this.$value);
+
+  @override
+  final int $value;
+
+  static const Map<String, MyEnum> $valuesMap = {
+    r'foo': foo,
+    r'bar': bar,
+  };
+
+  static const List<MyEnum> $values = [
+    foo,
+    bar,
+  ];
+
+  // TODO: remove, see: FIDL-587
+  static const List<MyEnum> values = MyEnum.$values;
+
+  static MyEnum $valueOf(String name) => $valuesMap[name];
+
+  @override
+  String toString() {
+    switch ($value) {
+      case 0x1:
+        return r'MyEnum.foo';
+      case 0x2:
+        return r'MyEnum.bar';
+      default:
+        return null;
+    }
+  }
+
+  static MyEnum _ctor(int v) => MyEnum(v);
+}
+
+const $fidl.EnumType<MyEnum> kMyEnum_Type =
+    $fidl.EnumType<MyEnum>(type: $fidl.Uint32Type(), ctor: MyEnum._ctor);
+
+/// bits comment #1
+///
+/// bits comment #2
+class MyBits extends $fidl.Bits {
+  /// bits member comment #1
+  ///
+  /// bits member comment #3
+  static const MyBits myFirstBit = MyBits._(0x1);
+  static const MyBits myOtherBit = MyBits._(0x2);
+  static const MyBits $none = MyBits._(0);
+
+  const MyBits._(this.$value);
+
+  MyBits operator |(MyBits other) {
+    return MyBits._($value | other.$value);
+  }
+
+  MyBits operator &(MyBits other) {
+    return MyBits._($value & other.$value);
+  }
+
+  @override
+  final int $value;
+
+  @override
+  String toString() {
+    if ($value == null) {
+      return null;
+    }
+    List<String> parts = [];
+    if ($value & 0x1 != 0) {
+      parts.add(r'MyBits.myFirstBit');
+    }
+    if ($value & 0x2 != 0) {
+      parts.add(r'MyBits.myOtherBit');
+    }
+    if (parts.isEmpty) {
+      return r'MyBits.$none';
+    } else {
+      return parts.join(" | ");
+    }
+  }
+
+  static MyBits _ctor(int v) => MyBits._(v);
+}
+
+const $fidl.BitsType<MyBits> kMyBits_Type =
+    $fidl.BitsType<MyBits>(type: $fidl.Uint32Type(), ctor: MyBits._ctor);
+
 enum UnionTag {
   field, // 0x1
 }