| Index: tests/compiler/dart2js/simple_inferrer_test.dart
|
| ===================================================================
|
| --- tests/compiler/dart2js/simple_inferrer_test.dart (revision 21800)
|
| +++ tests/compiler/dart2js/simple_inferrer_test.dart (working copy)
|
| @@ -41,12 +41,12 @@
|
| return a++;
|
| }
|
|
|
| -returnNum3() {
|
| +returnInt5() {
|
| var a = 42;
|
| return ++a;
|
| }
|
|
|
| -returnNum4() {
|
| +returnInt6() {
|
| var a = 42;
|
| a++;
|
| return a;
|
| @@ -65,6 +65,24 @@
|
| return (42);
|
| }
|
|
|
| +returnInt7() {
|
| + return 42.abs();
|
| +}
|
| +
|
| +returnInt8() {
|
| + return 42.remainder(54);
|
| +}
|
| +
|
| +returnDynamic1() {
|
| + // Ensure that we don't intrisify a wrong call to [int.remainder].
|
| + return 42.remainder();
|
| +}
|
| +
|
| +returnDynamic2() {
|
| + // Ensure that we don't intrisify a wrong call to [int.abs].
|
| + return 42.abs(42);
|
| +}
|
| +
|
| get topLevelGetter => 42;
|
| returnDynamic() => topLevelGetter(42);
|
|
|
| @@ -75,26 +93,26 @@
|
|
|
| get myField => 42;
|
| set myField(a) {}
|
| - returnNum1() => ++myField;
|
| - returnNum2() => ++this.myField;
|
| - returnNum3() => this.myField += 42;
|
| - returnNum4() => myField += 42;
|
| + returnInt1() => ++myField;
|
| + returnInt2() => ++this.myField;
|
| + returnInt3() => this.myField += 42;
|
| + returnInt4() => myField += 42;
|
| operator[](index) => 42;
|
| operator[]= (index, value) {}
|
| - returnNum5() => ++this[0];
|
| - returnNum6() => this[0] += 1;
|
| + returnInt5() => ++this[0];
|
| + returnInt6() => this[0] += 1;
|
| }
|
|
|
| class B extends A {
|
| B() : super.generative();
|
| - returnNum1() => ++new A().myField;
|
| - returnNum2() => new A().myField += 4;
|
| - returnNum3() => ++new A()[0];
|
| - returnNum4() => new A()[0] += 42;
|
| - returnNum5() => ++super.myField;
|
| - returnNum6() => super.myField += 4;
|
| - returnNum7() => ++super[0];
|
| - returnNum8() => super[0] += 54;
|
| + returnInt1() => ++new A().myField;
|
| + returnInt2() => new A().myField += 4;
|
| + returnInt3() => ++new A()[0];
|
| + returnInt4() => new A()[0] += 42;
|
| + returnInt5() => ++super.myField;
|
| + returnInt6() => super.myField += 4;
|
| + returnInt7() => ++super[0];
|
| + returnInt8() => super[0] += 54;
|
| }
|
|
|
| main() {
|
| @@ -106,26 +124,30 @@
|
| returnInt4();
|
| returnDouble(true);
|
| returnGiveUp(true);
|
| - returnNum3();
|
| - returnNum4();
|
| + returnInt5();
|
| + returnInt6();
|
| + returnInt7();
|
| + returnInt8();
|
| returnIntOrNull(true);
|
| returnDynamic();
|
| + returnDynamic1();
|
| + returnDynamic2();
|
| new A() == null;
|
| - new A()..returnNum1()
|
| - ..returnNum2()
|
| - ..returnNum3()
|
| - ..returnNum4()
|
| - ..returnNum5()
|
| - ..returnNum6();
|
| + new A()..returnInt1()
|
| + ..returnInt2()
|
| + ..returnInt3()
|
| + ..returnInt4()
|
| + ..returnInt5()
|
| + ..returnInt6();
|
|
|
| - new B()..returnNum1()
|
| - ..returnNum2()
|
| - ..returnNum3()
|
| - ..returnNum4()
|
| - ..returnNum5()
|
| - ..returnNum6()
|
| - ..returnNum7()
|
| - ..returnNum8();
|
| + new B()..returnInt1()
|
| + ..returnInt2()
|
| + ..returnInt3()
|
| + ..returnInt4()
|
| + ..returnInt5()
|
| + ..returnInt6()
|
| + ..returnInt7()
|
| + ..returnInt8();
|
| }
|
| """;
|
|
|
| @@ -148,12 +170,16 @@
|
| checkReturn('returnInt2', typesInferrer.intType);
|
| checkReturn('returnDouble', typesInferrer.doubleType);
|
| checkReturn('returnGiveUp', interceptorType);
|
| - checkReturn('returnNum3', typesInferrer.numType);
|
| - checkReturn('returnNum4', typesInferrer.numType);
|
| + checkReturn('returnInt5', typesInferrer.intType);
|
| + checkReturn('returnInt6', typesInferrer.intType);
|
| checkReturn('returnIntOrNull', typesInferrer.intType.nullable());
|
| checkReturn('returnInt3', typesInferrer.intType);
|
| checkReturn('returnDynamic', typesInferrer.dynamicType);
|
| checkReturn('returnInt4', typesInferrer.intType);
|
| + checkReturn('returnInt7', typesInferrer.intType);
|
| + checkReturn('returnInt8', typesInferrer.intType);
|
| + checkReturn('returnDynamic1', typesInferrer.dynamicType);
|
| + checkReturn('returnDynamic2', typesInferrer.dynamicType);
|
|
|
| checkReturnInClass(String className, String methodName, type) {
|
| var cls = findElement(compiler, className);
|
| @@ -161,22 +187,22 @@
|
| Expect.equals(type, typesInferrer.internal.returnTypeOf[element]);
|
| }
|
|
|
| - checkReturnInClass('A', 'returnNum1', typesInferrer.numType);
|
| - checkReturnInClass('A', 'returnNum2', typesInferrer.numType);
|
| - checkReturnInClass('A', 'returnNum3', typesInferrer.numType);
|
| - checkReturnInClass('A', 'returnNum4', typesInferrer.numType);
|
| - checkReturnInClass('A', 'returnNum5', typesInferrer.numType);
|
| - checkReturnInClass('A', 'returnNum6', typesInferrer.numType);
|
| + checkReturnInClass('A', 'returnInt1', typesInferrer.intType);
|
| + checkReturnInClass('A', 'returnInt2', typesInferrer.intType);
|
| + checkReturnInClass('A', 'returnInt3', typesInferrer.intType);
|
| + checkReturnInClass('A', 'returnInt4', typesInferrer.intType);
|
| + checkReturnInClass('A', 'returnInt5', typesInferrer.intType);
|
| + checkReturnInClass('A', 'returnInt6', typesInferrer.intType);
|
| checkReturnInClass('A', '==', interceptorType);
|
|
|
| - checkReturnInClass('B', 'returnNum1', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum2', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum3', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum4', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum5', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum6', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum7', typesInferrer.numType);
|
| - checkReturnInClass('B', 'returnNum8', typesInferrer.numType);
|
| + checkReturnInClass('B', 'returnInt1', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt2', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt3', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt4', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt5', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt6', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt7', typesInferrer.intType);
|
| + checkReturnInClass('B', 'returnInt8', typesInferrer.intType);
|
|
|
| checkFactoryConstructor(String className) {
|
| var cls = findElement(compiler, className);
|
|
|