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

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

Issue 1182053010: Revert "Split TypedSelector into Selector and TypeMask." (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 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 'dart:async'; 5 import 'dart:async';
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import "package:async_helper/async_helper.dart"; 7 import "package:async_helper/async_helper.dart";
8 import 'package:compiler/src/types/types.dart'; 8 import 'package:compiler/src/types/types.dart';
9 import 'package:compiler/src/inferrer/concrete_types_inferrer.dart'; 9 import 'package:compiler/src/inferrer/concrete_types_inferrer.dart';
10 10
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 * Checks that [: className#fieldName :]'s inferred type is the unknown 137 * Checks that [: className#fieldName :]'s inferred type is the unknown
138 * concrete type. 138 * concrete type.
139 */ 139 */
140 void checkFieldHasUknownType(String className, String fieldName) { 140 void checkFieldHasUknownType(String className, String fieldName) {
141 Expect.isTrue( 141 Expect.isTrue(
142 inferrer.inferredFieldTypes[findField(className, fieldName)] 142 inferrer.inferredFieldTypes[findField(className, fieldName)]
143 .isUnknown()); 143 .isUnknown());
144 } 144 }
145 145
146 /** Checks that the inferred type for [selector] is [mask]. */ 146 /** Checks that the inferred type for [selector] is [mask]. */
147 void checkSelectorHasType(Selector selector, 147 void checkSelectorHasType(Selector selector, TypeMask mask) {
148 TypeMask mask, 148 Expect.equals(mask, inferrer.getTypeOfSelector(selector));
149 TypeMask expectedMask) {
150 Expect.equals(expectedMask, inferrer.getTypeOfSelector(selector, mask));
151 } 149 }
152 } 150 }
153 151
154 const String DYNAMIC = '"__dynamic_for_test"'; 152 const String DYNAMIC = '"__dynamic_for_test"';
155 153
156 Future<AnalysisResult> analyze(String code, {int maxConcreteTypeSize: 1000}) { 154 Future<AnalysisResult> analyze(String code, {int maxConcreteTypeSize: 1000}) {
157 Uri uri = new Uri(scheme: 'dart', path: 'test'); 155 Uri uri = new Uri(scheme: 'dart', path: 'test');
158 MockCompiler compiler = new MockCompiler.internal( 156 MockCompiler compiler = new MockCompiler.internal(
159 enableConcreteTypeInference: true, 157 enableConcreteTypeInference: true,
160 maxConcreteTypeSize: maxConcreteTypeSize); 158 maxConcreteTypeSize: maxConcreteTypeSize);
(...skipping 1482 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 ClassElement c = findElement(result.compiler, 'C'); 1641 ClassElement c = findElement(result.compiler, 'C');
1644 ClassElement xy = findElement(result.compiler, 'XY'); 1642 ClassElement xy = findElement(result.compiler, 'XY');
1645 ClassElement x = findElement(result.compiler, 'X'); 1643 ClassElement x = findElement(result.compiler, 'X');
1646 ClassElement y = findElement(result.compiler, 'Y'); 1644 ClassElement y = findElement(result.compiler, 'Y');
1647 ClassElement z = findElement(result.compiler, 'Z'); 1645 ClassElement z = findElement(result.compiler, 'Z');
1648 1646
1649 Selector foo = new Selector.call("foo", null, 0); 1647 Selector foo = new Selector.call("foo", null, 0);
1650 1648
1651 result.checkSelectorHasType( 1649 result.checkSelectorHasType(
1652 foo, 1650 foo,
1653 null,
1654 new TypeMask.unionOf([a, b, c] 1651 new TypeMask.unionOf([a, b, c]
1655 .map((cls) => new TypeMask.nonNullExact(cls, world)), 1652 .map((cls) => new TypeMask.nonNullExact(cls, world)),
1656 result.compiler.world)); 1653 result.compiler.world));
1657 result.checkSelectorHasType( 1654 result.checkSelectorHasType(
1658 foo, 1655 new TypedSelector.subclass(x, foo, world),
1659 new TypeMask.subclass(x, world),
1660 new TypeMask.nonNullExact(b, world)); 1656 new TypeMask.nonNullExact(b, world));
1661 result.checkSelectorHasType( 1657 result.checkSelectorHasType(
1662 foo, 1658 new TypedSelector.subclass(y, foo, world),
1663 new TypeMask.subclass(y, world),
1664 new TypeMask.nonNullExact(c, world)); 1659 new TypeMask.nonNullExact(c, world));
1665 result.checkSelectorHasType( 1660 result.checkSelectorHasType(
1666 foo, 1661 new TypedSelector.subclass(z, foo, world),
1667 new TypeMask.subclass(z, world),
1668 new TypeMask.nonNullExact(a, world)); 1662 new TypeMask.nonNullExact(a, world));
1669 result.checkSelectorHasType( 1663 result.checkSelectorHasType(
1670 foo, 1664 new TypedSelector.subclass(xy, foo, world),
1671 new TypeMask.subclass(xy, world),
1672 new TypeMask.unionOf([b, c].map((cls) => 1665 new TypeMask.unionOf([b, c].map((cls) =>
1673 new TypeMask.nonNullExact(cls, world)), world)); 1666 new TypeMask.nonNullExact(cls, world)), world));
1674 1667
1675 result.checkSelectorHasType(new Selector.call("bar", null, 0), null, null); 1668 result.checkSelectorHasType(new Selector.call("bar", null, 0), null);
1676 }); 1669 });
1677 } 1670 }
1678 1671
1679 testEqualsNullSelector() { 1672 testEqualsNullSelector() {
1680 final String source = r""" 1673 final String source = r"""
1681 main() { 1674 main() {
1682 1 == null; 1675 1 == null;
1683 } 1676 }
1684 """; 1677 """;
1685 return analyze(source).then((result) { 1678 return analyze(source).then((result) {
1686 ClassElement bool = result.compiler.backend.boolImplementation; 1679 ClassElement bool = result.compiler.backend.boolImplementation;
1687 result.checkSelectorHasType(new Selector.binaryOperator('=='), 1680 result.checkSelectorHasType(new Selector.binaryOperator('=='),
1688 null,
1689 new TypeMask.nonNullExact(bool, 1681 new TypeMask.nonNullExact(bool,
1690 result.compiler.world)); 1682 result.compiler.world));
1691 }); 1683 });
1692 } 1684 }
1693 1685
1694 testMixins() { 1686 testMixins() {
1695 final String source = r""" 1687 final String source = r"""
1696 class A { 1688 class A {
1697 foo() => "abc"; 1689 foo() => "abc";
1698 get x => 42; 1690 get x => 42;
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
2143 testClosures10, 2135 testClosures10,
2144 testClosures11, 2136 testClosures11,
2145 testClosures12, 2137 testClosures12,
2146 testRefinement, 2138 testRefinement,
2147 testDefaultArguments, 2139 testDefaultArguments,
2148 testSuperConstructorCall, 2140 testSuperConstructorCall,
2149 testSuperConstructorCall2, 2141 testSuperConstructorCall2,
2150 testSuperConstructorCall3, 2142 testSuperConstructorCall3,
2151 ], (f) => f())); 2143 ], (f) => f()));
2152 } 2144 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/compiler_helper.dart ('k') | tests/compiler/dart2js/gvn_dynamic_field_get_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698