Index: test/checker/checker_test.dart |
diff --git a/test/checker/checker_test.dart b/test/checker/checker_test.dart |
index fd5f8c023e142026637e620577fe3c0a34f95698..cf38d8f617e69eca3f493724cb7c54865aee9338 100644 |
--- a/test/checker/checker_test.dart |
+++ b/test/checker/checker_test.dart |
@@ -1923,7 +1923,7 @@ void main() { |
}, inferFromOverrides: true); |
}); |
- test('binary operators', () { |
+ test('binary and index operators', () { |
testChecker({ |
'/main.dart': ''' |
class A { |
@@ -1938,6 +1938,7 @@ void main() { |
A operator &(B b) {} |
A operator ^(B b) {} |
A operator |(B b) {} |
+ A operator[](B b) {} |
} |
class B { |
@@ -1979,6 +1980,11 @@ void main() { |
p = (/*info:DynamicCast*/c) && /*info:DynamicCast*/c; |
p = (/*severe:StaticTypeError*/y) && p; |
p = c == y; |
+ |
+ a = a[b]; |
+ a = a[/*info:DynamicCast*/c]; |
+ c = (/*info:DynamicInvoke*/c[b]); |
+ a[/*severe:StaticTypeError*/y]; |
} |
''' |
}); |
@@ -1999,12 +2005,18 @@ void main() { |
A operator &(B b) {} |
A operator ^(B b) {} |
A operator |(B b) {} |
+ D operator [](B index) {} |
+ void operator []=(B index, D value) {} |
} |
class B { |
A operator -(B b) {} |
} |
+ class D { |
+ D operator +(D d) {} |
+ } |
+ |
foo() => new A(); |
test() { |
@@ -2049,6 +2061,14 @@ void main() { |
a ^= b; |
a |= b; |
(/*info:DynamicInvoke*/c += b); |
+ |
+ var d = new D(); |
+ a[b] += d; |
+ a[/*info:DynamicCast*/c] += d; |
+ a[/*severe:StaticTypeError*/z] += d; |
+ a[b] += /*info:DynamicCast*/c; |
+ a[b] += /*severe:StaticTypeError*/z; |
+ (/*info:DynamicInvoke*/(/*info:DynamicInvoke*/c[b]) += d); |
} |
''' |
}); |