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.constants; | 5 library dart2js.serialization.constants; |
6 | 6 |
7 import '../constants/constructors.dart'; | 7 import '../constants/constructors.dart'; |
8 import '../constants/expressions.dart'; | 8 import '../constants/expressions.dart'; |
9 import '../elements/elements.dart' | 9 import '../elements/elements.dart' |
10 show ConstructorElement, FieldElement, LocalVariableElement, MethodElement; | 10 show ConstructorElement, FieldElement, LocalVariableElement, MethodElement; |
| 11 import '../elements/entities.dart' show FieldEntity; |
11 import '../elements/operators.dart'; | 12 import '../elements/operators.dart'; |
12 import '../elements/resolution_types.dart'; | 13 import '../elements/resolution_types.dart'; |
13 import '../universe/call_structure.dart' show CallStructure; | 14 import '../universe/call_structure.dart' show CallStructure; |
14 import 'keys.dart'; | 15 import 'keys.dart'; |
15 import 'serialization.dart'; | 16 import 'serialization.dart'; |
16 | 17 |
17 /// Visitor that serializes a [ConstantExpression] by encoding it into an | 18 /// Visitor that serializes a [ConstantExpression] by encoding it into an |
18 /// [ObjectEncoder]. | 19 /// [ObjectEncoder]. |
19 /// | 20 /// |
20 /// This class is called from the [Serializer] when a [ConstantExpression] needs | 21 /// This class is called from the [Serializer] when a [ConstantExpression] needs |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 @override | 319 @override |
319 void visitGenerative( | 320 void visitGenerative( |
320 GenerativeConstantConstructor constructor, ObjectEncoder encoder) { | 321 GenerativeConstantConstructor constructor, ObjectEncoder encoder) { |
321 ResolutionInterfaceType type = constructor.type; | 322 ResolutionInterfaceType type = constructor.type; |
322 encoder.setType(Key.TYPE, type); | 323 encoder.setType(Key.TYPE, type); |
323 MapEncoder defaults = encoder.createMap(Key.DEFAULTS); | 324 MapEncoder defaults = encoder.createMap(Key.DEFAULTS); |
324 constructor.defaultValues.forEach((key, e) { | 325 constructor.defaultValues.forEach((key, e) { |
325 defaults.setConstant('$key', e); | 326 defaults.setConstant('$key', e); |
326 }); | 327 }); |
327 ListEncoder fields = encoder.createList(Key.FIELDS); | 328 ListEncoder fields = encoder.createList(Key.FIELDS); |
328 constructor.fieldMap.forEach((FieldElement f, ConstantExpression e) { | 329 constructor.fieldMap.forEach((FieldEntity _f, ConstantExpression e) { |
| 330 FieldElement f = _f; |
329 ObjectEncoder fieldSerializer = fields.createObject(); | 331 ObjectEncoder fieldSerializer = fields.createObject(); |
330 fieldSerializer.setElement(Key.FIELD, f); | 332 fieldSerializer.setElement(Key.FIELD, f); |
331 fieldSerializer.setConstant(Key.CONSTANT, e); | 333 fieldSerializer.setConstant(Key.CONSTANT, e); |
332 }); | 334 }); |
333 if (constructor.superConstructorInvocation != null) { | 335 if (constructor.superConstructorInvocation != null) { |
334 encoder.setConstant( | 336 encoder.setConstant( |
335 Key.CONSTRUCTOR, constructor.superConstructorInvocation); | 337 Key.CONSTRUCTOR, constructor.superConstructorInvocation); |
336 } | 338 } |
337 } | 339 } |
338 | 340 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 type, readDefaults(), readFields(), readConstructorInvocation()); | 420 type, readDefaults(), readFields(), readConstructorInvocation()); |
419 case ConstantConstructorKind.REDIRECTING_GENERATIVE: | 421 case ConstantConstructorKind.REDIRECTING_GENERATIVE: |
420 return new RedirectingGenerativeConstantConstructor( | 422 return new RedirectingGenerativeConstantConstructor( |
421 readDefaults(), readConstructorInvocation()); | 423 readDefaults(), readConstructorInvocation()); |
422 case ConstantConstructorKind.REDIRECTING_FACTORY: | 424 case ConstantConstructorKind.REDIRECTING_FACTORY: |
423 return new RedirectingFactoryConstantConstructor( | 425 return new RedirectingFactoryConstantConstructor( |
424 readConstructorInvocation()); | 426 readConstructorInvocation()); |
425 } | 427 } |
426 } | 428 } |
427 } | 429 } |
OLD | NEW |