Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: tests/compiler/dart2js/serialization/model_test_helper.dart

Issue 2827283002: Implement subtype relation for kernel based elements. (Closed)
Patch Set: Remove @override annotations Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_model_test; 5 library dart2js.serialization_model_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 import 'package:async_helper/async_helper.dart'; 9 import 'package:async_helper/async_helper.dart';
10 import 'package:expect/expect.dart'; 10 import 'package:expect/expect.dart';
11 import 'package:compiler/src/closure.dart'; 11 import 'package:compiler/src/closure.dart';
12 import 'package:compiler/src/commandline_options.dart'; 12 import 'package:compiler/src/commandline_options.dart';
13 import 'package:compiler/src/common.dart'; 13 import 'package:compiler/src/common.dart';
14 import 'package:compiler/src/constants/values.dart'; 14 import 'package:compiler/src/constants/values.dart';
15 import 'package:compiler/src/compiler.dart'; 15 import 'package:compiler/src/compiler.dart';
16 import 'package:compiler/src/elements/resolution_types.dart'; 16 import 'package:compiler/src/elements/resolution_types.dart';
17 import 'package:compiler/src/elements/types.dart';
17 import 'package:compiler/src/deferred_load.dart'; 18 import 'package:compiler/src/deferred_load.dart';
18 import 'package:compiler/src/elements/elements.dart'; 19 import 'package:compiler/src/elements/elements.dart';
19 import 'package:compiler/src/elements/entities.dart'; 20 import 'package:compiler/src/elements/entities.dart';
20 import 'package:compiler/src/enqueue.dart'; 21 import 'package:compiler/src/enqueue.dart';
21 import 'package:compiler/src/filenames.dart'; 22 import 'package:compiler/src/filenames.dart';
22 import 'package:compiler/src/js_backend/js_backend.dart'; 23 import 'package:compiler/src/js_backend/js_backend.dart';
23 import 'package:compiler/src/js_backend/backend_usage.dart'; 24 import 'package:compiler/src/js_backend/backend_usage.dart';
24 import 'package:compiler/src/serialization/equivalence.dart'; 25 import 'package:compiler/src/serialization/equivalence.dart';
25 import 'package:compiler/src/tree/nodes.dart'; 26 import 'package:compiler/src/tree/nodes.dart';
26 import 'package:compiler/src/universe/class_set.dart'; 27 import 'package:compiler/src/universe/class_set.dart';
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 verbose: verbose); 110 verbose: verbose);
110 checkBackendInfo(compilerNormal, compilerDeserialized, verbose: verbose); 111 checkBackendInfo(compilerNormal, compilerDeserialized, verbose: verbose);
111 }); 112 });
112 } 113 }
113 114
114 void checkResolutionEnqueuers( 115 void checkResolutionEnqueuers(
115 BackendUsage backendUsage1, 116 BackendUsage backendUsage1,
116 BackendUsage backendUsage2, 117 BackendUsage backendUsage2,
117 ResolutionEnqueuer enqueuer1, 118 ResolutionEnqueuer enqueuer1,
118 ResolutionEnqueuer enqueuer2, 119 ResolutionEnqueuer enqueuer2,
119 {bool typeEquivalence(ResolutionDartType a, ResolutionDartType b): 120 {bool elementEquivalence(Entity a, Entity b): areElementsEquivalent,
120 areTypesEquivalent, 121 bool typeEquivalence(DartType a, DartType b): areTypesEquivalent,
121 bool elementFilter(Element element), 122 bool elementFilter(Element element),
122 bool verbose: false}) { 123 bool verbose: false}) {
123 checkSets(enqueuer1.processedEntities, enqueuer2.processedEntities, 124 checkSets(enqueuer1.processedEntities, enqueuer2.processedEntities,
124 "Processed element mismatch", areElementsEquivalent, elementFilter: (e) { 125 "Processed element mismatch", elementEquivalence, elementFilter: (e) {
125 return elementFilter != null ? elementFilter(e) : true; 126 return elementFilter != null ? elementFilter(e) : true;
126 }, verbose: verbose); 127 }, verbose: verbose);
127 128
128 ElementResolutionWorldBuilder worldBuilder1 = enqueuer1.worldBuilder; 129 ResolutionWorldBuilderBase worldBuilder1 = enqueuer1.worldBuilder;
129 ElementResolutionWorldBuilder worldBuilder2 = enqueuer2.worldBuilder; 130 ResolutionWorldBuilderBase worldBuilder2 = enqueuer2.worldBuilder;
130 131
131 checkMaps( 132 checkMaps(
132 worldBuilder1.getInstantiationMap(), 133 worldBuilder1.getInstantiationMap(),
133 worldBuilder2.getInstantiationMap(), 134 worldBuilder2.getInstantiationMap(),
134 "Instantiated classes mismatch", 135 "Instantiated classes mismatch",
135 areElementsEquivalent, 136 elementEquivalence,
136 (a, b) => areInstantiationInfosEquivalent(a, b, typeEquivalence), 137 (a, b) => areInstantiationInfosEquivalent(a, b, typeEquivalence),
137 verbose: verbose); 138 verbose: verbose);
138 139
139 checkSets( 140 checkSets(
140 enqueuer1.worldBuilder.directlyInstantiatedClasses, 141 enqueuer1.worldBuilder.directlyInstantiatedClasses,
141 enqueuer2.worldBuilder.directlyInstantiatedClasses, 142 enqueuer2.worldBuilder.directlyInstantiatedClasses,
142 "Directly instantiated classes mismatch", 143 "Directly instantiated classes mismatch",
143 areElementsEquivalent, 144 elementEquivalence,
144 verbose: verbose); 145 verbose: verbose);
145 146
146 checkSets( 147 checkSets(
147 enqueuer1.worldBuilder.instantiatedTypes, 148 enqueuer1.worldBuilder.instantiatedTypes,
148 enqueuer2.worldBuilder.instantiatedTypes, 149 enqueuer2.worldBuilder.instantiatedTypes,
149 "Instantiated types mismatch", 150 "Instantiated types mismatch",
150 typeEquivalence, 151 typeEquivalence,
151 verbose: verbose); 152 verbose: verbose);
152 153
153 checkSets(enqueuer1.worldBuilder.isChecks, enqueuer2.worldBuilder.isChecks, 154 checkSets(enqueuer1.worldBuilder.isChecks, enqueuer2.worldBuilder.isChecks,
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } 456 }
456 457
457 bool areInstancesEquivalent(Instance instance1, Instance instance2, 458 bool areInstancesEquivalent(Instance instance1, Instance instance2,
458 bool typeEquivalence(ResolutionDartType a, ResolutionDartType b)) { 459 bool typeEquivalence(ResolutionDartType a, ResolutionDartType b)) {
459 ResolutionInterfaceType type1 = instance1.type; 460 ResolutionInterfaceType type1 = instance1.type;
460 ResolutionInterfaceType type2 = instance2.type; 461 ResolutionInterfaceType type2 = instance2.type;
461 return typeEquivalence(type1, type2) && 462 return typeEquivalence(type1, type2) &&
462 instance1.kind == instance2.kind && 463 instance1.kind == instance2.kind &&
463 instance1.isRedirection == instance2.isRedirection; 464 instance1.isRedirection == instance2.isRedirection;
464 } 465 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698