OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |