mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
introduce constant: check forward reference fix ( IDEA-84139)
This commit is contained in:
+3
-2
@@ -855,7 +855,7 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PsiField checkForwardRefs(@Nullable PsiExpression initializer, final PsiClass parentClass) {
|
||||
private static PsiField checkForwardRefs(@Nullable final PsiExpression initializer, final PsiClass parentClass) {
|
||||
if (initializer == null) return null;
|
||||
final PsiField[] refConstantFields = new PsiField[1];
|
||||
initializer.accept(new JavaRecursiveElementWalkingVisitor() {
|
||||
@@ -865,7 +865,8 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase
|
||||
final PsiElement resolve = expression.resolve();
|
||||
if (resolve instanceof PsiField &&
|
||||
((PsiField)resolve).hasModifierProperty(PsiModifier.FINAL) &&
|
||||
PsiTreeUtil.isAncestor(parentClass, resolve, false) && ((PsiField)resolve).hasInitializer()) {
|
||||
PsiTreeUtil.isAncestor(parentClass, resolve, false) && ((PsiField)resolve).hasInitializer() &&
|
||||
!PsiTreeUtil.isAncestor(initializer, resolve, false)) {
|
||||
if (refConstantFields[0] == null || refConstantFields[0].getTextOffset() < resolve.getTextOffset()) {
|
||||
refConstantFields[0] = (PsiField)resolve;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user