[fidlc] 32 to 64 bits Ordinals: Step #4
This is a mechanical re-gen of the goldens now that fidlc shifts
ord << 32 (gen was already shifted in step 2). No impact on generated
code.
Multiple unrelated changes are being pulled in because topaz goldens get
regenerated less frequently.
FIDL-524 #comment
Change-Id: Id867e3bd48e328f9bac14c861fef0ef3e48daacc
diff --git a/bin/fidlgen_dart/goldens/bits.test.test.fidl.json b/bin/fidlgen_dart/goldens/bits.test.test.fidl.json
index bde9ce8..3a69e93 100644
--- a/bin/fidlgen_dart/goldens/bits.test.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/bits.test.test.fidl.json
@@ -48,7 +48,8 @@
}
}
}
- ]
+ ],
+ "strict": false
}
],
"const_declarations": [],
diff --git a/bin/fidlgen_dart/goldens/consts.test.fidl.json b/bin/fidlgen_dart/goldens/consts.test.fidl.json
index 4305aef..8497d51 100644
--- a/bin/fidlgen_dart/goldens/consts.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/consts.test.fidl.json
@@ -297,7 +297,8 @@
}
}
}
- ]
+ ],
+ "strict": false
},
{
"name": "test.name/BitsType",
@@ -324,7 +325,8 @@
}
}
}
- ]
+ ],
+ "strict": false
}
],
"interface_declarations": [],
diff --git a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
index 702286d..5fa3173 100644
--- a/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/doc_comments.test.fidl.json
@@ -1,6 +1,12 @@
{
"version": "0.0.1",
"name": "test.name",
+ "maybe_attributes": [
+ {
+ "name": "Doc",
+ "value": " library comment #1\n\n library comment #2\n"
+ }
+ ],
"library_dependencies": [],
"bits_declarations": [],
"const_declarations": [
@@ -48,7 +54,7 @@
],
"methods": [
{
- "ordinal": 1061382220,
+ "ordinal": 4558601923455877120,
"generated_ordinal": 4558601923455877120,
"name": "Method",
"location": {
@@ -67,11 +73,12 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 325918733,
+ "ordinal": 1399810299388755968,
"generated_ordinal": 1399810299388755968,
"name": "OnEvent",
"location": {
@@ -91,6 +98,7 @@
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
@@ -187,7 +195,8 @@
"size": 16,
"max_out_of_line": 24,
"alignment": 8,
- "max_handles": 0
+ "max_handles": 0,
+ "strict": false
}
],
"union_declarations": [
diff --git a/bin/fidlgen_dart/goldens/goldens.txt b/bin/fidlgen_dart/goldens/goldens.txt
index b1bdb2e..ba431b4 100644
--- a/bin/fidlgen_dart/goldens/goldens.txt
+++ b/bin/fidlgen_dart/goldens/goldens.txt
@@ -22,6 +22,9 @@
protocols.test.fidl.json
protocols.test.fidl.json_async.dart.golden
protocols.test.fidl.json_test.dart.golden
+service.test.fidl.json
+service.test.fidl.json_async.dart.golden
+service.test.fidl.json_test.dart.golden
tables.test.fidl.json
tables.test.fidl.json_async.dart.golden
tables.test.fidl.json_test.dart.golden
diff --git a/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json b/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json
index d9eae82..41546f5 100644
--- a/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/ordinal_switch.test.fidl.json
@@ -15,7 +15,7 @@
},
"methods": [
{
- "ordinal": 2005164903,
+ "ordinal": 8612117681472012288,
"generated_ordinal": 8612117681472012288,
"name": "OrdinalFive",
"location": {
@@ -28,11 +28,12 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 667506719,
+ "ordinal": 2866919527965261824,
"generated_ordinal": 2866919527965261824,
"name": "OnlyGeneratedOrdinal",
"location": {
@@ -45,11 +46,12 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1467258273,
+ "ordinal": 6301826297320439808,
"generated_ordinal": 6301826297320439808,
"name": "EventOrdinalFifteen",
"location": {
@@ -63,10 +65,11 @@
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 2146190926,
+ "ordinal": 9217819838141956096,
"generated_ordinal": 9217819838141956096,
"name": "EventOnlyGeneratedOrdinal",
"location": {
@@ -80,6 +83,7 @@
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
diff --git a/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json b/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json
index 96148dc..33cdbe4 100644
--- a/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/protocol_request.test.fidl.json
@@ -24,7 +24,7 @@
},
"methods": [
{
- "ordinal": 915586153,
+ "ordinal": 3932412583805452288,
"generated_ordinal": 3932412583805452288,
"name": "GetChild",
"location": {
@@ -37,6 +37,7 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -61,10 +62,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1068158078,
+ "ordinal": 4587704011968217088,
"generated_ordinal": 4587704011968217088,
"name": "GetChildRequest",
"location": {
@@ -77,6 +79,7 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -101,10 +104,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1275478777,
+ "ordinal": 5478139633957076992,
"generated_ordinal": 5478139633957076992,
"name": "TakeChild",
"location": {
@@ -136,11 +140,12 @@
"maybe_request_size": 24,
"maybe_request_alignment": 8,
"maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1589872250,
+ "ordinal": 6828449318567936000,
"generated_ordinal": 6828449318567936000,
"name": "TakeChildRequest",
"location": {
@@ -172,6 +177,7 @@
"maybe_request_size": 24,
"maybe_request_alignment": 8,
"maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
}
diff --git a/bin/fidlgen_dart/goldens/protocols.test.fidl.json b/bin/fidlgen_dart/goldens/protocols.test.fidl.json
index 7400682..10274ed 100644
--- a/bin/fidlgen_dart/goldens/protocols.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/protocols.test.fidl.json
@@ -46,7 +46,8 @@
}
}
}
- ]
+ ],
+ "strict": false
}
],
"interface_declarations": [
@@ -59,7 +60,7 @@
},
"methods": [
{
- "ordinal": 503576693,
+ "ordinal": 2162845427462832128,
"generated_ordinal": 2162845427462832128,
"name": "NoRequestNoResponse",
"location": {
@@ -72,11 +73,12 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1308023765,
+ "ordinal": 5617919293065789440,
"generated_ordinal": 5617919293065789440,
"name": "NoRequestEmptyResponse",
"location": {
@@ -89,15 +91,17 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [],
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 107534328,
+ "ordinal": 461856421957337088,
"generated_ordinal": 461856421957337088,
"name": "NoRequestWithResponse",
"location": {
@@ -110,6 +114,7 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -132,11 +137,12 @@
],
"maybe_response_size": 32,
"maybe_response_alignment": 8,
- "maybe_response_has_padding": false,
+ "maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 432149361,
+ "ordinal": 1856067372482297856,
"generated_ordinal": 1856067372482297856,
"name": "WithRequestNoResponse",
"location": {
@@ -166,12 +172,13 @@
],
"maybe_request_size": 32,
"maybe_request_alignment": 8,
- "maybe_request_has_padding": false,
+ "maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1995585907,
+ "ordinal": 8570976206923497472,
"generated_ordinal": 8570976206923497472,
"name": "WithRequestEmptyResponse",
"location": {
@@ -201,16 +208,18 @@
],
"maybe_request_size": 32,
"maybe_request_alignment": 8,
- "maybe_request_has_padding": false,
+ "maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [],
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 426977568,
+ "ordinal": 1833854690685616128,
"generated_ordinal": 1833854690685616128,
"name": "WithRequestWithResponse",
"location": {
@@ -240,7 +249,8 @@
],
"maybe_request_size": 32,
"maybe_request_alignment": 8,
- "maybe_request_has_padding": false,
+ "maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -263,11 +273,12 @@
],
"maybe_response_size": 32,
"maybe_response_alignment": 8,
- "maybe_response_has_padding": false,
+ "maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1769985842,
+ "ordinal": 7602031305773023232,
"generated_ordinal": 7602031305773023232,
"name": "OnEmptyResponse",
"location": {
@@ -281,10 +292,11 @@
"maybe_response_size": 16,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 2051478023,
+ "ordinal": 8811031017247735808,
"generated_ordinal": 8811031017247735808,
"name": "OnWithResponse",
"location": {
@@ -315,7 +327,8 @@
],
"maybe_response_size": 32,
"maybe_response_alignment": 8,
- "maybe_response_has_padding": false,
+ "maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
@@ -329,7 +342,7 @@
},
"methods": [
{
- "ordinal": 2069369145,
+ "ordinal": 8887872801126481920,
"generated_ordinal": 8887872801126481920,
"name": "ErrorAsPrimitive",
"location": {
@@ -342,6 +355,7 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -366,10 +380,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1284890143,
+ "ordinal": 5518561143137763328,
"generated_ordinal": 5518561143137763328,
"name": "ErrorAsEnum",
"location": {
@@ -382,6 +397,7 @@
"maybe_request_size": 16,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -406,6 +422,7 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
@@ -425,7 +442,7 @@
],
"methods": [
{
- "ordinal": 1993818253,
+ "ordinal": 8563384190802853888,
"generated_ordinal": 8563384190802853888,
"name": "MethodA",
"location": {
@@ -473,11 +490,12 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1746007436,
+ "ordinal": 7499044836192813056,
"generated_ordinal": 7499044836192813056,
"name": "EventA",
"location": {
@@ -526,10 +544,11 @@
"maybe_response_size": 32,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 952134976,
+ "ordinal": 4089388583297744896,
"generated_ordinal": 4089388583297744896,
"name": "MethodB",
"location": {
@@ -577,6 +596,7 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -600,10 +620,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1691201382,
+ "ordinal": 7263654626640003072,
"generated_ordinal": 7263654626640003072,
"name": "MutateSocket",
"location": {
@@ -635,6 +656,7 @@
"maybe_request_size": 24,
"maybe_request_alignment": 8,
"maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -659,6 +681,7 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
@@ -678,7 +701,7 @@
],
"methods": [
{
- "ordinal": 1432785874,
+ "ordinal": 6153768471000776704,
"generated_ordinal": 6153768471000776704,
"name": "MethodA",
"location": {
@@ -726,11 +749,12 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 477676034,
+ "ordinal": 2051602944112984064,
"generated_ordinal": 2051602944112984064,
"name": "EventA",
"location": {
@@ -779,10 +803,11 @@
"maybe_response_size": 32,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 180770075,
+ "ordinal": 776401560220467200,
"generated_ordinal": 776401560220467200,
"name": "MethodB",
"location": {
@@ -830,6 +855,7 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -853,10 +879,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1258480262,
+ "ordinal": 5405131567951511552,
"generated_ordinal": 5405131567951511552,
"name": "MutateSocket",
"location": {
@@ -888,6 +915,7 @@
"maybe_request_size": 24,
"maybe_request_alignment": 8,
"maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -912,6 +940,7 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
@@ -931,7 +960,7 @@
],
"methods": [
{
- "ordinal": 450577456,
+ "ordinal": 1935215437834878976,
"generated_ordinal": 1935215437834878976,
"name": "MethodA",
"location": {
@@ -979,11 +1008,12 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": false,
"is_composed": false
},
{
- "ordinal": 1795426833,
+ "ordinal": 7711299530095853568,
"generated_ordinal": 7711299530095853568,
"name": "EventA",
"location": {
@@ -1032,10 +1062,11 @@
"maybe_response_size": 32,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 1999489700,
+ "ordinal": 8587742870188851200,
"generated_ordinal": 8587742870188851200,
"name": "MethodB",
"location": {
@@ -1083,6 +1114,7 @@
"maybe_request_size": 32,
"maybe_request_alignment": 8,
"maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -1106,10 +1138,11 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": false,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
},
{
- "ordinal": 115851270,
+ "ordinal": 497577415850065920,
"generated_ordinal": 497577415850065920,
"name": "MutateSocket",
"location": {
@@ -1141,6 +1174,7 @@
"maybe_request_size": 24,
"maybe_request_alignment": 8,
"maybe_request_has_padding": true,
+ "experimental_maybe_request_has_flexible_envelope": false,
"has_response": true,
"maybe_response": [
{
@@ -1165,6 +1199,7 @@
"maybe_response_size": 24,
"maybe_response_alignment": 8,
"maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
"is_composed": false
}
]
diff --git a/bin/fidlgen_dart/goldens/service.test.fidl.json b/bin/fidlgen_dart/goldens/service.test.fidl.json
new file mode 100644
index 0000000..7e3deb5
--- /dev/null
+++ b/bin/fidlgen_dart/goldens/service.test.fidl.json
@@ -0,0 +1,182 @@
+{
+ "version": "0.0.1",
+ "name": "test.name",
+ "library_dependencies": [],
+ "bits_declarations": [],
+ "const_declarations": [],
+ "enum_declarations": [],
+ "interface_declarations": [
+ {
+ "name": "test.name/FirstProtocol",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 7,
+ "column": 10
+ },
+ "methods": [
+ {
+ "ordinal": 2898251288619778048,
+ "generated_ordinal": 2898251288619778048,
+ "name": "MethodOnFirst",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 8,
+ "column": 5
+ },
+ "has_request": true,
+ "maybe_request": [],
+ "maybe_request_size": 16,
+ "maybe_request_alignment": 8,
+ "maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
+ "has_response": false,
+ "is_composed": false
+ }
+ ]
+ },
+ {
+ "name": "test.name/SecondProtocol",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 15,
+ "column": 10
+ },
+ "methods": [
+ {
+ "ordinal": 939493167940501504,
+ "generated_ordinal": 939493167940501504,
+ "name": "MethodOnSecond",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 16,
+ "column": 5
+ },
+ "has_request": true,
+ "maybe_request": [],
+ "maybe_request_size": 16,
+ "maybe_request_alignment": 8,
+ "maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
+ "has_response": false,
+ "is_composed": false
+ }
+ ]
+ }
+ ],
+ "service_declarations": [
+ {
+ "name": "test.name/SingleMemberService",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 11,
+ "column": 9
+ },
+ "members": [
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/FirstProtocol",
+ "nullable": false
+ },
+ "name": "single_member",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 12,
+ "column": 19
+ }
+ }
+ ]
+ },
+ {
+ "name": "test.name/MultiHeterogeneousMemberService",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 19,
+ "column": 9
+ },
+ "members": [
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/FirstProtocol",
+ "nullable": false
+ },
+ "name": "first_member",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 20,
+ "column": 19
+ }
+ },
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/SecondProtocol",
+ "nullable": false
+ },
+ "name": "second_member",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 21,
+ "column": 20
+ }
+ }
+ ]
+ },
+ {
+ "name": "test.name/MultiHomogeneousMemberService",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 24,
+ "column": 9
+ },
+ "members": [
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/FirstProtocol",
+ "nullable": false
+ },
+ "name": "first_member",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 25,
+ "column": 19
+ }
+ },
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/FirstProtocol",
+ "nullable": false
+ },
+ "name": "second_member",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/service.test.fidl",
+ "line": 26,
+ "column": 19
+ }
+ }
+ ]
+ }
+ ],
+ "struct_declarations": [],
+ "table_declarations": [],
+ "union_declarations": [],
+ "xunion_declarations": [],
+ "type_alias_declarations": [],
+ "declaration_order": [
+ "test.name/SecondProtocol",
+ "test.name/FirstProtocol",
+ "test.name/SingleMemberService",
+ "test.name/MultiHomogeneousMemberService",
+ "test.name/MultiHeterogeneousMemberService"
+ ],
+ "declarations": {
+ "test.name/FirstProtocol": "interface",
+ "test.name/SecondProtocol": "interface",
+ "test.name/SingleMemberService": "service",
+ "test.name/MultiHeterogeneousMemberService": "service",
+ "test.name/MultiHomogeneousMemberService": "service"
+ }
+}
diff --git a/bin/fidlgen_dart/goldens/service.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/service.test.fidl.json_async.dart.golden
new file mode 100644
index 0000000..9de10e2
--- /dev/null
+++ b/bin/fidlgen_dart/goldens/service.test.fidl.json_async.dart.golden
@@ -0,0 +1,277 @@
+// WARNING: This file is machine generated by fidlgen.
+
+library fidl_test_name_async;
+
+import 'dart:async' as $async;
+import 'dart:core' hide Set;
+import 'dart:developer';
+import 'dart:typed_data';
+
+import 'package:fidl/fidl.dart' as $fidl;
+import 'package:meta/meta.dart';
+import 'package:zircon/zircon.dart' as $zx;
+
+// ignore_for_file: always_specify_types
+// ignore_for_file: avoid_positional_boolean_parameters
+// ignore_for_file: avoid_returning_null
+// ignore_for_file: cascade_invocations
+// ignore_for_file: constant_identifier_names
+// ignore_for_file: one_member_abstracts
+// ignore_for_file: prefer_constructors_over_static_methods
+// ignore_for_file: prefer_single_quotes
+// ignore_for_file: public_member_api_docs
+// ignore_for_file: unused_import
+// ignore_for_file: unused_local_variable
+// ignore_for_file: non_constant_identifier_names
+// ignore_for_file: library_prefixes
+// ignore_for_file: prefer_typing_uninitialized_variables
+// ignore_for_file: avoid_js_rounded_ints
+// ignore_for_file: unnecessary_parenthesis
+// ignore_for_file: always_put_required_named_parameters_first
+// ignore_for_file: prefer_generic_function_type_aliases
+// ignore_for_file: prefer_equal_for_default_values
+// ignore_for_file: avoid_catches_without_on_clauses
+// ignore_for_file: unused_shown_name
+// ignore_for_file: unnecessary_lambdas
+// ignore_for_file: comment_references
+
+// ignore: unused_element, avoid_private_typedef_functions
+typedef _VoidCallback = void Function();
+
+// methodOnFirst: ()
+const int _kFirstProtocol_MethodOnFirst_GenOrdinal = 0x2838a83100000000;
+const $fidl.MethodType _kFirstProtocol_MethodOnFirst_Type = $fidl.MethodType(
+ request: null,
+ response: null,
+ name: r"FirstProtocol.MethodOnFirst",
+);
+
+abstract class FirstProtocol extends $fidl.Service {
+ static const String $serviceName = null;
+ @override
+ $fidl.ServiceData get $serviceData => FirstProtocolData();
+ $async.Future<void> methodOnFirst();
+}
+
+class FirstProtocolData implements $fidl.ServiceData<FirstProtocol> {
+ const FirstProtocolData();
+
+ @override
+ String getName() {
+ return FirstProtocol.$serviceName;
+ }
+
+ @override
+ $fidl.AsyncBinding getBinding() {
+ return FirstProtocolBinding();
+ }
+}
+
+class FirstProtocolProxy extends $fidl.AsyncProxy<FirstProtocol>
+ implements FirstProtocol {
+ FirstProtocolProxy()
+ : super($fidl.AsyncProxyController<FirstProtocol>(
+ $serviceName: null, $interfaceName: r'FirstProtocol')) {
+ ctrl.onResponse = _handleResponse;
+ }
+
+ @override
+ $fidl.ServiceData get $serviceData => FirstProtocolData();
+
+ void _handleEvent($fidl.Message $message) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ void _handleResponse($fidl.Message $message) {
+ final int $txid = $message.txid;
+ if ($txid == 0) {
+ _handleEvent($message);
+ return;
+ }
+ final $async.Completer $completer = ctrl.getCompleter($txid);
+ if ($completer == null) {
+ $message.closeHandles();
+ return;
+ }
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ @override
+ $async.Future<void> methodOnFirst() async {
+ if (!ctrl.isBound) {
+ return $async.Future.error(
+ $fidl.FidlStateException('Proxy<${ctrl.$interfaceName}> is closed.'),
+ StackTrace.current);
+ }
+
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(_kFirstProtocol_MethodOnFirst_GenOrdinal, 0);
+ return $async.Future.sync(() {
+ ctrl.sendMessage($encoder.message);
+ });
+ }
+}
+
+class FirstProtocolBinding extends $fidl.AsyncBinding<FirstProtocol> {
+ FirstProtocolBinding() : super(r"FirstProtocol");
+
+ @override
+ void handleMessage($fidl.Message $message, $fidl.MessageSink $respond) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ case _kFirstProtocol_MethodOnFirst_GenOrdinal:
+ final String _name = _kFirstProtocol_MethodOnFirst_Type.name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kFirstProtocol_MethodOnFirst_Type.request;
+ $decoder.claimMemory(16);
+ final $async.Future<void> $future = impl.methodOnFirst();
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ default:
+ throw $fidl.FidlError(
+ r'Unexpected message name for FirstProtocolBinding');
+ }
+ }
+}
+
+// methodOnSecond: ()
+const int _kSecondProtocol_MethodOnSecond_GenOrdinal = 0xd09c00f00000000;
+const $fidl.MethodType _kSecondProtocol_MethodOnSecond_Type = $fidl.MethodType(
+ request: null,
+ response: null,
+ name: r"SecondProtocol.MethodOnSecond",
+);
+
+abstract class SecondProtocol extends $fidl.Service {
+ static const String $serviceName = null;
+ @override
+ $fidl.ServiceData get $serviceData => SecondProtocolData();
+ $async.Future<void> methodOnSecond();
+}
+
+class SecondProtocolData implements $fidl.ServiceData<SecondProtocol> {
+ const SecondProtocolData();
+
+ @override
+ String getName() {
+ return SecondProtocol.$serviceName;
+ }
+
+ @override
+ $fidl.AsyncBinding getBinding() {
+ return SecondProtocolBinding();
+ }
+}
+
+class SecondProtocolProxy extends $fidl.AsyncProxy<SecondProtocol>
+ implements SecondProtocol {
+ SecondProtocolProxy()
+ : super($fidl.AsyncProxyController<SecondProtocol>(
+ $serviceName: null, $interfaceName: r'SecondProtocol')) {
+ ctrl.onResponse = _handleResponse;
+ }
+
+ @override
+ $fidl.ServiceData get $serviceData => SecondProtocolData();
+
+ void _handleEvent($fidl.Message $message) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ void _handleResponse($fidl.Message $message) {
+ final int $txid = $message.txid;
+ if ($txid == 0) {
+ _handleEvent($message);
+ return;
+ }
+ final $async.Completer $completer = ctrl.getCompleter($txid);
+ if ($completer == null) {
+ $message.closeHandles();
+ return;
+ }
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ @override
+ $async.Future<void> methodOnSecond() async {
+ if (!ctrl.isBound) {
+ return $async.Future.error(
+ $fidl.FidlStateException('Proxy<${ctrl.$interfaceName}> is closed.'),
+ StackTrace.current);
+ }
+
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(_kSecondProtocol_MethodOnSecond_GenOrdinal, 0);
+ return $async.Future.sync(() {
+ ctrl.sendMessage($encoder.message);
+ });
+ }
+}
+
+class SecondProtocolBinding extends $fidl.AsyncBinding<SecondProtocol> {
+ SecondProtocolBinding() : super(r"SecondProtocol");
+
+ @override
+ void handleMessage($fidl.Message $message, $fidl.MessageSink $respond) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ case _kSecondProtocol_MethodOnSecond_GenOrdinal:
+ final String _name = _kSecondProtocol_MethodOnSecond_Type.name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kSecondProtocol_MethodOnSecond_Type.request;
+ $decoder.claimMemory(16);
+ final $async.Future<void> $future = impl.methodOnSecond();
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ default:
+ throw $fidl.FidlError(
+ r'Unexpected message name for SecondProtocolBinding');
+ }
+ }
+}
diff --git a/bin/fidlgen_dart/goldens/service.test.fidl.json_test.dart.golden b/bin/fidlgen_dart/goldens/service.test.fidl.json_test.dart.golden
new file mode 100644
index 0000000..02c48af
--- /dev/null
+++ b/bin/fidlgen_dart/goldens/service.test.fidl.json_test.dart.golden
@@ -0,0 +1,35 @@
+// WARNING: This file is machine generated by fidlgen.
+
+library fidl_test_name_test;
+
+import 'dart:async' as $async;
+import 'dart:core' hide Error, Future, Match, Set, Stream, Type;
+import 'dart:typed_data';
+
+import 'package:fidl/fidl.dart' as $fidl;
+import 'package:meta/meta.dart';
+import 'package:zircon/zircon.dart' as $zx;
+
+import './fidl_async.dart';
+
+// ignore_for_file: always_specify_types
+// ignore_for_file: constant_identifier_names
+// ignore_for_file: one_member_abstracts
+// ignore_for_file: public_member_api_docs
+// ignore_for_file: unused_import
+// ignore_for_file: library_prefixes
+// ignore_for_file: unused_shown_name
+
+class FirstProtocol$TestBase extends FirstProtocol {
+ @override
+ $async.Future<void> methodOnFirst() {
+ return $async.Future.error(UnimplementedError());
+ }
+}
+
+class SecondProtocol$TestBase extends SecondProtocol {
+ @override
+ $async.Future<void> methodOnSecond() {
+ return $async.Future.error(UnimplementedError());
+ }
+}
diff --git a/bin/fidlgen_dart/goldens/tables.test.fidl.json b/bin/fidlgen_dart/goldens/tables.test.fidl.json
index 4b3c991..5468676 100644
--- a/bin/fidlgen_dart/goldens/tables.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/tables.test.fidl.json
@@ -20,7 +20,8 @@
"size": 16,
"max_out_of_line": 0,
"alignment": 8,
- "max_handles": 0
+ "max_handles": 0,
+ "strict": false
},
{
"name": "test.name/SimpleTable",
@@ -97,7 +98,8 @@
"size": 16,
"max_out_of_line": 48,
"alignment": 8,
- "max_handles": 0
+ "max_handles": 0,
+ "strict": false
},
{
"name": "test.name/OlderSimpleTable",
@@ -138,7 +140,8 @@
"size": 16,
"max_out_of_line": 24,
"alignment": 8,
- "max_handles": 0
+ "max_handles": 0,
+ "strict": false
},
{
"name": "test.name/NewerSimpleTable",
@@ -242,7 +245,8 @@
"size": 16,
"max_out_of_line": 72,
"alignment": 8,
- "max_handles": 0
+ "max_handles": 0,
+ "strict": false
}
],
"union_declarations": [],
diff --git a/bin/fidlgen_dart/goldens/xunion.test.fidl.json b/bin/fidlgen_dart/goldens/xunion.test.fidl.json
index 4d25745..51a4796 100644
--- a/bin/fidlgen_dart/goldens/xunion.test.fidl.json
+++ b/bin/fidlgen_dart/goldens/xunion.test.fidl.json
@@ -5,9 +5,120 @@
"bits_declarations": [],
"const_declarations": [],
"enum_declarations": [],
- "interface_declarations": [],
+ "interface_declarations": [
+ {
+ "name": "test.name/TestProtocol",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 38,
+ "column": 10
+ },
+ "methods": [
+ {
+ "ordinal": 8188024295608287232,
+ "generated_ordinal": 8188024295608287232,
+ "name": "StrictXUnionHenceResponseMayBeStackAllocated",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 39,
+ "column": 5
+ },
+ "has_request": true,
+ "maybe_request": [],
+ "maybe_request_size": 16,
+ "maybe_request_alignment": 8,
+ "maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
+ "has_response": true,
+ "maybe_response": [
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/StrictBoundedXUnion",
+ "nullable": false
+ },
+ "name": "xu",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 39,
+ "column": 76
+ },
+ "size": 24,
+ "max_out_of_line": 32,
+ "alignment": 8,
+ "offset": 16,
+ "max_handles": 0
+ }
+ ],
+ "maybe_response_size": 40,
+ "maybe_response_alignment": 8,
+ "maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": false,
+ "is_composed": false
+ },
+ {
+ "ordinal": 4132614547208929280,
+ "generated_ordinal": 4132614547208929280,
+ "name": "FlexibleXUnionHenceResponseMustBeHeapAllocated",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 40,
+ "column": 5
+ },
+ "has_request": true,
+ "maybe_request": [],
+ "maybe_request_size": 16,
+ "maybe_request_alignment": 8,
+ "maybe_request_has_padding": false,
+ "experimental_maybe_request_has_flexible_envelope": false,
+ "has_response": true,
+ "maybe_response": [
+ {
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/OlderSimpleUnion",
+ "nullable": false
+ },
+ "name": "xu",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 40,
+ "column": 75
+ },
+ "size": 24,
+ "max_out_of_line": 8,
+ "alignment": 8,
+ "offset": 16,
+ "max_handles": 0
+ }
+ ],
+ "maybe_response_size": 40,
+ "maybe_response_alignment": 8,
+ "maybe_response_has_padding": true,
+ "experimental_maybe_response_has_flexible_envelope": true,
+ "is_composed": false
+ }
+ ]
+ }
+ ],
"service_declarations": [],
- "struct_declarations": [],
+ "struct_declarations": [
+ {
+ "name": "test.name/Empty",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 25,
+ "column": 8
+ },
+ "anonymous": false,
+ "members": [],
+ "size": 1,
+ "max_out_of_line": 0,
+ "alignment": 1,
+ "max_handles": 0,
+ "has_padding": false
+ }
+ ],
"table_declarations": [],
"union_declarations": [],
"xunion_declarations": [
@@ -29,7 +140,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 4,
- "column": 9
+ "column": 11
},
"size": 8,
"max_out_of_line": 0,
@@ -46,7 +157,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 5,
- "column": 11
+ "column": 13
},
"size": 4,
"max_out_of_line": 0,
@@ -78,7 +189,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 11,
- "column": 9
+ "column": 11
},
"size": 8,
"max_out_of_line": 0,
@@ -95,7 +206,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 13,
- "column": 10
+ "column": 12
},
"size": 16,
"max_out_of_line": 4294967295,
@@ -116,7 +227,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 14,
- "column": 18
+ "column": 20
},
"size": 16,
"max_out_of_line": 4294967295,
@@ -148,7 +259,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 20,
- "column": 9
+ "column": 11
},
"size": 4,
"max_out_of_line": 0,
@@ -165,7 +276,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 21,
- "column": 11
+ "column": 13
},
"size": 4,
"max_out_of_line": 0,
@@ -182,7 +293,7 @@
"location": {
"filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
"line": 22,
- "column": 10
+ "column": 12
},
"size": 16,
"max_out_of_line": 4294967295,
@@ -195,17 +306,95 @@
"alignment": 8,
"max_handles": 0,
"strict": true
+ },
+ {
+ "name": "test.name/XUnionContainingEmptyStruct",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 28,
+ "column": 8
+ },
+ "members": [
+ {
+ "ordinal": 424858069,
+ "type": {
+ "kind": "identifier",
+ "identifier": "test.name/Empty",
+ "nullable": false
+ },
+ "name": "empty",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 31,
+ "column": 11
+ },
+ "size": 1,
+ "max_out_of_line": 0,
+ "alignment": 1,
+ "offset": 0
+ }
+ ],
+ "size": 24,
+ "max_out_of_line": 8,
+ "alignment": 8,
+ "max_handles": 0,
+ "strict": false
+ },
+ {
+ "name": "test.name/StrictBoundedXUnion",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 34,
+ "column": 15
+ },
+ "members": [
+ {
+ "ordinal": 2024555624,
+ "type": {
+ "kind": "vector",
+ "element_type": {
+ "kind": "primitive",
+ "subtype": "uint8"
+ },
+ "maybe_element_count": 10,
+ "nullable": false
+ },
+ "name": "v",
+ "location": {
+ "filename": "garnet/go/src/fidl/compiler/backend/typestest/xunion.test.fidl",
+ "line": 35,
+ "column": 22
+ },
+ "size": 16,
+ "max_out_of_line": 16,
+ "alignment": 8,
+ "offset": 0
+ }
+ ],
+ "size": 24,
+ "max_out_of_line": 32,
+ "alignment": 8,
+ "max_handles": 0,
+ "strict": true
}
],
"type_alias_declarations": [],
"declaration_order": [
"test.name/StrictSimpleXUnion",
+ "test.name/StrictBoundedXUnion",
"test.name/OlderSimpleUnion",
- "test.name/NewerSimpleUnion"
+ "test.name/TestProtocol",
+ "test.name/NewerSimpleUnion",
+ "test.name/Empty",
+ "test.name/XUnionContainingEmptyStruct"
],
"declarations": {
+ "test.name/TestProtocol": "interface",
+ "test.name/Empty": "struct",
"test.name/OlderSimpleUnion": "xunion",
"test.name/NewerSimpleUnion": "xunion",
- "test.name/StrictSimpleXUnion": "xunion"
+ "test.name/StrictSimpleXUnion": "xunion",
+ "test.name/XUnionContainingEmptyStruct": "xunion",
+ "test.name/StrictBoundedXUnion": "xunion"
}
}
diff --git a/bin/fidlgen_dart/goldens/xunion.test.fidl.json_async.dart.golden b/bin/fidlgen_dart/goldens/xunion.test.fidl.json_async.dart.golden
index 643c6e7..53c68be 100644
--- a/bin/fidlgen_dart/goldens/xunion.test.fidl.json_async.dart.golden
+++ b/bin/fidlgen_dart/goldens/xunion.test.fidl.json_async.dart.golden
@@ -336,5 +336,460 @@
nullable: true,
);
+enum XUnionContainingEmptyStructTag {
+ empty, // 0x1952d1d5
+}
+
+const Map<int, XUnionContainingEmptyStructTag>
+ _XUnionContainingEmptyStructTag_map = {
+ 424858069: XUnionContainingEmptyStructTag.empty,
+};
+
+class XUnionContainingEmptyStruct extends $fidl.XUnion {
+ const XUnionContainingEmptyStruct.withEmpty(Empty value)
+ : _ordinal = 424858069,
+ _data = value;
+
+ XUnionContainingEmptyStruct._(int ordinal, Object data)
+ : _ordinal = ordinal,
+ _data = data;
+
+ final int _ordinal;
+ final _data;
+
+ XUnionContainingEmptyStructTag get $tag =>
+ _XUnionContainingEmptyStructTag_map[_ordinal];
+
+ Empty get empty {
+ if (_ordinal != 424858069) {
+ return null;
+ }
+ return _data;
+ }
+
+ @override
+ String toString() {
+ switch (_ordinal) {
+ case 424858069:
+ return 'XUnionContainingEmptyStruct.empty($empty)';
+ default:
+ return null;
+ }
+ }
+
+ @override
+ int get $ordinal => _ordinal;
+
+ @override
+ Object get $data => _data;
+
+ static XUnionContainingEmptyStruct _ctor(int ordinal, Object data) {
+ return XUnionContainingEmptyStruct._(ordinal, data);
+ }
+}
+
+// See FIDL-308:
+// ignore: recursive_compile_time_constant
+const $fidl.XUnionType<XUnionContainingEmptyStruct>
+ kXUnionContainingEmptyStruct_Type =
+ $fidl.XUnionType<XUnionContainingEmptyStruct>(
+ encodedSize: 24,
+ members: <int, $fidl.FidlType>{
+ 424858069: kEmpty_Type,
+ },
+ ctor: XUnionContainingEmptyStruct._ctor,
+);
+const $fidl.XUnionType<XUnionContainingEmptyStruct>
+ kXUnionContainingEmptyStruct_OptType =
+ $fidl.XUnionType<XUnionContainingEmptyStruct>(
+ encodedSize: 24,
+ members: <int, $fidl.FidlType>{
+ 424858069: kEmpty_Type,
+ },
+ ctor: XUnionContainingEmptyStruct._ctor,
+ nullable: true,
+);
+
+enum StrictBoundedXUnionTag {
+ v, // 0x78ac4468
+}
+
+const Map<int, StrictBoundedXUnionTag> _StrictBoundedXUnionTag_map = {
+ 2024555624: StrictBoundedXUnionTag.v,
+};
+
+class StrictBoundedXUnion extends $fidl.XUnion {
+ const StrictBoundedXUnion.withV(Uint8List value)
+ : _ordinal = 2024555624,
+ _data = value;
+
+ StrictBoundedXUnion._(int ordinal, Object data)
+ : _ordinal = ordinal,
+ _data = data;
+
+ final int _ordinal;
+ final _data;
+
+ StrictBoundedXUnionTag get $tag => _StrictBoundedXUnionTag_map[_ordinal];
+
+ Uint8List get v {
+ if (_ordinal != 2024555624) {
+ return null;
+ }
+ return _data;
+ }
+
+ @override
+ String toString() {
+ switch (_ordinal) {
+ case 2024555624:
+ return 'StrictBoundedXUnion.v($v)';
+ default:
+ return null;
+ }
+ }
+
+ @override
+ int get $ordinal => _ordinal;
+
+ @override
+ Object get $data => _data;
+
+ static StrictBoundedXUnion _ctor(int ordinal, Object data) {
+ return StrictBoundedXUnion._(ordinal, data);
+ }
+}
+
+// See FIDL-308:
+// ignore: recursive_compile_time_constant
+const $fidl.XUnionType<StrictBoundedXUnion> kStrictBoundedXUnion_Type =
+ $fidl.XUnionType<StrictBoundedXUnion>(
+ encodedSize: 24,
+ members: <int, $fidl.FidlType>{
+ 2024555624: $fidl.VectorType<Uint8List>(
+ element: $fidl.Uint8Type(), maybeElementCount: 10, nullable: false),
+ },
+ ctor: StrictBoundedXUnion._ctor,
+);
+const $fidl.XUnionType<StrictBoundedXUnion> kStrictBoundedXUnion_OptType =
+ $fidl.XUnionType<StrictBoundedXUnion>(
+ encodedSize: 24,
+ members: <int, $fidl.FidlType>{
+ 2024555624: $fidl.VectorType<Uint8List>(
+ element: $fidl.Uint8Type(), maybeElementCount: 10, nullable: false),
+ },
+ ctor: StrictBoundedXUnion._ctor,
+ nullable: true,
+);
+
+class Empty extends $fidl.Struct {
+ const Empty({
+ this.reserved: 0x0,
+ });
+ Empty.clone(
+ Empty $orig, {
+ int reserved,
+ }) : this(
+ reserved: reserved ?? $orig.reserved,
+ );
+
+ Empty._(List<Object> argv) : reserved = argv[0];
+ final int reserved;
+
+ @override
+ List<Object> get $fields {
+ return <Object>[
+ reserved,
+ ];
+ }
+
+ @override
+ String toString() {
+ // ignore: prefer_interpolation_to_compose_strings
+ return r'Empty' r'(reserved: ' + reserved.toString() + r')';
+ }
+
+ static Empty _ctor(List<Object> argv) => Empty._(argv);
+}
+
+// See FIDL-308:
+// ignore: recursive_compile_time_constant
+const $fidl.StructType<Empty> kEmpty_Type = $fidl.StructType<Empty>(
+ encodedSize: 1,
+ members: <$fidl.MemberType>[
+ $fidl.MemberType<int>(type: $fidl.Uint8Type(), offset: 0),
+ ],
+ ctor: Empty._ctor,
+);
+
// ignore: unused_element, avoid_private_typedef_functions
typedef _VoidCallback = void Function();
+
+// strictXUnionHenceResponseMayBeStackAllocated: () -> (StrictBoundedXUnion xu)
+const int
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_GenOrdinal =
+ 0x71a1b4b700000000;
+const $fidl.MethodType
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type =
+ $fidl.MethodType(
+ request: null,
+ response: <$fidl.MemberType>[
+ $fidl.MemberType<StrictBoundedXUnion>(
+ type: kStrictBoundedXUnion_Type, offset: 16),
+ ],
+ name: r"TestProtocol.StrictXUnionHenceResponseMayBeStackAllocated",
+);
+// flexibleXUnionHenceResponseMustBeHeapAllocated: () -> (OlderSimpleUnion xu)
+const int
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_GenOrdinal =
+ 0x3959ff0900000000;
+const $fidl.MethodType
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type =
+ $fidl.MethodType(
+ request: null,
+ response: <$fidl.MemberType>[
+ $fidl.MemberType<OlderSimpleUnion>(
+ type: kOlderSimpleUnion_Type, offset: 16),
+ ],
+ name: r"TestProtocol.FlexibleXUnionHenceResponseMustBeHeapAllocated",
+);
+
+abstract class TestProtocol extends $fidl.Service {
+ static const String $serviceName = null;
+ @override
+ $fidl.ServiceData get $serviceData => TestProtocolData();
+ $async.Future<StrictBoundedXUnion>
+ strictXUnionHenceResponseMayBeStackAllocated();
+ $async.Future<OlderSimpleUnion>
+ flexibleXUnionHenceResponseMustBeHeapAllocated();
+}
+
+class TestProtocolData implements $fidl.ServiceData<TestProtocol> {
+ const TestProtocolData();
+
+ @override
+ String getName() {
+ return TestProtocol.$serviceName;
+ }
+
+ @override
+ $fidl.AsyncBinding getBinding() {
+ return TestProtocolBinding();
+ }
+}
+
+class TestProtocolProxy extends $fidl.AsyncProxy<TestProtocol>
+ implements TestProtocol {
+ TestProtocolProxy()
+ : super($fidl.AsyncProxyController<TestProtocol>(
+ $serviceName: null, $interfaceName: r'TestProtocol')) {
+ ctrl.onResponse = _handleResponse;
+ }
+
+ @override
+ $fidl.ServiceData get $serviceData => TestProtocolData();
+
+ void _handleEvent($fidl.Message $message) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ void _handleResponse($fidl.Message $message) {
+ final int $txid = $message.txid;
+ if ($txid == 0) {
+ _handleEvent($message);
+ return;
+ }
+ final $async.Completer $completer = ctrl.getCompleter($txid);
+ if ($completer == null) {
+ $message.closeHandles();
+ return;
+ }
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ case _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_GenOrdinal:
+ final String _name =
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type
+ .name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type
+ .response;
+ $decoder.claimMemory(40);
+ // ignore: prefer_const_declarations
+ final $response = $types[0].decode($decoder, 0);
+
+ $completer.complete($response);
+
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ ctrl.proxyError($fidl.FidlError(
+ 'Exception handling method response $_name: $_e'));
+ ctrl.close();
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ case _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_GenOrdinal:
+ final String _name =
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type
+ .name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type
+ .response;
+ $decoder.claimMemory(40);
+ // ignore: prefer_const_declarations
+ final $response = $types[0].decode($decoder, 0);
+
+ $completer.complete($response);
+
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ ctrl.proxyError($fidl.FidlError(
+ 'Exception handling method response $_name: $_e'));
+ ctrl.close();
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ default:
+ ctrl.proxyError(
+ $fidl.FidlError('Unexpected message ordinal: ${$message.ordinal}'));
+ ctrl.close();
+ break;
+ }
+ }
+
+ @override
+ $async.Future<StrictBoundedXUnion>
+ strictXUnionHenceResponseMayBeStackAllocated() async {
+ if (!ctrl.isBound) {
+ return $async.Future.error(
+ $fidl.FidlStateException('Proxy<${ctrl.$interfaceName}> is closed.'),
+ StackTrace.current);
+ }
+
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_GenOrdinal,
+ 0);
+ final $completer = $async.Completer<StrictBoundedXUnion>();
+ ctrl.sendMessageWithResponse($encoder.message, $completer);
+ return $completer.future;
+ }
+
+ @override
+ $async.Future<OlderSimpleUnion>
+ flexibleXUnionHenceResponseMustBeHeapAllocated() async {
+ if (!ctrl.isBound) {
+ return $async.Future.error(
+ $fidl.FidlStateException('Proxy<${ctrl.$interfaceName}> is closed.'),
+ StackTrace.current);
+ }
+
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_GenOrdinal,
+ 0);
+ final $completer = $async.Completer<OlderSimpleUnion>();
+ ctrl.sendMessageWithResponse($encoder.message, $completer);
+ return $completer.future;
+ }
+}
+
+class TestProtocolBinding extends $fidl.AsyncBinding<TestProtocol> {
+ TestProtocolBinding() : super(r"TestProtocol");
+
+ @override
+ void handleMessage($fidl.Message $message, $fidl.MessageSink $respond) {
+ final $fidl.Decoder $decoder = $fidl.Decoder($message);
+ switch ($message.ordinal) {
+ case _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_GenOrdinal:
+ final String _name =
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type
+ .name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type
+ .request;
+ $decoder.claimMemory(16);
+ final $async.Future<StrictBoundedXUnion> $future =
+ impl.strictXUnionHenceResponseMayBeStackAllocated();
+ $future.then(($response) {
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_GenOrdinal,
+ $message.txid);
+ $encoder.alloc(40 - $fidl.kMessageHeaderSize);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_StrictXUnionHenceResponseMayBeStackAllocated_Type
+ .response;
+ $types[0].encode($encoder, $response, 0);
+ $respond($encoder.message);
+ }, onError: (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ });
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ case _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_GenOrdinal:
+ final String _name =
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type
+ .name;
+ try {
+ Timeline.startSync(_name);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type
+ .request;
+ $decoder.claimMemory(16);
+ final $async.Future<OlderSimpleUnion> $future =
+ impl.flexibleXUnionHenceResponseMustBeHeapAllocated();
+ $future.then(($response) {
+ final $fidl.Encoder $encoder = $fidl.Encoder();
+ $encoder.encodeMessageHeader(
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_GenOrdinal,
+ $message.txid);
+ $encoder.alloc(40 - $fidl.kMessageHeaderSize);
+ final List<$fidl.MemberType> $types =
+ _kTestProtocol_FlexibleXUnionHenceResponseMustBeHeapAllocated_Type
+ .response;
+ $types[0].encode($encoder, $response, 0);
+ $respond($encoder.message);
+ }, onError: (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ });
+ // ignore: avoid_catches_without_on_clauses
+ } catch (_e) {
+ close();
+ print('Exception handling method call $_name: $_e');
+ rethrow;
+ } finally {
+ Timeline.finishSync();
+ }
+ break;
+ default:
+ throw $fidl.FidlError(
+ r'Unexpected message name for TestProtocolBinding');
+ }
+ }
+}
diff --git a/bin/fidlgen_dart/goldens/xunion.test.fidl.json_test.dart.golden b/bin/fidlgen_dart/goldens/xunion.test.fidl.json_test.dart.golden
index a3eabaa..e7bca15 100644
--- a/bin/fidlgen_dart/goldens/xunion.test.fidl.json_test.dart.golden
+++ b/bin/fidlgen_dart/goldens/xunion.test.fidl.json_test.dart.golden
@@ -19,3 +19,17 @@
// ignore_for_file: unused_import
// ignore_for_file: library_prefixes
// ignore_for_file: unused_shown_name
+
+class TestProtocol$TestBase extends TestProtocol {
+ @override
+ $async.Future<StrictBoundedXUnion>
+ strictXUnionHenceResponseMayBeStackAllocated() {
+ return $async.Future.error(UnimplementedError());
+ }
+
+ @override
+ $async.Future<OlderSimpleUnion>
+ flexibleXUnionHenceResponseMustBeHeapAllocated() {
+ return $async.Future.error(UnimplementedError());
+ }
+}