mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not try to migrate to null types (EA-26870 - IAE: TypeConversionUtil.isAssignable)
This commit is contained in:
+6
-2
@@ -435,18 +435,22 @@ class TypeMigrationStatementProcessor extends JavaRecursiveElementVisitor {
|
||||
final boolean isCovariantPosition) {
|
||||
final TypeView right = new TypeView(value);
|
||||
final TypeView left = new TypeView(variable, varSubstitutor, evalSubstitutor);
|
||||
final PsiType declarationType = left.getType();
|
||||
|
||||
switch (TypeInfection.getInfection(left, right)) {
|
||||
case TypeInfection.NONE_INFECTED:
|
||||
break;
|
||||
|
||||
case TypeInfection.LEFT_INFECTED:
|
||||
myLabeler.migrateExpressionType(value, left.getType(), myStatement, TypeConversionUtil.isAssignable(left.getType(), right.getType()), true);
|
||||
final PsiType valueType = right.getType();
|
||||
if (valueType != null && declarationType != null) {
|
||||
myLabeler.migrateExpressionType(value, declarationType, myStatement, TypeConversionUtil.isAssignable(declarationType, valueType), true);
|
||||
}
|
||||
break;
|
||||
|
||||
case TypeInfection.RIGHT_INFECTED:
|
||||
PsiType psiType = migrationType != null ? migrationType : right.getType();
|
||||
if (!myLabeler.addMigrationRoot(variable, psiType, myStatement, TypeConversionUtil.isAssignable(left.getType(), psiType), true)) {
|
||||
if (psiType != null && declarationType != null && !myLabeler.addMigrationRoot(variable, psiType, myStatement, TypeConversionUtil.isAssignable(declarationType, psiType), true)) {
|
||||
myLabeler.convertExpression(value, psiType, left.getType(), isCovariantPosition);
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user