Index: tests/compiler/dart2js/simple_inferrer_test.dart |
diff --git a/tests/compiler/dart2js/simple_inferrer_test.dart b/tests/compiler/dart2js/simple_inferrer_test.dart |
index 471a84a8c578bd283a35575387c1e89ce0fe962f..33fb4fadf6e2cd58475be3b8b3c7b751b51d8d7a 100644 |
--- a/tests/compiler/dart2js/simple_inferrer_test.dart |
+++ b/tests/compiler/dart2js/simple_inferrer_test.dart |
@@ -582,6 +582,20 @@ class B extends A { |
returnInt9() => super.myField; |
} |
+class C { |
+ var myField = 42; |
+ C(); |
+ |
+ returnInt1() => ++myField; |
+ returnInt2() => ++this.myField; |
+ returnInt3() => this.myField += 42; |
+ returnInt4() => myField += 42; |
+ operator[](index) => myField; |
+ operator[]= (index, value) {} |
+ returnInt5() => ++this[0]; |
+ returnInt6() => this[0] += 1; |
+} |
+ |
testCascade1() { |
return [1, 2, 3]..add(4)..add(5); |
} |
@@ -684,6 +698,13 @@ main() { |
..returnInt7() |
..returnInt8() |
..returnInt9(); |
+ |
+ new C()..returnInt1() |
+ ..returnInt2() |
+ ..returnInt3() |
+ ..returnInt4() |
+ ..returnInt5() |
+ ..returnInt6(); |
testReturnElementOfConstList1(); |
testReturnElementOfConstList2(); |
testReturnItselfOrInt(topLevelGetter()); |
@@ -727,8 +748,8 @@ void main() { |
checkReturn('returnInt2', typesTask.uint31Type); |
checkReturn('returnDouble', typesTask.doubleType); |
checkReturn('returnGiveUp', interceptorType); |
- checkReturn('returnInt5', typesTask.positiveIntType); |
- checkReturn('returnInt6', typesTask.positiveIntType); |
+ checkReturn('returnInt5', typesTask.uint32Type); // uint31+uint31->uint32 |
+ checkReturn('returnInt6', typesTask.uint32Type); // uint31+uint31->uint32 |
checkReturn('returnIntOrNull', typesTask.uint31Type.nullable()); |
checkReturn('returnInt3', typesTask.uint31Type); |
checkReturn('returnDynamic', typesTask.dynamicType); |
@@ -789,7 +810,7 @@ void main() { |
checkReturn('testContinue1', interceptorType.nullable()); |
checkReturn('testBreak1', interceptorType.nullable()); |
checkReturn('testContinue2', interceptorType.nullable()); |
- checkReturn('testBreak2', typesTask.positiveIntType.nullable()); |
+ checkReturn('testBreak2', typesTask.uint32Type.nullable()); |
checkReturn('testReturnElementOfConstList1', typesTask.uint31Type); |
checkReturn('testReturnElementOfConstList2', typesTask.uint31Type); |
checkReturn('testReturnItselfOrInt', typesTask.uint31Type); |
@@ -808,24 +829,31 @@ void main() { |
'$className:$methodName'); |
} |
- checkReturnInClass('A', 'returnInt1', typesTask.positiveIntType); |
- checkReturnInClass('A', 'returnInt2', typesTask.positiveIntType); |
- checkReturnInClass('A', 'returnInt3', typesTask.positiveIntType); |
- checkReturnInClass('A', 'returnInt4', typesTask.positiveIntType); |
- checkReturnInClass('A', 'returnInt5', typesTask.positiveIntType); |
- checkReturnInClass('A', 'returnInt6', typesTask.positiveIntType); |
+ checkReturnInClass('A', 'returnInt1', typesTask.uint32Type); |
+ checkReturnInClass('A', 'returnInt2', typesTask.uint32Type); |
+ checkReturnInClass('A', 'returnInt3', typesTask.uint32Type); |
+ checkReturnInClass('A', 'returnInt4', typesTask.uint32Type); |
+ checkReturnInClass('A', 'returnInt5', typesTask.uint32Type); |
+ checkReturnInClass('A', 'returnInt6', typesTask.uint32Type); |
checkReturnInClass('A', '==', interceptorType); |
- checkReturnInClass('B', 'returnInt1', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt2', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt3', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt4', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt5', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt6', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt7', typesTask.positiveIntType); |
- checkReturnInClass('B', 'returnInt8', typesTask.positiveIntType); |
+ checkReturnInClass('B', 'returnInt1', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt2', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt3', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt4', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt5', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt6', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt7', typesTask.uint32Type); |
+ checkReturnInClass('B', 'returnInt8', typesTask.uint32Type); |
checkReturnInClass('B', 'returnInt9', typesTask.uint31Type); |
+ checkReturnInClass('C', 'returnInt1', typesTask.positiveIntType); |
+ checkReturnInClass('C', 'returnInt2', typesTask.positiveIntType); |
+ checkReturnInClass('C', 'returnInt3', typesTask.positiveIntType); |
+ checkReturnInClass('C', 'returnInt4', typesTask.positiveIntType); |
+ checkReturnInClass('C', 'returnInt5', typesTask.positiveIntType); |
+ checkReturnInClass('C', 'returnInt6', typesTask.positiveIntType); |
+ |
checkFactoryConstructor(String className, String factoryName) { |
var cls = findElement(compiler, className); |
var element = cls.localLookup(factoryName); |