type migration: don't migrate method qualifiers type if type parameters are assignable (example: IDEA-150178)

This commit is contained in:
Dmitry Batkovich
2016-01-11 14:35:57 +03:00
parent 1999a6e771
commit 5c37134bf7
4 changed files with 23 additions and 14 deletions
@@ -1,18 +1,11 @@
Types:
PsiField:f : B
PsiMethodCallExpression:f.foo(s) : B
PsiMethodCallExpression:s.add(f) : boolean
PsiParameter:s : java.util.Set<B>
PsiMethodCallExpression:f.foo(s) : A
PsiReferenceExpression:f : B
PsiReferenceExpression:f : B
PsiReferenceExpression:s : java.util.Set<B>
PsiReferenceExpression:s : java.util.Set<B>
Conversions:
f -> $
f.foo(s) -> $
s -> $
s.add(f) -> $
New expression type changes:
Fails:
@@ -2,7 +2,7 @@ import java.util.*;
class Test {
B f;
A bar(Set<B> s) {
A bar(Set<A> s) {
s.add(f);
return f.foo(s);
}
@@ -1,11 +1,8 @@
Types:
PsiField:f : java.util.Map<java.lang.Boolean,java.lang.String>
PsiParameter:b : boolean
PsiReferenceExpression:b : boolean
PsiReferenceExpression:f : java.util.Map<java.lang.Boolean,java.lang.String>
Conversions:
f -> $
New expression type changes:
Fails: