[lombok] using "Pattern Matching for instanceof"

GitOrigin-RevId: 79ef68895ce7c4a25d8a618509ce7ddd330186b1
This commit is contained in:
Michail Plushnikov
2023-01-27 10:47:56 +01:00
committed by intellij-monorepo-bot
parent 89bb0daaa0
commit 26df47c350
12 changed files with 21 additions and 39 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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));

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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());

View File

@@ -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;