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

Side by Side Diff: Source/bindings/scripts/idl_types.py

Issue 700093002: IDL: Support nullable union types (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 """IDL type handling. 4 """IDL type handling.
5 5
6 Classes: 6 Classes:
7 IdlTypeBase 7 IdlTypeBase
8 IdlType 8 IdlType
9 IdlUnionType 9 IdlUnionType
10 IdlArrayOrSequenceType 10 IdlArrayOrSequenceType
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 } 267 }
268 268
269 def __setstate__(self, state): 269 def __setstate__(self, state):
270 self.member_types = state['member_types'] 270 self.member_types = state['member_types']
271 271
272 @property 272 @property
273 def is_union_type(self): 273 def is_union_type(self):
274 return True 274 return True
275 275
276 @property 276 @property
277 def as_union_type(self):
278 # Note: Use this to "look through" a possible IdlNullableType wrapper.
279 return self
280
281 @property
277 def name(self): 282 def name(self):
278 """Return type name (or inner type name if nullable) 283 """Return type name (or inner type name if nullable)
279 284
280 http://heycam.github.io/webidl/#dfn-type-name 285 http://heycam.github.io/webidl/#dfn-type-name
281 """ 286 """
282 return 'Or'.join(member_type.name for member_type in self.member_types) 287 return 'Or'.join(member_type.name for member_type in self.member_types)
283 288
284 def resolve_typedefs(self, typedefs): 289 def resolve_typedefs(self, typedefs):
285 self.member_types = [ 290 self.member_types = [
286 typedefs.get(member_type, member_type) 291 typedefs.get(member_type, member_type)
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 def is_nullable(self): 373 def is_nullable(self):
369 return True 374 return True
370 375
371 @property 376 @property
372 def name(self): 377 def name(self):
373 return self.inner_type.name + 'OrNull' 378 return self.inner_type.name + 'OrNull'
374 379
375 def resolve_typedefs(self, typedefs): 380 def resolve_typedefs(self, typedefs):
376 self.inner_type = self.inner_type.resolve_typedefs(typedefs) 381 self.inner_type = self.inner_type.resolve_typedefs(typedefs)
377 return self 382 return self
OLDNEW
« no previous file with comments | « Source/bindings/scripts/compute_interfaces_info_individual.py ('k') | Source/bindings/scripts/v8_types.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698