Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Unified Diff: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py

Issue 1179733005: Update mojo sdk to rev bdbb0c7e396fc4044a8b194058d7a7e529715286 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update CommandBufferImpl (Binding::OnConnectionError is no more) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py
index 11e300cfadf99734e698ab6fe4e19eb2c3937a36..8c9a368a17fc8de65b98311a56dffecd267aca28 100644
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py
@@ -136,6 +136,8 @@ def DartDefaultValue(field):
return _kind_to_dart_default_value[field.kind]
if mojom.IsStructKind(field.kind):
return "null"
+ if mojom.IsUnionKind(field.kind):
+ return "null"
if mojom.IsArrayKind(field.kind):
return "null"
if mojom.IsMapKind(field.kind):
@@ -149,8 +151,10 @@ def DartDefaultValue(field):
def DartDeclType(kind):
if kind in mojom.PRIMITIVES:
return _kind_to_dart_decl_type[kind]
- if mojom.IsStructKind(kind) or mojom.IsUnionKind(kind):
+ if mojom.IsStructKind(kind):
return GetDartType(kind)
+ if mojom.IsUnionKind(kind):
+ return "%sWrapper" % GetDartType(kind)
if mojom.IsArrayKind(kind):
array_type = DartDeclType(kind.kind)
return "List<" + array_type + ">"
@@ -189,6 +193,9 @@ def ConstantStyle(name):
components[0] = '_' + components[0]
return '_'.join([x.upper() for x in components])
+def DotToUnderscore(name):
+ return name.replace('.', '_')
+
def GetNameForElement(element):
if (mojom.IsEnumKind(element) or mojom.IsInterfaceKind(element) or
mojom.IsStructKind(element) or mojom.IsUnionKind(element)):
@@ -197,8 +204,10 @@ def GetNameForElement(element):
return GetNameForElement(element.kind)
if isinstance(element, (mojom.Method,
mojom.Parameter,
- mojom.Field)):
+ mojom.StructField)):
return CamelCase(element.name)
+ if isinstance(element, mojom.UnionField):
+ return "f%s" % UpperCamelCase(element.name)
if isinstance(element, mojom.EnumValue):
return (GetNameForElement(element.enum) + '.' +
ConstantStyle(element.name))
@@ -208,6 +217,12 @@ def GetNameForElement(element):
return ConstantStyle(element.name)
raise Exception('Unexpected element: %s' % element)
+def GetUnionFieldTagName(element):
+ if not isinstance(element, mojom.UnionField):
+ raise Exception('Unexpected element: %s is not a union field.' % element)
+
+ return 'tag%s' % UpperCamelCase(element.name)
+
def GetInterfaceResponseName(method):
return UpperCamelCase(method.name + 'Response')
@@ -381,7 +396,9 @@ class Generator(generator.Generator):
'dart_true_false': GetDartTrueFalse,
'dart_type': DartDeclType,
'name': GetNameForElement,
+ 'tag_name': GetUnionFieldTagName,
'interface_response_name': GetInterfaceResponseName,
+ 'dot_to_underscore': DotToUnderscore,
}
def GetParameters(self, args):
@@ -392,6 +409,7 @@ class Generator(generator.Generator):
"enums": self.module.enums,
"module": resolver.ResolveConstants(self.module, ExpressionToText),
"structs": self.GetStructs() + self.GetStructsFromMethods(),
+ "unions": self.GetUnions(),
"interfaces": self.GetInterfaces(),
"imported_interfaces": self.GetImportedInterfaces(),
"imported_from": self.ImportedFrom(),

Powered by Google App Engine
This is Rietveld 408576698