|
52 | 52 | import static org.mockito.Matchers.*;
|
53 | 53 | import static org.mockito.Mockito.*;
|
54 | 54 |
|
55 |
| -// FIXME nested |
56 |
| - |
57 | 55 | /**
|
58 | 56 | * Tests for {@link ResolvableType}.
|
59 | 57 | *
|
@@ -822,8 +820,8 @@ public void isAssignableFromCannotBeResolved() throws Exception {
|
822 | 820 | ResolvableType objectType = ResolvableType.forClass(Object.class);
|
823 | 821 | ResolvableType unresolvableVariable = ResolvableType.forField(AssignmentBase.class.getField("o"));
|
824 | 822 | assertThat(unresolvableVariable.resolve(), nullValue());
|
825 |
| - assertAssignable(objectType, unresolvableVariable).equalTo(false); |
826 |
| - assertAssignable(unresolvableVariable, objectType).equalTo(false); |
| 823 | + assertAssignable(objectType, unresolvableVariable).equalTo(true); |
| 824 | + assertAssignable(unresolvableVariable, objectType).equalTo(true); |
827 | 825 | }
|
828 | 826 |
|
829 | 827 | @Test
|
@@ -936,6 +934,7 @@ public void isAssignableFromForWildcards() throws Exception {
|
936 | 934 | ResolvableType object = ResolvableType.forClass(Object.class);
|
937 | 935 | ResolvableType charSequence = ResolvableType.forClass(CharSequence.class);
|
938 | 936 | ResolvableType string = ResolvableType.forClass(String.class);
|
| 937 | + ResolvableType extendsAnon = ResolvableType.forField(AssignmentBase.class.getField("listAnon"), Assignment.class).getGeneric(); |
939 | 938 | ResolvableType extendsObject = ResolvableType.forField(AssignmentBase.class.getField("listxo"), Assignment.class).getGeneric();
|
940 | 939 | ResolvableType extendsCharSequence = ResolvableType.forField(AssignmentBase.class.getField("listxc"), Assignment.class).getGeneric();
|
941 | 940 | ResolvableType extendsString = ResolvableType.forField(AssignmentBase.class.getField("listxs"), Assignment.class).getGeneric();
|
@@ -972,6 +971,8 @@ public void isAssignableFromForWildcards() throws Exception {
|
972 | 971 | equalTo(false, true, true);
|
973 | 972 | assertAssignable(charSequence, extendsObject, extendsCharSequence, extendsString).
|
974 | 973 | equalTo(false, false, false);
|
| 974 | + assertAssignable(extendsAnon, object, charSequence, string). |
| 975 | + equalTo(true, true, true); |
975 | 976 |
|
976 | 977 | // T <= ? super T
|
977 | 978 | assertAssignable(superCharSequence, object, charSequence, string).
|
@@ -1144,6 +1145,8 @@ static class AssignmentBase<O, C, S> {
|
1144 | 1145 |
|
1145 | 1146 | public List<S> lists;
|
1146 | 1147 |
|
| 1148 | + public List<?> listAnon; |
| 1149 | + |
1147 | 1150 | public List<? extends O> listxo;
|
1148 | 1151 |
|
1149 | 1152 | public List<? extends C> listxc;
|
|
0 commit comments