type migration: migrate field in case of migration to super type (IDEA-69760)

This commit is contained in:
Dmitry Batkovich
2016-02-03 13:47:02 +03:00
parent c68137f820
commit af11a27380
8 changed files with 188 additions and 84 deletions
@@ -0,0 +1,11 @@
Types:
PsiField:b : Test.A<java.lang.String>
PsiLocalVariable:val : java.lang.String
PsiReferenceExpression:b : Test.A<java.lang.String>
PsiReferenceExpression:b.value : java.lang.String
Conversions:
b.value -> $
New expression type changes:
Fails:
@@ -0,0 +1,17 @@
public class Test {
A<String> b;
class Base {
}
class A<T> extends Base {
T value;
}
class B<T> extends A<T> {}
void m() {
String val = b.value;
}
}
@@ -0,0 +1,17 @@
public class Test {
B<Long> b;
class Base {
}
class A<T> extends Base {
T value;
}
class B<T> extends A<T> {}
void m() {
Long val = b.value;
}
}
@@ -0,0 +1,10 @@
Types:
PsiField:b : Test.Base<java.lang.String>
PsiLocalVariable:val : T
PsiReferenceExpression:b : Test.Base<java.lang.String>
Conversions:
New expression type changes:
Fails:
b->Test.Base<java.lang.String>
@@ -0,0 +1,17 @@
public class Test {
Base<String> b;
class Base {
}
class A<T> extends Base {
T value;
}
class B<T> extends A<T> {}
void m() {
T val = b.value;
}
}
@@ -0,0 +1,17 @@
public class Test {
B<Long> b;
class Base {
}
class A<T> extends Base {
T value;
}
class B<T> extends A<T> {}
void m() {
Long val = b.value;
}
}