mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
[lombok] using "Pattern Matching for instanceof"
GitOrigin-RevId: 79ef68895ce7c4a25d8a618509ce7ddd330186b1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
89bb0daaa0
commit
26df47c350
@@ -37,10 +37,9 @@ public abstract class AbstractReplaceExplicitTypeWithVariableIntentionAction ext
|
||||
return false;
|
||||
}
|
||||
PsiElement declaredElement = declaredElements[0];
|
||||
if (!(declaredElement instanceof PsiLocalVariable)) {
|
||||
if (!(declaredElement instanceof PsiLocalVariable localVariable)) {
|
||||
return false;
|
||||
}
|
||||
PsiLocalVariable localVariable = (PsiLocalVariable) declaredElement;
|
||||
if (!localVariable.hasInitializer()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -27,10 +27,9 @@ public class ReplaceExplicitTypeWithValIntentionAction extends AbstractReplaceEx
|
||||
|
||||
@Override
|
||||
public boolean isAvailableOnVariable(PsiVariable psiVariable) {
|
||||
if (!(psiVariable instanceof PsiParameter)) {
|
||||
if (!(psiVariable instanceof PsiParameter parameter)) {
|
||||
return false;
|
||||
}
|
||||
PsiParameter parameter = (PsiParameter) psiVariable;
|
||||
if (!(parameter.getDeclarationScope() instanceof PsiForeachStatement)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -23,10 +23,9 @@ public class ReplaceExplicitTypeWithVarIntentionAction extends AbstractReplaceEx
|
||||
|
||||
@Override
|
||||
public boolean isAvailableOnVariable(@NotNull PsiVariable psiVariable) {
|
||||
if (!(psiVariable instanceof PsiParameter)) {
|
||||
if (!(psiVariable instanceof PsiParameter psiParameter)) {
|
||||
return false;
|
||||
}
|
||||
PsiParameter psiParameter = (PsiParameter) psiVariable;
|
||||
PsiElement declarationScope = psiParameter.getDeclarationScope();
|
||||
if (!(declarationScope instanceof PsiForStatement) && !(declarationScope instanceof PsiForeachStatement)) {
|
||||
return false;
|
||||
|
||||
@@ -58,8 +58,7 @@ public class CleanupProcessor extends AbstractProcessor {
|
||||
@NotNull String cleanupName,
|
||||
@NotNull ProblemValidationSink problemNewBuilder) {
|
||||
final PsiType psiType = psiVariable.getType();
|
||||
if (psiType instanceof PsiClassType) {
|
||||
final PsiClassType psiClassType = (PsiClassType) psiType;
|
||||
if (psiType instanceof PsiClassType psiClassType) {
|
||||
final PsiClass psiClassOfField = psiClassType.resolve();
|
||||
final PsiMethod[] methods;
|
||||
|
||||
|
||||
@@ -29,10 +29,9 @@ public class ValProcessor extends AbstractProcessor {
|
||||
if (psiVariable instanceof PsiLocalVariable) {
|
||||
return isVal((PsiLocalVariable) psiVariable);
|
||||
}
|
||||
if (!(psiVariable instanceof PsiParameter)) {
|
||||
if (!(psiVariable instanceof PsiParameter psiParameter)) {
|
||||
return false;
|
||||
}
|
||||
PsiParameter psiParameter = (PsiParameter) psiVariable;
|
||||
PsiTypeElement typeElement = psiParameter.getTypeElement();
|
||||
if (typeElement == null) {
|
||||
return false;
|
||||
@@ -44,10 +43,9 @@ public class ValProcessor extends AbstractProcessor {
|
||||
if (psiVariable instanceof PsiLocalVariable) {
|
||||
return isVar((PsiLocalVariable) psiVariable);
|
||||
}
|
||||
if (!(psiVariable instanceof PsiParameter)) {
|
||||
if (!(psiVariable instanceof PsiParameter psiParameter)) {
|
||||
return false;
|
||||
}
|
||||
PsiParameter psiParameter = (PsiParameter) psiVariable;
|
||||
PsiTypeElement typeElement = psiParameter.getTypeElement();
|
||||
if (typeElement == null) {
|
||||
return false;
|
||||
@@ -208,14 +206,14 @@ public class ValProcessor extends AbstractProcessor {
|
||||
PsiType type = psiExpression.getType();
|
||||
// This is how IntelliJ resolves intersection types.
|
||||
// This way auto-completion won't show unavailable methods.
|
||||
if (type instanceof PsiIntersectionType) {
|
||||
PsiType[] conjuncts = ((PsiIntersectionType) type).getConjuncts();
|
||||
if (type instanceof final PsiIntersectionType psiIntersectionType) {
|
||||
PsiType[] conjuncts = psiIntersectionType.getConjuncts();
|
||||
if (conjuncts.length > 0) {
|
||||
return conjuncts[0];
|
||||
}
|
||||
}
|
||||
if (type != null) {
|
||||
//Get upward projection so you don't get types with missing diamonds.
|
||||
//Get upward projection, so you don't get types with missing diamonds.
|
||||
return JavaVarTypeUtil.getUpwardProjection(type);
|
||||
}
|
||||
return null;
|
||||
@@ -227,8 +225,7 @@ public class ValProcessor extends AbstractProcessor {
|
||||
|
||||
private static PsiType processParameterDeclaration(PsiElement parentDeclarationScope) {
|
||||
PsiType result = null;
|
||||
if (parentDeclarationScope instanceof PsiForeachStatement) {
|
||||
final PsiForeachStatement foreachStatement = (PsiForeachStatement) parentDeclarationScope;
|
||||
if (parentDeclarationScope instanceof PsiForeachStatement foreachStatement) {
|
||||
final PsiExpression iteratedValue = foreachStatement.getIteratedValue();
|
||||
if (iteratedValue != null) {
|
||||
result = JavaGenericsUtil.getCollectionItemType(iteratedValue);
|
||||
|
||||
@@ -51,8 +51,7 @@ public class UtilityClassProcessor extends AbstractClassProcessor {
|
||||
if (!(context instanceof PsiFile)) {
|
||||
PsiElement contextUp = context;
|
||||
while (true) {
|
||||
if (contextUp instanceof PsiClass) {
|
||||
PsiClass psiClassUp = (PsiClass) contextUp;
|
||||
if (contextUp instanceof PsiClass psiClassUp) {
|
||||
if (psiClassUp.getContext() instanceof PsiFile) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -27,8 +27,7 @@ public class FieldNameConstantsPredefinedInnerClassFieldProcessor extends Abstra
|
||||
@NotNull
|
||||
@Override
|
||||
public List<? super PsiElement> process(@NotNull PsiClass psiClass, @Nullable String nameHint) {
|
||||
if (psiClass.getParent() instanceof PsiClass) {
|
||||
PsiClass parentClass = (PsiClass) psiClass.getParent();
|
||||
if (psiClass.getParent() instanceof PsiClass parentClass) {
|
||||
PsiAnnotation psiAnnotation = PsiAnnotationSearchUtil.findAnnotation(parentClass, getSupportedAnnotationClasses());
|
||||
if (null != psiAnnotation && supportAnnotationVariant(psiAnnotation)) {
|
||||
ProblemProcessingSink problemBuilder = new ProblemProcessingSink();
|
||||
|
||||
@@ -119,10 +119,9 @@ public final class EqualsAndHashCodeToStringHandler {
|
||||
if (onlyExplicitlyIncluded) {
|
||||
continue;
|
||||
}
|
||||
if (!(psiMember instanceof PsiField)) {
|
||||
if (!(psiMember instanceof PsiField psiField)) {
|
||||
continue;
|
||||
}
|
||||
final PsiField psiField = (PsiField)psiMember;
|
||||
final String fieldName = psiField.getName();
|
||||
|
||||
if (ofProperty.contains(fieldName)) {
|
||||
@@ -158,9 +157,8 @@ public final class EqualsAndHashCodeToStringHandler {
|
||||
newMemberName = includeNameValue;
|
||||
}
|
||||
|
||||
if ((psiMember instanceof PsiMethod)) {
|
||||
final PsiMethod psiMethod = (PsiMethod)psiMember;
|
||||
if (0 == psiMethod.getParameterList().getParametersCount()) {
|
||||
if ((psiMember instanceof PsiMethod psiMethod)) {
|
||||
if (!psiMethod.hasParameters()) {
|
||||
fieldNames2BeReplaced.add(newMemberName);
|
||||
int memberRank = calcMemberRank(includeAnnotation);
|
||||
result.add(new MemberInfo(psiMethod, psiMethod.getName(), memberRank));
|
||||
|
||||
@@ -18,8 +18,7 @@ public class UtilityClassModifierProcessor implements ModifierProcessor {
|
||||
public static boolean isModifierListSupported(@NotNull PsiModifierList modifierList) {
|
||||
PsiElement modifierListParent = modifierList.getParent();
|
||||
|
||||
if (modifierListParent instanceof PsiClass) {
|
||||
PsiClass parentClass = (PsiClass) modifierListParent;
|
||||
if (modifierListParent instanceof PsiClass parentClass) {
|
||||
if (PsiAnnotationSearchUtil.isAnnotatedWith(parentClass, LombokClassNames.UTILITY_CLASS)) {
|
||||
return UtilityClassProcessor.validateOnRightType(parentClass, new ProblemValidationSink());
|
||||
}
|
||||
@@ -44,8 +43,7 @@ public class UtilityClassModifierProcessor implements ModifierProcessor {
|
||||
final PsiElement parent = modifierList.getParent();
|
||||
|
||||
// FINAL
|
||||
if (parent instanceof PsiClass) {
|
||||
PsiClass psiClass = (PsiClass) parent;
|
||||
if (parent instanceof PsiClass psiClass) {
|
||||
if (PsiAnnotationSearchUtil.isAnnotatedWith(psiClass, LombokClassNames.UTILITY_CLASS)) {
|
||||
modifiers.add(PsiModifier.FINAL);
|
||||
}
|
||||
|
||||
@@ -34,8 +34,7 @@ public class LombokImplicitUsageProvider implements ImplicitUsageProvider {
|
||||
}
|
||||
|
||||
private static boolean checkUsage(@NotNull PsiElement element, EnumSet<LombokPsiElementUsage> elementUsages) {
|
||||
if (element instanceof PsiField) {
|
||||
final PsiField psiField = (PsiField)element;
|
||||
if (element instanceof PsiField psiField) {
|
||||
if (isUsedByLombokAnnotations(psiField, psiField, elementUsages) ||
|
||||
isUsedByLombokAnnotations(psiField, psiField.getContainingClass(), elementUsages)) {
|
||||
return true;
|
||||
|
||||
@@ -133,9 +133,7 @@ public class LombokLightFieldBuilder extends LightFieldBuilder implements Synthe
|
||||
|
||||
@Override
|
||||
public boolean isEquivalentTo(PsiElement another) {
|
||||
if (another instanceof LombokLightFieldBuilder) {
|
||||
final LombokLightFieldBuilder anotherLightField = (LombokLightFieldBuilder) another;
|
||||
|
||||
if (another instanceof LombokLightFieldBuilder anotherLightField) {
|
||||
boolean stillEquivalent = getName().equals(anotherLightField.getName()) &&
|
||||
getType().equals(anotherLightField.getType());
|
||||
|
||||
|
||||
@@ -90,14 +90,12 @@ public final class PsiAnnotationUtil {
|
||||
if (psiElement instanceof PsiReferenceExpression) {
|
||||
final PsiElement resolved = ((PsiReferenceExpression) psiElement).resolve();
|
||||
|
||||
if (resolved instanceof PsiEnumConstant) {
|
||||
final PsiEnumConstant psiEnumConstant = (PsiEnumConstant) resolved;
|
||||
if (resolved instanceof PsiEnumConstant psiEnumConstant) {
|
||||
//Enums are supported as VALUE-Strings only
|
||||
if (asClass.isAssignableFrom(String.class)) {
|
||||
value = (T) psiEnumConstant.getName();
|
||||
}
|
||||
} else if (resolved instanceof PsiVariable) {
|
||||
final PsiVariable psiVariable = (PsiVariable) resolved;
|
||||
} else if (resolved instanceof PsiVariable psiVariable) {
|
||||
Object elementValue = psiVariable.computeConstantValue();
|
||||
if (null != elementValue && asClass.isAssignableFrom(elementValue.getClass())) {
|
||||
value = (T) elementValue;
|
||||
|
||||
Reference in New Issue
Block a user