| Index: tests/compiler/dart2js/serialization_analysis_test.dart
|
| diff --git a/tests/compiler/dart2js/serialization_analysis_test.dart b/tests/compiler/dart2js/serialization_analysis_test.dart
|
| index 19aedf7e93854bc04375d51f153b2b0c282e28c8..c77050efe666e099bfb95fec7af7f94e42ba0ded 100644
|
| --- a/tests/compiler/dart2js/serialization_analysis_test.dart
|
| +++ b/tests/compiler/dart2js/serialization_analysis_test.dart
|
| @@ -8,6 +8,7 @@ import 'dart:async';
|
| import 'package:async_helper/async_helper.dart';
|
| import 'package:expect/expect.dart';
|
| import 'package:compiler/src/commandline_options.dart';
|
| +import 'package:compiler/src/common/backend_api.dart';
|
| import 'package:compiler/src/common/names.dart';
|
| import 'package:compiler/src/common/resolution.dart';
|
| import 'package:compiler/src/compiler.dart';
|
| @@ -247,7 +248,9 @@ Future analyze(String serializedData, Uri entryPoint, Test test) async {
|
| const JsonSerializationDecoder());
|
| deserializer.plugins.add(compiler.backend.serialization.deserializer);
|
| compiler.serialization.deserializer =
|
| - new _DeserializerSystem(deserializer);
|
| + new _DeserializerSystem(
|
| + deserializer,
|
| + compiler.backend.impactTransformer);
|
| });
|
| if (test != null) {
|
| Expect.equals(test.expectedErrorCount, diagnosticCollector.errors.length,
|
| @@ -274,7 +277,7 @@ Future<String> serializeDartCore() async {
|
| String serialize(Compiler compiler) {
|
| Serializer serializer = new Serializer();
|
| serializer.plugins.add(compiler.backend.serialization.serializer);
|
| - serializer.plugins.add(new WorldImpactSerializer(compiler.resolution));
|
| + serializer.plugins.add(new ResolutionImpactSerializer(compiler.resolution));
|
|
|
| for (LibraryElement library in compiler.libraryLoader.libraries) {
|
| serializer.serialize(library);
|
| @@ -284,23 +287,23 @@ String serialize(Compiler compiler) {
|
|
|
| const String WORLD_IMPACT_TAG = 'worldImpact';
|
|
|
| -class WorldImpactSerializer extends SerializerPlugin {
|
| +class ResolutionImpactSerializer extends SerializerPlugin {
|
| final Resolution resolution;
|
|
|
| - WorldImpactSerializer(this.resolution);
|
| + ResolutionImpactSerializer(this.resolution);
|
|
|
| @override
|
| void onElement(Element element, ObjectEncoder createEncoder(String tag)) {
|
| if (resolution.hasBeenResolved(element)) {
|
| - WorldImpact impact = resolution.getWorldImpact(element);
|
| + ResolutionImpact impact = resolution.getResolutionImpact(element);
|
| ObjectEncoder encoder = createEncoder(WORLD_IMPACT_TAG);
|
| - impact.apply(new ImpactSerializer(encoder));
|
| + new ImpactSerializer(encoder).serialize(impact);
|
| }
|
| }
|
| }
|
|
|
| -class WorldImpactDeserializer extends DeserializerPlugin {
|
| - Map<Element, WorldImpact> impactMap = <Element, WorldImpact>{};
|
| +class ResolutionImpactDeserializer extends DeserializerPlugin {
|
| + Map<Element, ResolutionImpact> impactMap = <Element, ResolutionImpact>{};
|
|
|
| @override
|
| void onElement(Element element, ObjectDecoder getDecoder(String tag)) {
|
| @@ -314,11 +317,12 @@ class WorldImpactDeserializer extends DeserializerPlugin {
|
| class _DeserializerSystem extends DeserializerSystem {
|
| final Deserializer _deserializer;
|
| final List<LibraryElement> deserializedLibraries = <LibraryElement>[];
|
| - final WorldImpactDeserializer _worldImpactDeserializer =
|
| - new WorldImpactDeserializer();
|
| + final ResolutionImpactDeserializer _resolutionImpactDeserializer =
|
| + new ResolutionImpactDeserializer();
|
| + final ImpactTransformer _impactTransformer;
|
|
|
| - _DeserializerSystem(this._deserializer) {
|
| - _deserializer.plugins.add(_worldImpactDeserializer);
|
| + _DeserializerSystem(this._deserializer, this._impactTransformer) {
|
| + _deserializer.plugins.add(_resolutionImpactDeserializer);
|
| }
|
|
|
| LibraryElement readLibrary(Uri resolvedUri) {
|
| @@ -331,12 +335,14 @@ class _DeserializerSystem extends DeserializerSystem {
|
|
|
| @override
|
| WorldImpact computeWorldImpact(Element element) {
|
| - WorldImpact impact = _worldImpactDeserializer.impactMap[element];
|
| - if (impact == null) {
|
| + ResolutionImpact resolutionImpact =
|
| + _resolutionImpactDeserializer.impactMap[element];
|
| + if (resolutionImpact == null) {
|
| print('No impact found for $element (${element.library})');
|
| - impact = const WorldImpact();
|
| + return const WorldImpact();
|
| + } else {
|
| + return _impactTransformer.transformResolutionImpact(resolutionImpact);
|
| }
|
| - return impact;
|
| }
|
|
|
| @override
|
|
|