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

Side by Side Diff: tests/compiler/dart2js/kernel/impact_test.dart

Issue 2858223004: Rename KernelElementAdapter and element_adapter.dart to IrToElementMap and ir_map.dart (Closed)
Patch Set: Updated cf. comments. Created 3 years, 7 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.kernel.impact_test; 5 library dart2js.kernel.impact_test;
6 6
7 import 'package:async_helper/async_helper.dart'; 7 import 'package:async_helper/async_helper.dart';
8 import 'package:compiler/src/commandline_options.dart'; 8 import 'package:compiler/src/commandline_options.dart';
9 import 'package:compiler/src/common.dart'; 9 import 'package:compiler/src/common.dart';
10 import 'package:compiler/src/common/names.dart'; 10 import 'package:compiler/src/common/names.dart';
11 import 'package:compiler/src/common/resolution.dart'; 11 import 'package:compiler/src/common/resolution.dart';
12 import 'package:compiler/src/compiler.dart'; 12 import 'package:compiler/src/compiler.dart';
13 import 'package:compiler/src/constants/expressions.dart'; 13 import 'package:compiler/src/constants/expressions.dart';
14 import 'package:compiler/src/elements/elements.dart'; 14 import 'package:compiler/src/elements/elements.dart';
15 import 'package:compiler/src/elements/resolution_types.dart'; 15 import 'package:compiler/src/elements/resolution_types.dart';
16 import 'package:compiler/src/js_backend/backend.dart'; 16 import 'package:compiler/src/js_backend/backend.dart';
17 import 'package:compiler/src/kernel/element_adapter.dart';
18 import 'package:compiler/src/kernel/element_map.dart'; 17 import 'package:compiler/src/kernel/element_map.dart';
18 import 'package:compiler/src/kernel/element_map_impl.dart';
19 import 'package:compiler/src/resolution/registry.dart'; 19 import 'package:compiler/src/resolution/registry.dart';
20 import 'package:compiler/src/resolution/tree_elements.dart'; 20 import 'package:compiler/src/resolution/tree_elements.dart';
21 import 'package:compiler/src/ssa/kernel_impact.dart'; 21 import 'package:compiler/src/ssa/kernel_impact.dart';
22 import 'package:compiler/src/serialization/equivalence.dart'; 22 import 'package:compiler/src/serialization/equivalence.dart';
23 import 'package:compiler/src/universe/call_structure.dart'; 23 import 'package:compiler/src/universe/call_structure.dart';
24 import 'package:compiler/src/universe/feature.dart'; 24 import 'package:compiler/src/universe/feature.dart';
25 import 'package:compiler/src/universe/use.dart'; 25 import 'package:compiler/src/universe/use.dart';
26 import 'package:expect/expect.dart'; 26 import 'package:expect/expect.dart';
27 import 'package:kernel/ast.dart' as ir; 27 import 'package:kernel/ast.dart' as ir;
28 import '../memory_compiler.dart'; 28 import '../memory_compiler.dart';
(...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 entryPoint: entryPoint, 733 entryPoint: entryPoint,
734 memorySourceFiles: SOURCE, 734 memorySourceFiles: SOURCE,
735 options: [ 735 options: [
736 fullTest ? Flags.analyzeAll : Flags.analyzeOnly, 736 fullTest ? Flags.analyzeAll : Flags.analyzeOnly,
737 Flags.useKernel, 737 Flags.useKernel,
738 Flags.enableAssertMessage 738 Flags.enableAssertMessage
739 ]); 739 ]);
740 compiler.resolution.retainCachesForTesting = true; 740 compiler.resolution.retainCachesForTesting = true;
741 Expect.isTrue(await compiler.run(entryPoint)); 741 Expect.isTrue(await compiler.run(entryPoint));
742 JavaScriptBackend backend = compiler.backend; 742 JavaScriptBackend backend = compiler.backend;
743 KernelToElementMap kernelElementMap = 743 KernelToElementMapImpl kernelElementMap =
744 new KernelToElementMap(compiler.reporter, compiler.environment); 744 new KernelToElementMapImpl(compiler.reporter, compiler.environment);
745 kernelElementMap.addProgram(backend.kernelTask.program); 745 kernelElementMap.addProgram(backend.kernelTask.program);
746 746
747 checkLibrary(compiler, kernelElementMap, compiler.mainApp, 747 checkLibrary(compiler, kernelElementMap, compiler.mainApp,
748 fullTest: fullTest); 748 fullTest: fullTest);
749 compiler.libraryLoader.libraries.forEach((LibraryElement library) { 749 compiler.libraryLoader.libraries.forEach((LibraryElement library) {
750 if (library == compiler.mainApp) return; 750 if (library == compiler.mainApp) return;
751 checkLibrary(compiler, kernelElementMap, library, fullTest: fullTest); 751 checkLibrary(compiler, kernelElementMap, library, fullTest: fullTest);
752 }); 752 });
753 }); 753 });
754 } 754 }
755 755
756 void checkLibrary(Compiler compiler, KernelElementAdapter kernelElementAdapter, 756 void checkLibrary(Compiler compiler, KernelToElementMapMixin elementMap,
757 LibraryElement library, 757 LibraryElement library,
758 {bool fullTest: false}) { 758 {bool fullTest: false}) {
759 library.forEachLocalMember((AstElement element) { 759 library.forEachLocalMember((AstElement element) {
760 if (element.isClass) { 760 if (element.isClass) {
761 ClassElement cls = element; 761 ClassElement cls = element;
762 cls.forEachLocalMember((AstElement member) { 762 cls.forEachLocalMember((AstElement member) {
763 checkElement(compiler, kernelElementAdapter, member, 763 checkElement(compiler, elementMap, member, fullTest: fullTest);
764 fullTest: fullTest);
765 }); 764 });
766 } else if (element.isTypedef) { 765 } else if (element.isTypedef) {
767 // Skip typedefs. 766 // Skip typedefs.
768 } else { 767 } else {
769 checkElement(compiler, kernelElementAdapter, element, fullTest: fullTest); 768 checkElement(compiler, elementMap, element, fullTest: fullTest);
770 } 769 }
771 }); 770 });
772 } 771 }
773 772
774 void checkElement(Compiler compiler, KernelElementAdapter kernelElementAdapter, 773 void checkElement(
775 AstElement element, 774 Compiler compiler, KernelToElementMapMixin elementMap, AstElement element,
776 {bool fullTest: false}) { 775 {bool fullTest: false}) {
777 if (!fullTest && element.library.isPlatformLibrary) { 776 if (!fullTest && element.library.isPlatformLibrary) {
778 return; 777 return;
779 } 778 }
780 if (element.isConstructor) { 779 if (element.isConstructor) {
781 ConstructorElement constructor = element; 780 ConstructorElement constructor = element;
782 if (constructor.isRedirectingFactory) { 781 if (constructor.isRedirectingFactory) {
783 // Skip redirecting constructors for now; they might not be supported. 782 // Skip redirecting constructors for now; they might not be supported.
784 return; 783 return;
785 } 784 }
786 } 785 }
787 if (!fullTest && !compiler.resolution.hasResolutionImpact(element)) { 786 if (!fullTest && !compiler.resolution.hasResolutionImpact(element)) {
788 return; 787 return;
789 } 788 }
790 compiler.reporter.withCurrentElement(element.implementation, () { 789 compiler.reporter.withCurrentElement(element.implementation, () {
791 ResolutionImpact astImpact = 790 ResolutionImpact astImpact =
792 compiler.resolution.getResolutionImpact(element); 791 compiler.resolution.getResolutionImpact(element);
793 astImpact = laxImpact(compiler, element, astImpact); 792 astImpact = laxImpact(compiler, element, astImpact);
794 ResolutionImpact kernelImpact1 = build(compiler, element.resolvedAst); 793 ResolutionImpact kernelImpact1 = build(compiler, element.resolvedAst);
795 ir.Member member = getIrMember(compiler, element.resolvedAst); 794 ir.Member member = getIrMember(compiler, element.resolvedAst);
796 Expect.isNotNull(kernelImpact1, 'No impact computed for $element'); 795 Expect.isNotNull(kernelImpact1, 'No impact computed for $element');
797 ResolutionImpact kernelImpact2 = 796 ResolutionImpact kernelImpact2 = buildKernelImpact(member, elementMap);
798 buildKernelImpact(member, kernelElementAdapter);
799 Expect.isNotNull(kernelImpact2, 'No impact computed for $member'); 797 Expect.isNotNull(kernelImpact2, 'No impact computed for $member');
800 testResolutionImpactEquivalence(astImpact, kernelImpact1, 798 testResolutionImpactEquivalence(astImpact, kernelImpact1,
801 strategy: const CheckStrategy()); 799 strategy: const CheckStrategy());
802 KernelEquivalence equivalence = new KernelEquivalence(kernelElementAdapter); 800 KernelEquivalence equivalence = new KernelEquivalence(elementMap);
803 testResolutionImpactEquivalence(astImpact, kernelImpact2, 801 testResolutionImpactEquivalence(astImpact, kernelImpact2,
804 strategy: new CheckStrategy( 802 strategy: new CheckStrategy(
805 elementEquivalence: equivalence.entityEquivalence, 803 elementEquivalence: equivalence.entityEquivalence,
806 typeEquivalence: equivalence.typeEquivalence)); 804 typeEquivalence: equivalence.typeEquivalence));
807 }); 805 });
808 } 806 }
809 807
810 /// Lax the precision of [impact] to meet expectancy of the corresponding impact 808 /// Lax the precision of [impact] to meet expectancy of the corresponding impact
811 /// generated from kernel. 809 /// generated from kernel.
812 ResolutionImpact laxImpact( 810 ResolutionImpact laxImpact(
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 visitList(type.optionalParameterTypes), 936 visitList(type.optionalParameterTypes),
939 type.namedParameters, 937 type.namedParameters,
940 visitList(type.namedParameterTypes)); 938 visitList(type.namedParameterTypes));
941 } 939 }
942 } 940 }
943 941
944 /// Perform unaliasing of all typedefs nested within a [ResolutionDartType]. 942 /// Perform unaliasing of all typedefs nested within a [ResolutionDartType].
945 ResolutionDartType unalias(ResolutionDartType type) { 943 ResolutionDartType unalias(ResolutionDartType type) {
946 return const Unaliaser().visit(type); 944 return const Unaliaser().visit(type);
947 } 945 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/kernel/compiler_helper.dart ('k') | tests/compiler/dart2js/serialization/test_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698