[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
}