| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.serialization.elements; | 5 library dart2js.serialization.elements; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../constants/constructors.dart'; | 8 import '../constants/constructors.dart'; |
| 9 import '../constants/expressions.dart'; | 9 import '../constants/expressions.dart'; |
| 10 import '../dart_types.dart'; | 10 import '../dart_types.dart'; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 INSTANCE_GETTER, | 36 INSTANCE_GETTER, |
| 37 INSTANCE_SETTER, | 37 INSTANCE_SETTER, |
| 38 LOCAL_FUNCTION, | 38 LOCAL_FUNCTION, |
| 39 TYPEDEF, | 39 TYPEDEF, |
| 40 TYPEVARIABLE, | 40 TYPEVARIABLE, |
| 41 PARAMETER, | 41 PARAMETER, |
| 42 INITIALIZING_FORMAL, | 42 INITIALIZING_FORMAL, |
| 43 IMPORT, | 43 IMPORT, |
| 44 EXPORT, | 44 EXPORT, |
| 45 PREFIX, | 45 PREFIX, |
| 46 EXTERNAL_LIBRARY, |
| 47 EXTERNAL_LIBRARY_MEMBER, |
| 48 EXTERNAL_STATIC_MEMBER, |
| 49 EXTERNAL_CONSTRUCTOR, |
| 46 } | 50 } |
| 47 | 51 |
| 48 /// Set of serializers used to serialize different kinds of elements by | 52 /// Set of serializers used to serialize different kinds of elements by |
| 49 /// encoding into them into [ObjectEncoder]s. | 53 /// encoding into them into [ObjectEncoder]s. |
| 50 /// | 54 /// |
| 51 /// This class is called from the [Serializer] when an [Element] needs | 55 /// This class is called from the [Serializer] when an [Element] needs |
| 52 /// serialization. The [ObjectEncoder] ensures that any [Element], [DartType], | 56 /// serialization. The [ObjectEncoder] ensures that any [Element], [DartType], |
| 53 /// and [ConstantExpression] that the serialized [Element] depends upon are also | 57 /// and [ConstantExpression] that the serialized [Element] depends upon are also |
| 54 /// serialized. | 58 /// serialized. |
| 55 const List<ElementSerializer> ELEMENT_SERIALIZERS = const [ | 59 const List<ElementSerializer> ELEMENT_SERIALIZERS = const [ |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 /// | 590 /// |
| 587 /// This is used by the [Deserializer]. | 591 /// This is used by the [Deserializer]. |
| 588 class ElementDeserializer { | 592 class ElementDeserializer { |
| 589 | 593 |
| 590 /// Deserializes an [Element] from an [ObjectDecoder]. | 594 /// Deserializes an [Element] from an [ObjectDecoder]. |
| 591 /// | 595 /// |
| 592 /// The class is called from the [Deserializer] when an [Element] | 596 /// The class is called from the [Deserializer] when an [Element] |
| 593 /// needs deserialization. The [ObjectDecoder] ensures that any [Element], | 597 /// needs deserialization. The [ObjectDecoder] ensures that any [Element], |
| 594 /// [DartType], and [ConstantExpression] that the deserialized [Element] | 598 /// [DartType], and [ConstantExpression] that the deserialized [Element] |
| 595 /// depends upon are available. | 599 /// depends upon are available. |
| 596 static Element deserialize(ObjectDecoder decoder) { | 600 static Element deserialize( |
| 597 SerializedElementKind elementKind = | 601 ObjectDecoder decoder, |
| 598 decoder.getEnum(Key.KIND, SerializedElementKind.values); | 602 SerializedElementKind elementKind) { |
| 599 switch (elementKind) { | 603 switch (elementKind) { |
| 600 case SerializedElementKind.LIBRARY: | 604 case SerializedElementKind.LIBRARY: |
| 601 return new LibraryElementZ(decoder); | 605 return new LibraryElementZ(decoder); |
| 602 case SerializedElementKind.COMPILATION_UNIT: | 606 case SerializedElementKind.COMPILATION_UNIT: |
| 603 return new CompilationUnitElementZ(decoder); | 607 return new CompilationUnitElementZ(decoder); |
| 604 case SerializedElementKind.CLASS: | 608 case SerializedElementKind.CLASS: |
| 605 return new ClassElementZ(decoder); | 609 return new ClassElementZ(decoder); |
| 606 case SerializedElementKind.ENUM: | 610 case SerializedElementKind.ENUM: |
| 607 return new EnumClassElementZ(decoder); | 611 return new EnumClassElementZ(decoder); |
| 608 case SerializedElementKind.NAMED_MIXIN_APPLICATION: | 612 case SerializedElementKind.NAMED_MIXIN_APPLICATION: |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 case SerializedElementKind.PARAMETER: | 648 case SerializedElementKind.PARAMETER: |
| 645 return new ParameterElementZ(decoder); | 649 return new ParameterElementZ(decoder); |
| 646 case SerializedElementKind.INITIALIZING_FORMAL: | 650 case SerializedElementKind.INITIALIZING_FORMAL: |
| 647 return new InitializingFormalElementZ(decoder); | 651 return new InitializingFormalElementZ(decoder); |
| 648 case SerializedElementKind.IMPORT: | 652 case SerializedElementKind.IMPORT: |
| 649 return new ImportElementZ(decoder); | 653 return new ImportElementZ(decoder); |
| 650 case SerializedElementKind.EXPORT: | 654 case SerializedElementKind.EXPORT: |
| 651 return new ExportElementZ(decoder); | 655 return new ExportElementZ(decoder); |
| 652 case SerializedElementKind.PREFIX: | 656 case SerializedElementKind.PREFIX: |
| 653 return new PrefixElementZ(decoder); | 657 return new PrefixElementZ(decoder); |
| 658 case SerializedElementKind.EXTERNAL_LIBRARY: |
| 659 case SerializedElementKind.EXTERNAL_LIBRARY_MEMBER: |
| 660 case SerializedElementKind.EXTERNAL_STATIC_MEMBER: |
| 661 case SerializedElementKind.EXTERNAL_CONSTRUCTOR: |
| 662 break; |
| 654 } | 663 } |
| 655 throw new UnsupportedError("Unexpected element kind '${elementKind}."); | 664 throw new UnsupportedError("Unexpected element kind '${elementKind}."); |
| 656 } | 665 } |
| 657 } | 666 } |
| OLD | NEW |