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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 | 246 |
247 class IdlUnionType(IdlTypeBase): | 247 class IdlUnionType(IdlTypeBase): |
248 # http://heycam.github.io/webidl/#idl-union | 248 # http://heycam.github.io/webidl/#idl-union |
249 # IdlUnionType has __hash__() and __eq__() methods because they are stored | 249 # IdlUnionType has __hash__() and __eq__() methods because they are stored |
250 # in sets. | 250 # in sets. |
251 def __init__(self, member_types): | 251 def __init__(self, member_types): |
252 super(IdlUnionType, self).__init__() | 252 super(IdlUnionType, self).__init__() |
253 self.member_types = member_types | 253 self.member_types = member_types |
254 | 254 |
255 def __str__(self): | 255 def __str__(self): |
256 return self.name | 256 return '(' + ' or '.join(str(member_type) for member_type in self.member
_types) + ')' |
257 | 257 |
258 def __hash__(self): | 258 def __hash__(self): |
259 return hash(self.name) | 259 return hash(self.name) |
260 | 260 |
261 def __eq__(self, rhs): | 261 def __eq__(self, rhs): |
262 return self.name == rhs.name | 262 return self.name == rhs.name |
263 | 263 |
264 def __getstate__(self): | 264 def __getstate__(self): |
265 return { | 265 return { |
266 'member_types': self.member_types, | 266 'member_types': self.member_types, |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 def is_nullable(self): | 395 def is_nullable(self): |
396 return True | 396 return True |
397 | 397 |
398 @property | 398 @property |
399 def name(self): | 399 def name(self): |
400 return self.inner_type.name + 'OrNull' | 400 return self.inner_type.name + 'OrNull' |
401 | 401 |
402 def resolve_typedefs(self, typedefs): | 402 def resolve_typedefs(self, typedefs): |
403 self.inner_type = self.inner_type.resolve_typedefs(typedefs) | 403 self.inner_type = self.inner_type.resolve_typedefs(typedefs) |
404 return self | 404 return self |
OLD | NEW |