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

Side by Side Diff: tests/compiler/dart2js/type_combination_test.dart

Issue 2935663002: Remove Compiler.commonElements (Closed)
Patch Set: Remove Compiler._commonElements Created 3 years, 6 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 import 'package:async_helper/async_helper.dart'; 5 import 'package:async_helper/async_helper.dart';
6 import 'package:expect/expect.dart'; 6 import 'package:expect/expect.dart';
7 import 'package:compiler/src/js_backend/backend.dart' show JavaScriptBackend; 7 import 'package:compiler/src/js_backend/backend.dart' show JavaScriptBackend;
8 import 'package:compiler/src/js_backend/js_backend.dart'; 8 import 'package:compiler/src/js_backend/js_backend.dart';
9 import 'package:compiler/src/types/types.dart'; 9 import 'package:compiler/src/types/types.dart';
10 import 'package:compiler/src/world.dart'; 10 import 'package:compiler/src/world.dart';
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 742
743 void main() { 743 void main() {
744 asyncTest(() async { 744 asyncTest(() async {
745 MockCompiler compiler = new MockCompiler.internal(); 745 MockCompiler compiler = new MockCompiler.internal();
746 await compiler.init(""" 746 await compiler.init("""
747 class PatternImpl implements Pattern {} 747 class PatternImpl implements Pattern {}
748 """); 748 """);
749 JavaScriptBackend backend = compiler.backend; 749 JavaScriptBackend backend = compiler.backend;
750 WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl(); 750 WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
751 LibraryElement interceptorsLibrary = 751 LibraryElement interceptorsLibrary =
752 compiler.commonElements.interceptorsLibrary; 752 compiler.resolution.commonElements.interceptorsLibrary;
753 interceptorsLibrary.forEachLocalMember((element) { 753 interceptorsLibrary.forEachLocalMember((element) {
754 if (element.isClass) { 754 if (element.isClass) {
755 element.ensureResolved(compiler.resolution); 755 element.ensureResolved(compiler.resolution);
756 impactBuilder 756 impactBuilder
757 .registerTypeUse(new TypeUse.instantiation(element.rawType)); 757 .registerTypeUse(new TypeUse.instantiation(element.rawType));
758 } 758 }
759 }); 759 });
760 LibraryElement mainApp = compiler.mainApp; 760 LibraryElement mainApp = compiler.mainApp;
761 ClassElement patternImplClass = mainApp.find('PatternImpl'); 761 ClassElement patternImplClass = mainApp.find('PatternImpl');
762 patternImplClass.ensureResolved(compiler.resolution); 762 patternImplClass.ensureResolved(compiler.resolution);
763 763
764 impactBuilder.registerTypeUse( 764 impactBuilder.registerTypeUse(new TypeUse.instantiation(
765 new TypeUse.instantiation(compiler.commonElements.mapType())); 765 compiler.resolution.commonElements.mapType()));
766 impactBuilder.registerTypeUse( 766 impactBuilder.registerTypeUse(new TypeUse.instantiation(
767 new TypeUse.instantiation(compiler.commonElements.functionType)); 767 compiler.resolution.commonElements.functionType));
768 impactBuilder 768 impactBuilder
769 .registerTypeUse(new TypeUse.instantiation(patternImplClass.rawType)); 769 .registerTypeUse(new TypeUse.instantiation(patternImplClass.rawType));
770 compiler.enqueuer.resolution.applyImpact(impactBuilder); 770 compiler.enqueuer.resolution.applyImpact(impactBuilder);
771 backend.onResolutionEnd(); 771 backend.onResolutionEnd();
772 compiler.closeResolution(); 772 compiler.closeResolution();
773 ClosedWorld closedWorld = 773 ClosedWorld closedWorld =
774 compiler.resolutionWorldBuilder.closedWorldForTesting; 774 compiler.resolutionWorldBuilder.closedWorldForTesting;
775 775
776 // Grab hold of a supertype for String so we can produce potential 776 // Grab hold of a supertype for String so we can produce potential
777 // string types. 777 // string types.
778 LibraryElement coreLibrary = closedWorld.commonElements.coreLibrary; 778 LibraryElement coreLibrary = closedWorld.commonElements.coreLibrary;
779 patternClass = coreLibrary.find('Pattern'); 779 patternClass = coreLibrary.find('Pattern');
780 780
781 nonPrimitive1 = new TypeMask.nonNullSubtype( 781 nonPrimitive1 = new TypeMask.nonNullSubtype(
782 closedWorld.commonElements.mapClass, closedWorld); 782 closedWorld.commonElements.mapClass, closedWorld);
783 nonPrimitive2 = new TypeMask.nonNullSubtype( 783 nonPrimitive2 = new TypeMask.nonNullSubtype(
784 closedWorld.commonElements.functionClass, closedWorld); 784 closedWorld.commonElements.functionClass, closedWorld);
785 potentialArray = 785 potentialArray =
786 new TypeMask.subtype(closedWorld.commonElements.listClass, closedWorld); 786 new TypeMask.subtype(closedWorld.commonElements.listClass, closedWorld);
787 potentialString = new TypeMask.subtype(patternClass, closedWorld); 787 potentialString = new TypeMask.subtype(patternClass, closedWorld);
788 jsInterceptor = new TypeMask.nonNullSubclass( 788 jsInterceptor = new TypeMask.nonNullSubclass(
789 compiler.commonElements.jsInterceptorClass, closedWorld); 789 closedWorld.commonElements.jsInterceptorClass, closedWorld);
790 jsArrayOrNull = new TypeMask.subclass( 790 jsArrayOrNull = new TypeMask.subclass(
791 compiler.commonElements.jsArrayClass, closedWorld); 791 closedWorld.commonElements.jsArrayClass, closedWorld);
792 jsReadableArray = new TypeMask.nonNullSubclass( 792 jsReadableArray = new TypeMask.nonNullSubclass(
793 compiler.commonElements.jsArrayClass, closedWorld); 793 closedWorld.commonElements.jsArrayClass, closedWorld);
794 jsMutableArrayOrNull = new TypeMask.subclass( 794 jsMutableArrayOrNull = new TypeMask.subclass(
795 compiler.commonElements.jsMutableArrayClass, closedWorld); 795 closedWorld.commonElements.jsMutableArrayClass, closedWorld);
796 jsMutableArray = new TypeMask.nonNullSubclass( 796 jsMutableArray = new TypeMask.nonNullSubclass(
797 compiler.commonElements.jsMutableArrayClass, closedWorld); 797 closedWorld.commonElements.jsMutableArrayClass, closedWorld);
798 jsFixedArrayOrNull = new TypeMask.exact( 798 jsFixedArrayOrNull = new TypeMask.exact(
799 compiler.commonElements.jsFixedArrayClass, closedWorld); 799 closedWorld.commonElements.jsFixedArrayClass, closedWorld);
800 jsFixedArray = new TypeMask.nonNullExact( 800 jsFixedArray = new TypeMask.nonNullExact(
801 compiler.commonElements.jsFixedArrayClass, closedWorld); 801 closedWorld.commonElements.jsFixedArrayClass, closedWorld);
802 jsExtendableArrayOrNull = new TypeMask.exact( 802 jsExtendableArrayOrNull = new TypeMask.exact(
803 compiler.commonElements.jsExtendableArrayClass, closedWorld); 803 closedWorld.commonElements.jsExtendableArrayClass, closedWorld);
804 jsExtendableArray = new TypeMask.nonNullExact( 804 jsExtendableArray = new TypeMask.nonNullExact(
805 compiler.commonElements.jsExtendableArrayClass, closedWorld); 805 closedWorld.commonElements.jsExtendableArrayClass, closedWorld);
806 jsUnmodifiableArrayOrNull = new TypeMask.exact( 806 jsUnmodifiableArrayOrNull = new TypeMask.exact(
807 compiler.commonElements.jsUnmodifiableArrayClass, closedWorld); 807 closedWorld.commonElements.jsUnmodifiableArrayClass, closedWorld);
808 jsUnmodifiableArray = new TypeMask.nonNullExact( 808 jsUnmodifiableArray = new TypeMask.nonNullExact(
809 compiler.commonElements.jsUnmodifiableArrayClass, closedWorld); 809 closedWorld.commonElements.jsUnmodifiableArrayClass, closedWorld);
810 jsIndexableOrNull = new TypeMask.subtype( 810 jsIndexableOrNull = new TypeMask.subtype(
811 compiler.commonElements.jsIndexableClass, closedWorld); 811 closedWorld.commonElements.jsIndexableClass, closedWorld);
812 jsIndexable = new TypeMask.nonNullSubtype( 812 jsIndexable = new TypeMask.nonNullSubtype(
813 compiler.commonElements.jsIndexableClass, closedWorld); 813 closedWorld.commonElements.jsIndexableClass, closedWorld);
814 jsInterceptorOrNull = new TypeMask.subclass( 814 jsInterceptorOrNull = new TypeMask.subclass(
815 compiler.commonElements.jsInterceptorClass, closedWorld); 815 closedWorld.commonElements.jsInterceptorClass, closedWorld);
816 jsStringOrNull = 816 jsStringOrNull = new TypeMask.exact(
817 new TypeMask.exact(compiler.commonElements.jsStringClass, closedWorld); 817 closedWorld.commonElements.jsStringClass, closedWorld);
818 jsString = new TypeMask.nonNullExact( 818 jsString = new TypeMask.nonNullExact(
819 compiler.commonElements.jsStringClass, closedWorld); 819 closedWorld.commonElements.jsStringClass, closedWorld);
820 jsBoolean = new TypeMask.nonNullExact( 820 jsBoolean = new TypeMask.nonNullExact(
821 compiler.commonElements.jsBoolClass, closedWorld); 821 closedWorld.commonElements.jsBoolClass, closedWorld);
822 jsNumber = new TypeMask.nonNullSubclass( 822 jsNumber = new TypeMask.nonNullSubclass(
823 compiler.commonElements.jsNumberClass, closedWorld); 823 closedWorld.commonElements.jsNumberClass, closedWorld);
824 jsInteger = new TypeMask.nonNullExact( 824 jsInteger = new TypeMask.nonNullExact(
825 compiler.commonElements.jsIntClass, closedWorld); 825 closedWorld.commonElements.jsIntClass, closedWorld);
826 jsDouble = new TypeMask.nonNullExact( 826 jsDouble = new TypeMask.nonNullExact(
827 compiler.commonElements.jsDoubleClass, closedWorld); 827 closedWorld.commonElements.jsDoubleClass, closedWorld);
828 jsBooleanOrNull = 828 jsBooleanOrNull =
829 new TypeMask.exact(compiler.commonElements.jsBoolClass, closedWorld); 829 new TypeMask.exact(closedWorld.commonElements.jsBoolClass, closedWorld);
830 jsNumberOrNull = new TypeMask.subclass( 830 jsNumberOrNull = new TypeMask.subclass(
831 compiler.commonElements.jsNumberClass, closedWorld); 831 closedWorld.commonElements.jsNumberClass, closedWorld);
832 jsIntegerOrNull = 832 jsIntegerOrNull =
833 new TypeMask.exact(compiler.commonElements.jsIntClass, closedWorld); 833 new TypeMask.exact(closedWorld.commonElements.jsIntClass, closedWorld);
834 jsDoubleOrNull = 834 jsDoubleOrNull = new TypeMask.exact(
835 new TypeMask.exact(compiler.commonElements.jsDoubleClass, closedWorld); 835 closedWorld.commonElements.jsDoubleClass, closedWorld);
836 nullType = const TypeMask.empty(); 836 nullType = const TypeMask.empty();
837 objectType = new TypeMask.nonNullSubclass( 837 objectType = new TypeMask.nonNullSubclass(
838 closedWorld.commonElements.objectClass, closedWorld); 838 closedWorld.commonElements.objectClass, closedWorld);
839 emptyType = const TypeMask.nonNullEmpty(); 839 emptyType = const TypeMask.nonNullEmpty();
840 dynamicType = new TypeMask.subclass( 840 dynamicType = new TypeMask.subclass(
841 closedWorld.commonElements.objectClass, closedWorld); 841 closedWorld.commonElements.objectClass, closedWorld);
842 842
843 Expect.notEquals( 843 Expect.notEquals(
844 emptyType, nonPrimitive1, "nonPrimitive1 expected to be non-empty."); 844 emptyType, nonPrimitive1, "nonPrimitive1 expected to be non-empty.");
845 Expect.notEquals(jsStringOrNull, potentialString, 845 Expect.notEquals(jsStringOrNull, potentialString,
846 "potentialString expected not to be exact JSString"); 846 "potentialString expected not to be exact JSString");
847 Expect.notEquals(jsArrayOrNull, potentialArray, 847 Expect.notEquals(jsArrayOrNull, potentialArray,
848 "potentialArray expected not to be JSArray subclass"); 848 "potentialArray expected not to be JSArray subclass");
849 849
850 testUnion(compiler); 850 testUnion(compiler);
851 testIntersection(compiler); 851 testIntersection(compiler);
852 testRegressions(compiler); 852 testRegressions(compiler);
853 }); 853 });
854 } 854 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/type_checker_test.dart ('k') | tests/compiler/dart2js/type_mask_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698