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

Unified Diff: client/dom/scripts/generator.py

Issue 9843003: Proper handling of sequence<T> in IDLs. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/dom/scripts/generator.py
diff --git a/client/dom/scripts/generator.py b/client/dom/scripts/generator.py
index b235c0e370d3adb66767b95efea4d67e30e0a024..fb43f50596567aad73c2f154250cc0f536cc7423 100644
--- a/client/dom/scripts/generator.py
+++ b/client/dom/scripts/generator.py
@@ -234,9 +234,6 @@ def MatchSourceFilter(filter, thing):
return any(token in thing.annotations for token in filter)
def DartType(idl_type_name):
- match = re.match(r'sequence<(\w*)>$', idl_type_name)
- if match:
- return 'List<%s>' % GetIDLTypeInfo(match.group(1)).dart_type()
return GetIDLTypeInfo(idl_type_name).dart_type()
# Given a list of overloaded arguments, render a dart argument.
@@ -487,6 +484,11 @@ class IDLTypeInfo(object):
def dart_type(self):
if self._dart_type:
return self._dart_type
+
+ match = re.match(r'sequence<(\w*)>$', self._idl_type)
+ if match:
+ return 'List<%s>' % DartType(match.group(1))
podivilov 2012/03/23 15:12:07 nit: should be GetIDLTypeInfo(match.group(1)).dart
Anton Muhin 2012/03/23 17:27:31 DartType is exactly this now, no?
+
return self._idl_type
def native_type(self):
@@ -540,7 +542,13 @@ class IDLTypeInfo(object):
return 'receiver->'
def conversion_includes(self):
- return ['"Dart%s.h"' % include for include in [self.dart_type()] + self._conversion_includes]
+ def NeededDartType(type_name):
+ match = re.match(r'List<(\w*)>$', type_name)
+ if match:
+ return NeededDartType(match.group(1))
+ return type_name
+
+ return ['"Dart%s.h"' % include for include in [NeededDartType(self.dart_type())] + self._conversion_includes]
podivilov 2012/03/23 15:12:07 Please parse the type in constructor, so you don't
Anton Muhin 2012/03/23 17:27:31 Should I do it right now? If we're looking for op
def conversion_cast(self, expression):
if self._conversion_template:
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698