Index: tests/lib/mirrors/equality_test.dart |
diff --git a/tests/lib/mirrors/equality_test.dart b/tests/lib/mirrors/equality_test.dart |
index 2399032fc4aabedd38a66c6e2342633b8a1b7afe..1a08b599fa2d06f1470fee9fb327ce7d0afea961 100644 |
--- a/tests/lib/mirrors/equality_test.dart |
+++ b/tests/lib/mirrors/equality_test.dart |
@@ -11,6 +11,12 @@ import 'package:expect/expect.dart'; |
class A<T> {} |
class B extends A<int> {} |
+class BadEqualityHash { |
+ int count = 0; |
+ bool operator ==(other) => true; |
+ int get hashCode => count++; |
+} |
+ |
checkEquality(List<Map> equivalenceClasses) { |
for (var equivalenceClass in equivalenceClasses) { |
equivalenceClass.forEach((name, member) { |
@@ -45,8 +51,11 @@ main() { |
.findLibrary(const Symbol('test.class_equality_test')) |
.single; |
- Object o1 = new Object(); |
- Object o2 = new Object(); |
+ var o1 = new Object(); |
+ var o2 = new Object(); |
+ |
+ var badEqualityHash1 = new BadEqualityHash(); |
+ var badEqualityHash2 = new BadEqualityHash(); |
checkEquality([ |
{'reflect(o1)' : reflect(o1), |
@@ -55,9 +64,30 @@ main() { |
{'reflect(o2)' : reflect(o2), |
'reflect(o2), again' : reflect(o2)}, |
+ {'reflect(badEqualityHash1)' : reflect(badEqualityHash1), |
+ 'reflect(badEqualityHash1), again' : reflect(badEqualityHash1)}, |
+ |
+ {'reflect(badEqualityHash2)' : reflect(badEqualityHash2), |
+ 'reflect(badEqualityHash2), again' : reflect(badEqualityHash2)}, |
+ |
+ {'reflect(true)' : reflect(true), |
+ 'reflect(true), again' : reflect(true)}, |
+ |
+ {'reflect(false)' : reflect(false), |
+ 'reflect(false), again' : reflect(false)}, |
+ |
+ {'reflect(null)' : reflect(null), |
+ 'reflect(null), again' : reflect(null)}, |
+ |
+ {'reflect(3.5+4.5)' : reflect(3.5+4.5), |
+ 'reflect(6.5+1.5)' : reflect(6.5+1.5)}, |
+ |
{'reflect(3+4)' : reflect(3+4), |
'reflect(6+1)' : reflect(6+1)}, |
+ {'reflect("foo")' : reflect("foo"), |
+ 'reflect("foo"), again' : reflect("foo")}, |
+ |
{'currentMirrorSystem().voidType' : currentMirrorSystem().voidType, |
'thisLibrary.functions[#subroutine].returnType' : |
thisLibrary.functions[const Symbol('subroutine')].returnType}, |