mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 03:21:12 +07:00
JavaPsiRecordUtil#getComponentForField (IDEA-CR-56873)
GitOrigin-RevId: 21e4134777640a5cfc807009f833f4eb36d6bd7c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
55a0ff822e
commit
c6057afa02
@@ -17,15 +17,11 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.SuggestedNameInfo;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.impl.light.LightRecordField;
|
||||
import com.intellij.psi.impl.source.javadoc.PsiDocParamRef;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.javadoc.PsiDocTag;
|
||||
import com.intellij.psi.javadoc.PsiDocTagValue;
|
||||
import com.intellij.psi.util.PropertyUtilBase;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.refactoring.introduceField.InplaceIntroduceFieldPopup;
|
||||
import com.intellij.refactoring.introduceVariable.IntroduceVariableBase;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -423,7 +419,8 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor {
|
||||
if (staticContext && (modifierList != null && !modifierList.hasModifierProperty(PsiModifier.STATIC))) continue;
|
||||
|
||||
if (fieldType.equals(varType)) {
|
||||
final String getterName = field instanceof LightRecordField ? field.getName() : PropertyUtilBase.suggestGetterName(field);
|
||||
final String getterName = JavaPsiRecordUtil.getComponentForField(field) != null ?
|
||||
field.getName() : PropertyUtilBase.suggestGetterName(field);
|
||||
if ((psiClass.findMethodsByName(getterName, true).length == 0 ||
|
||||
psiClass.findMethodBySignature(GenerateMembersUtil.generateGetterPrototype(field), true) == null)) {
|
||||
propertyHandlers.add(getterName);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.psi.util;
|
||||
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.light.LightRecordField;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -45,6 +46,15 @@ public class JavaPsiRecordUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param field synthetic field that corresponds to the record component
|
||||
* @return the corresponding record component; null if given field doesn't correspond to the record component.
|
||||
*/
|
||||
@Nullable
|
||||
public static PsiRecordComponent getComponentForField(@NotNull PsiField field) {
|
||||
return field instanceof LightRecordField ? ((LightRecordField)field).getRecordComponent() : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param method method to check
|
||||
* @return true if given method is a compact constructor (has no parameter list),
|
||||
@@ -17,7 +17,7 @@ package org.jetbrains.java.generate.element;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.light.LightRecordField;
|
||||
import com.intellij.psi.util.JavaPsiRecordUtil;
|
||||
import com.intellij.psi.util.PropertyUtilBase;
|
||||
import org.jetbrains.java.generate.psi.PsiAdapter;
|
||||
|
||||
@@ -75,7 +75,7 @@ public class ElementFactory {
|
||||
|
||||
if (PsiAdapter.isConstantField(field)) fe.setConstant(true);
|
||||
if (PsiAdapter.isEnumField(field)) fe.setEnum(true);
|
||||
if (field instanceof LightRecordField) fe.setRecordComponent(true);
|
||||
if (JavaPsiRecordUtil.getComponentForField(field) != null) fe.setRecordComponent(true);
|
||||
PsiModifierList modifiers = field.getModifierList();
|
||||
if (modifiers != null) {
|
||||
if (modifiers.hasModifierProperty(PsiModifier.TRANSIENT)) fe.setModifierTransient(true);
|
||||
|
||||
Reference in New Issue
Block a user