mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 06:39:38 +07:00
[java] Use Java 5 features
GitOrigin-RevId: 7db6edf696525b8d22dadf66fe12bd867068a6eb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
745a271ea1
commit
6e80ef3cc7
@@ -25,6 +25,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -41,7 +42,7 @@ public final class SuppressWarningsFoldingBuilder extends FoldingBuilderEx {
|
||||
if (!(root instanceof PsiJavaFile) || quick || !JavaCodeFoldingSettings.getInstance().isCollapseSuppressWarnings()) {
|
||||
return FoldingDescriptor.EMPTY_ARRAY;
|
||||
}
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(root)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, root)) {
|
||||
return FoldingDescriptor.EMPTY_ARRAY;
|
||||
}
|
||||
final List<FoldingDescriptor> result = new ArrayList<>();
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
|
||||
import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
import com.intellij.codeInsight.intention.IntentionAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
@@ -58,7 +59,7 @@ public final class AddTypeArgumentsFix extends MethodArgumentFix {
|
||||
|
||||
@Nullable
|
||||
public static PsiExpression addTypeArguments(@NotNull PsiExpression expression, @Nullable PsiType toType, boolean withShortening) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(expression)) return null;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.GENERICS, expression)) return null;
|
||||
|
||||
PsiExpression orig = expression;
|
||||
expression = PsiUtil.skipParenthesizedExprDown(expression);
|
||||
|
||||
@@ -155,7 +155,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement implements Lo
|
||||
|
||||
public static boolean isAvailable(@NotNull PsiModifierListOwner modifierListOwner, @NotNull String annotationFQN) {
|
||||
if (!modifierListOwner.isValid()) return false;
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(modifierListOwner)) return false;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, modifierListOwner)) return false;
|
||||
|
||||
if (modifierListOwner instanceof PsiParameter && ((PsiParameter)modifierListOwner).getTypeElement() == null) {
|
||||
if (modifierListOwner.getParent() instanceof PsiParameterList &&
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.openapi.projectRoots.JavaSdkVersionUtil;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.PsiVariableEx;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
@@ -159,7 +160,7 @@ public final class JavaSuppressionUtil {
|
||||
|
||||
@NotNull
|
||||
private static Collection<String> getInspectionIdsSuppressedInAnnotation(@NotNull PsiModifierListOwner owner) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(owner)) return Collections.emptyList();
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, owner)) return Collections.emptyList();
|
||||
PsiModifierList modifierList = owner.getModifierList();
|
||||
return getInspectionIdsSuppressedInAnnotation(modifierList);
|
||||
}
|
||||
@@ -292,7 +293,7 @@ public final class JavaSuppressionUtil {
|
||||
JavaSdkVersion version = JavaSdkVersionUtil.getJavaSdkVersion(jdk);
|
||||
if (version == null) return false;
|
||||
boolean is_1_5 = version.isAtLeast(JavaSdkVersion.JDK_1_5);
|
||||
return DaemonCodeAnalyzerSettings.getInstance().isSuppressWarnings() && is_1_5 && PsiUtil.isLanguageLevel5OrHigher(file);
|
||||
return DaemonCodeAnalyzerSettings.getInstance().isSuppressWarnings() && is_1_5 && PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, file);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.codeInspection.miscGenerics;
|
||||
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -21,7 +22,7 @@ public abstract class GenericsInspectionToolBase extends AbstractBaseJavaLocalIn
|
||||
@Override
|
||||
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
|
||||
PsiFile file = holder.getFile();
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(file)) return PsiElementVisitor.EMPTY_VISITOR;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.GENERICS, file)) return PsiElementVisitor.EMPTY_VISITOR;
|
||||
|
||||
return super.buildVisitor(holder, isOnTheFly);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil;
|
||||
import com.intellij.codeInspection.util.InspectionMessage;
|
||||
import com.intellij.java.analysis.JavaAnalysisBundle;
|
||||
import com.intellij.openapi.util.NullableLazyValue;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -45,7 +46,7 @@ public final class SuspiciousMethodCallUtil {
|
||||
|
||||
addSingleParameterMethod(patternMethods, collectionClass, "contains", object);
|
||||
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(collectionClass)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.GENERICS, collectionClass)) {
|
||||
PsiClassType wildcardCollection = javaPsiFacade.getElementFactory().createType(collectionClass, PsiWildcardType.createUnbounded(manager));
|
||||
addSingleParameterMethod(patternMethods, collectionClass, "removeAll", wildcardCollection);
|
||||
addSingleParameterMethod(patternMethods, collectionClass, "retainAll", wildcardCollection);
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
@@ -46,9 +47,7 @@ import org.jetbrains.annotations.PropertyKey;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static com.intellij.codeInsight.AnnotationUtil.CHECK_EXTERNAL;
|
||||
import static com.intellij.codeInsight.AnnotationUtil.CHECK_HIERARCHY;
|
||||
import static com.intellij.codeInsight.AnnotationUtil.CHECK_TYPE;
|
||||
import static com.intellij.codeInsight.AnnotationUtil.*;
|
||||
import static com.intellij.patterns.PsiJavaPatterns.psiElement;
|
||||
import static com.intellij.patterns.PsiJavaPatterns.psiMethod;
|
||||
import static com.intellij.util.ObjectUtils.tryCast;
|
||||
@@ -102,7 +101,7 @@ public class NullableStuffInspectionBase extends AbstractBaseJavaLocalInspection
|
||||
@NotNull
|
||||
public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly) {
|
||||
final PsiFile file = holder.getFile();
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(file) || nullabilityAnnotationsNotAvailable(file)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, file) || nullabilityAnnotationsNotAvailable(file)) {
|
||||
return PsiElementVisitor.EMPTY_VISITOR;
|
||||
}
|
||||
return new JavaElementVisitor() {
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
@@ -58,7 +59,7 @@ public final class ComparableImplementedButEqualsNotOverriddenInspection extends
|
||||
protected void applyFix(@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater) {
|
||||
final PsiClass aClass = (PsiClass)startElement.getParent();
|
||||
final @NonNls StringBuilder methodText = new StringBuilder();
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(aClass)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, aClass)) {
|
||||
methodText.append("@java.lang.Override ");
|
||||
}
|
||||
methodText.append("public ");
|
||||
|
||||
@@ -49,7 +49,7 @@ public final class UtilityClassCanBeEnumInspection extends BaseInspection implem
|
||||
|
||||
@Override
|
||||
protected void applyFix(@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(element)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ENUMS, element)) {
|
||||
return;
|
||||
}
|
||||
final PsiElement parent = element.getParent();
|
||||
|
||||
@@ -18,9 +18,10 @@ package com.siyeh.ig.inheritance;
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil;
|
||||
import com.intellij.codeInspection.CleanupLocalInspectionTool;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.JavaPsiPatternUtil;
|
||||
@@ -36,6 +37,8 @@ import com.siyeh.ig.psiutils.MethodUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public final class TypeParameterExtendsFinalClassInspection extends BaseInspection implements CleanupLocalInspectionTool {
|
||||
|
||||
@Override
|
||||
@@ -102,8 +105,8 @@ public final class TypeParameterExtendsFinalClassInspection extends BaseInspecti
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldInspect(@NotNull PsiFile file) {
|
||||
return PsiUtil.isLanguageLevel5OrHigher(file);
|
||||
public @NotNull Set<@NotNull JavaFeature> requiredFeatures() {
|
||||
return Set.of(JavaFeature.GENERICS);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -895,7 +895,7 @@ public class JavaKeywordCompletion {
|
||||
if (PsiUtil.isAvailable(JavaFeature.RECORDS, myPosition)) {
|
||||
keywords.add(PsiKeyword.RECORD);
|
||||
}
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(myPosition)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.ENUMS, myPosition)) {
|
||||
keywords.add(PsiKeyword.ENUM);
|
||||
}
|
||||
String className = recommendClassName();
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.NotNullLazyValue;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.filters.ElementFilter;
|
||||
import com.intellij.psi.filters.getters.ExpectedTypesGetter;
|
||||
@@ -155,7 +156,7 @@ public final class JavaCompletionProcessor implements PsiScopeProcessor, Element
|
||||
return true;
|
||||
}
|
||||
|
||||
if (element instanceof PsiMethod method && PsiTypesUtil.isGetClass(method) && PsiUtil.isLanguageLevel5OrHigher(myElement)) {
|
||||
if (element instanceof PsiMethod method && PsiTypesUtil.isGetClass(method) && PsiUtil.isAvailable(JavaFeature.GENERICS, myElement)) {
|
||||
PsiType patchedType = PsiTypesUtil.createJavaLangClassType(myElement, myQualifierType, false);
|
||||
if (patchedType != null) {
|
||||
element = new LightMethodBuilder(element.getManager(), method.getName()).
|
||||
|
||||
@@ -3,8 +3,12 @@ package com.intellij.codeInsight.daemon.impl.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.daemon.QuickFixBundle;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.modcommand.*;
|
||||
import com.intellij.modcommand.ActionContext;
|
||||
import com.intellij.modcommand.ModCommand;
|
||||
import com.intellij.modcommand.Presentation;
|
||||
import com.intellij.modcommand.PsiBasedModCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -113,7 +117,7 @@ public class CreateTypeParameterFromUsageFix extends PsiBasedModCommandAction<Ps
|
||||
private record Context(@NotNull List<PsiNameIdentifierOwner> placesToAdd, @NotNull String typeName) {
|
||||
@Nullable
|
||||
static Context from(@NotNull PsiJavaCodeReferenceElement element, boolean findFirstOnly) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(element)) return null;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.GENERICS, element)) return null;
|
||||
if (element.isQualified()) return null;
|
||||
PsiElement container =
|
||||
PsiTreeUtil.getParentOfType(element, PsiReferenceList.class, PsiClass.class, PsiMethod.class, PsiClassInitializer.class,
|
||||
|
||||
@@ -73,7 +73,7 @@ public class DefaultQuickFixProvider extends UnresolvedReferenceQuickFixProvider
|
||||
|
||||
SurroundWithQuotesAnnotationParameterValueFix.register(registrar, ref);
|
||||
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(ref)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.GENERICS, ref)) {
|
||||
registrar.register(new CreateTypeParameterFromUsageFix(ref).asIntention());
|
||||
}
|
||||
}
|
||||
@@ -103,8 +103,10 @@ public class DefaultQuickFixProvider extends UnresolvedReferenceQuickFixProvider
|
||||
}
|
||||
|
||||
result.add(new CreateClassFromUsageFix(ref, CreateClassKind.INTERFACE));
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(ref)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.ENUMS, ref)) {
|
||||
result.add(new CreateClassFromUsageFix(ref, CreateClassKind.ENUM));
|
||||
}
|
||||
if (PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, ref)) {
|
||||
result.add(new CreateClassFromUsageFix(ref, CreateClassKind.ANNOTATION));
|
||||
}
|
||||
if (PsiUtil.isAvailable(JavaFeature.RECORDS, ref)) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packageDependencies.DependencyValidationManager;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.light.LightJavaModule;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -324,7 +325,7 @@ public abstract class OrderEntryFix implements IntentionAction, LocalQuickFix {
|
||||
|
||||
@NotNull
|
||||
private static ThreeState isReferenceToAnnotation(final @NotNull PsiElement psiElement) {
|
||||
if (psiElement.getLanguage() == JavaLanguage.INSTANCE && !PsiUtil.isLanguageLevel5OrHigher(psiElement)) {
|
||||
if (psiElement.getLanguage() == JavaLanguage.INSTANCE && !PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, psiElement)) {
|
||||
return ThreeState.NO;
|
||||
}
|
||||
UElement uElement = UastContextKt.toUElement(psiElement);
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiModificationTracker;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -43,7 +44,7 @@ abstract class StaticImportMemberFix<T extends PsiMember, R extends PsiElement>
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed();
|
||||
Project project = file.getProject();
|
||||
myReferencePointer = SmartPointerManager.getInstance(project).createSmartPsiElementPointer(reference);
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(file)
|
||||
if (!PsiUtil.isAvailable(JavaFeature.STATIC_IMPORTS, file)
|
||||
|| !(file instanceof PsiJavaFile)
|
||||
|| getElement() == null
|
||||
|| !reference.isValid()
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
@@ -82,7 +83,7 @@ public class GenerateEqualsHelper implements Runnable {
|
||||
private static boolean shouldAddOverrideAnnotation(PsiElement context) {
|
||||
JavaCodeStyleSettings style = JavaCodeStyleSettings.getInstance(context.getContainingFile());
|
||||
|
||||
return style.INSERT_OVERRIDE_ANNOTATION && PsiUtil.isLanguageLevel5OrHigher(context);
|
||||
return style.INSERT_OVERRIDE_ANNOTATION && PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -110,7 +110,7 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
|
||||
if (superMethod.isConstructor() || superMethod.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
return false;
|
||||
}
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(targetClass)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, targetClass)) {
|
||||
return false;
|
||||
}
|
||||
if (targetClass.isRecord() && superMethod.getParameterList().isEmpty()) {
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.intellij.openapi.editor.colors.EditorColors;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -50,7 +51,7 @@ public final class AddOnDemandStaticImportAction extends PsiUpdateModCommandActi
|
||||
*/
|
||||
@Nullable
|
||||
public static PsiClass getClassToPerformStaticImport(@NotNull PsiElement element) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(element)) return null;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.STATIC_IMPORTS, element)) return null;
|
||||
if (!(element instanceof PsiIdentifier) || !(element.getParent() instanceof PsiJavaCodeReferenceElement refExpr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.modcommand.PsiUpdateModCommandAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
|
||||
import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl;
|
||||
@@ -57,7 +58,7 @@ public final class AddSingleMemberStaticImportAction extends PsiUpdateModCommand
|
||||
*/
|
||||
@Nullable
|
||||
public static ImportAvailability getStaticImportClass(@NotNull PsiElement element) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(element)) return null;
|
||||
if (!PsiUtil.isAvailable(JavaFeature.STATIC_IMPORTS, element)) return null;
|
||||
if (element instanceof PsiIdentifier) {
|
||||
final PsiElement parent = element.getParent();
|
||||
if (parent instanceof PsiMethodReferenceExpression) return null;
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.intellij.modcommand.ModCommandAction;
|
||||
import com.intellij.modcommand.Presentation;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
@@ -169,7 +170,7 @@ public final class CollapseIntoLoopAction implements ModCommandAction {
|
||||
|
||||
static @Nullable LoopModel from(@NotNull ActionContext context) {
|
||||
PsiFile file = context.file();
|
||||
if (!(file instanceof PsiJavaFile) || !PsiUtil.isLanguageLevel5OrHigher(file)) return null;
|
||||
if (!(file instanceof PsiJavaFile) || !PsiUtil.isAvailable(JavaFeature.FOR_EACH, file)) return null;
|
||||
TextRange range = context.selection();
|
||||
boolean mayTrimTail;
|
||||
List<PsiStatement> statements;
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.modcommand.Presentation;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
@@ -64,7 +65,7 @@ public final class ConcatenationToMessageFormatAction extends PsiUpdateModComman
|
||||
}
|
||||
PsiExpression formatArgument = factory.createExpressionFromText(expressionText, null);
|
||||
argumentList.add(formatArgument);
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(context.file())) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.VARARGS, context.file())) {
|
||||
for (PsiExpression arg : args) {
|
||||
argumentList.add(arg);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.Presentation;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -59,9 +60,10 @@ public final class CreateSwitchIntention extends PsiUpdateModCommandAction<PsiEx
|
||||
if (resolvedClass == null) {
|
||||
return false;
|
||||
}
|
||||
return (PsiUtil.isLanguageLevel5OrHigher(context) &&
|
||||
(resolvedClass.isEnum() || isSuitablePrimitiveType(PsiPrimitiveType.getUnboxedType(type))))
|
||||
|| (PsiUtil.isLanguageLevel7OrHigher(context) && CommonClassNames.JAVA_LANG_STRING.equals(resolvedClass.getQualifiedName()));
|
||||
return (PsiUtil.isAvailable(JavaFeature.ENUMS, context) &&
|
||||
(resolvedClass.isEnum() || isSuitablePrimitiveType(PsiPrimitiveType.getUnboxedType(type)))) ||
|
||||
(PsiUtil.isAvailable(JavaFeature.STRING_SWITCH, context) &&
|
||||
CommonClassNames.JAVA_LANG_STRING.equals(resolvedClass.getQualifiedName()));
|
||||
}
|
||||
return isSuitablePrimitiveType(type);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
package com.intellij.codeInsight.intention.impl;
|
||||
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.modcommand.*;
|
||||
import com.intellij.modcommand.ActionContext;
|
||||
import com.intellij.modcommand.ModCommand;
|
||||
import com.intellij.modcommand.Presentation;
|
||||
import com.intellij.modcommand.PsiBasedModCommandAction;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
@@ -36,7 +40,7 @@ public final class ExpandStaticImportAction extends PsiBasedModCommandAction<Psi
|
||||
|
||||
@Override
|
||||
protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiIdentifier element) {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(element) || !(element.getParent() instanceof PsiJavaCodeReferenceElement referenceElement)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.STATIC_IMPORTS, element) || !(element.getParent() instanceof PsiJavaCodeReferenceElement referenceElement)) {
|
||||
return null;
|
||||
}
|
||||
final PsiImportStaticStatement importStatement = getImportStaticStatement(referenceElement);
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
@@ -89,7 +90,7 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi
|
||||
String initializer = MessageFormat.format(pattern, fieldInitializer, elementType.getCanonicalText());
|
||||
String modifiers = cls.isInterface() ? "" : "private static final ";
|
||||
String type = CommonClassNames.JAVA_UTIL_SET +
|
||||
(PsiUtil.isLanguageLevel5OrHigher(cls) ? "<" + elementType.getCanonicalText() + ">" : "");
|
||||
(PsiUtil.isAvailable(JavaFeature.GENERICS, cls) ? "<" + elementType.getCanonicalText() + ">" : "");
|
||||
PsiField field = factory.createFieldFromText(modifiers + type + " " + name + "=" + initializer + ";", cls);
|
||||
field = (PsiField)cls.add(field);
|
||||
RemoveRedundantTypeArgumentsUtil.removeRedundantTypeArguments(field);
|
||||
@@ -134,13 +135,13 @@ public final class ExtractSetFromComparisonChainAction implements ModCommandActi
|
||||
if (!type.equalsToText(CommonClassNames.JAVA_LANG_STRING)) {
|
||||
return INITIALIZER_ENUM_SET;
|
||||
}
|
||||
if (PsiUtil.isLanguageLevel9OrHigher(containingClass)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.COLLECTION_FACTORIES, containingClass)) {
|
||||
return INITIALIZER_FORMAT_JAVA9;
|
||||
}
|
||||
if (JavaPsiFacade.getInstance(containingClass.getProject()).findClass(GUAVA_IMMUTABLE_SET, containingClass.getResolveScope()) != null) {
|
||||
return INITIALIZER_FORMAT_GUAVA;
|
||||
}
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(containingClass)) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.GENERICS, containingClass)) {
|
||||
return INITIALIZER_FORMAT_JAVA5;
|
||||
}
|
||||
return INITIALIZER_FORMAT_JAVA2;
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.codeInspection.util.InspectionMessage;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -95,7 +96,7 @@ public class JavaClassReferenceSet {
|
||||
|
||||
if (ch == LT || ch == COMMA) {
|
||||
if (!allowGenericsCalculated) {
|
||||
allowGenerics = !isStaticImport && PsiUtil.isLanguageLevel5OrHigher(element);
|
||||
allowGenerics = !isStaticImport && PsiUtil.isAvailable(JavaFeature.STATIC_IMPORTS, element);
|
||||
allowGenericsCalculated = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.codeInspection.options.OptPane;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -125,7 +126,7 @@ public final class CloneableImplementsCloneInspection extends BaseInspection {
|
||||
}
|
||||
@NonNls final StringBuilder methodText = new StringBuilder();
|
||||
final JavaCodeStyleSettings codeStyleSettings = JavaCodeStyleSettings.getInstance(aClass.getContainingFile());
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(aClass) && codeStyleSettings.INSERT_OVERRIDE_ANNOTATION) {
|
||||
if (PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, aClass) && codeStyleSettings.INSERT_OVERRIDE_ANNOTATION) {
|
||||
methodText.append("@java.lang.Override ");
|
||||
}
|
||||
final String className = aClass.getName();
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.codeInspection.LocalQuickFix;
|
||||
import com.intellij.modcommand.ModPsiUpdater;
|
||||
import com.intellij.modcommand.PsiUpdateModCommandQuickFix;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -88,7 +89,7 @@ public final class CloneableClassInSecureContextInspection extends BaseInspectio
|
||||
return;
|
||||
}
|
||||
@NonNls final StringBuilder methodText = new StringBuilder();
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(aClass) &&
|
||||
if (PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, aClass) &&
|
||||
JavaCodeStyleSettings.getInstance(aClass.getContainingFile()).INSERT_OVERRIDE_ANNOTATION) {
|
||||
methodText.append("@java.lang.Override ");
|
||||
}
|
||||
|
||||
@@ -407,7 +407,7 @@ public class AnnotationUtil {
|
||||
|
||||
public static boolean isAnnotatingApplicable(@NotNull PsiElement elt, @NotNull String annotationFQN) {
|
||||
final Project project = elt.getProject();
|
||||
return PsiUtil.isLanguageLevel5OrHigher(elt) &&
|
||||
return PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, elt) &&
|
||||
JavaPsiFacade.getInstance(project).findClass(annotationFQN, elt.getResolveScope()) != null;
|
||||
}
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@ public final class PsiImplUtil {
|
||||
if (classClass == null) {
|
||||
return new PsiClassReferenceType(new LightClassReference(manager, "Class", "java.lang.Class", resolveScope), null);
|
||||
}
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(classAccessExpression)) {
|
||||
if (!PsiUtil.isAvailable(JavaFeature.GENERICS, classAccessExpression)) {
|
||||
//Raw java.lang.Class
|
||||
return JavaPsiFacade.getElementFactory(manager.getProject()).createType(classClass);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.patterns.PsiJavaPatterns;
|
||||
import com.intellij.patterns.compiler.PatternCompiler;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -237,7 +238,7 @@ public final class JavaLanguageInjectionSupport extends AbstractLanguageInjectio
|
||||
};
|
||||
|
||||
final boolean addAnnotation = ProgressManager.getInstance().run(task)
|
||||
&& PsiUtil.isLanguageLevel5OrHigher(modifierListOwner)
|
||||
&& PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, modifierListOwner)
|
||||
&& modifierListOwner.getModifierList() != null;
|
||||
final PsiElement statement = PsiTreeUtil.getParentOfType(host, PsiStatement.class, PsiField.class);
|
||||
if (!addAnnotation && statement == null) return false;
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.openapi.ui.ComponentValidator;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.ValidationInfo;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -106,7 +107,7 @@ public class GenerateToStringActionHandlerImpl implements GenerateToStringAction
|
||||
LOG.debug("Displaying member chooser dialog");
|
||||
|
||||
final MemberChooser<PsiElementClassMember<?>> chooser =
|
||||
new MemberChooser<>(dialogMembers, true, true, project, PsiUtil.isLanguageLevel5OrHigher(clazz), header) {
|
||||
new MemberChooser<>(dialogMembers, true, true, project, PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, clazz), header) {
|
||||
@Override
|
||||
protected @NotNull String getHelpId() {
|
||||
return "editing.altInsert.tostring";
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
@@ -239,7 +240,7 @@ public class GrPullUpHelper implements PullUpHelper<MemberInfo> {
|
||||
anchor != null ? (GrMethod)myTargetSuperClass.addBefore(methodCopy, anchor) : (GrMethod)myTargetSuperClass.add(methodCopy);
|
||||
JavaCodeStyleSettings styleSettings = JavaCodeStyleSettings.getInstance(method.getContainingFile());
|
||||
if (styleSettings.INSERT_OVERRIDE_ANNOTATION) {
|
||||
if (PsiUtil.isLanguageLevel5OrHigher(mySourceClass) && !myTargetSuperClass.isInterface() ||
|
||||
if (PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, mySourceClass) && !myTargetSuperClass.isInterface() ||
|
||||
PsiUtil.isLanguageLevel6OrHigher(mySourceClass)) {
|
||||
new AddAnnotationFix(CommonClassNames.JAVA_LANG_OVERRIDE, method)
|
||||
.invoke(method.getProject(), null, mySourceClass.getContainingFile());
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.openapi.util.NlsSafe;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.HtmlChunk;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.pom.java.JavaFeature;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
@@ -510,7 +511,7 @@ public final class I18nInspection extends AbstractBaseUastLocalInspectionTool im
|
||||
|
||||
List<LocalQuickFix> fixes = new ArrayList<>();
|
||||
|
||||
if (sourcePsi instanceof PsiLiteralExpression && PsiUtil.isLanguageLevel5OrHigher(sourcePsi)) {
|
||||
if (sourcePsi instanceof PsiLiteralExpression && PsiUtil.isAvailable(JavaFeature.ANNOTATIONS, sourcePsi)) {
|
||||
final JavaPsiFacade facade = JavaPsiFacade.getInstance(myHolder.getProject());
|
||||
for (PsiModifierListOwner element : nonNlsTargets) {
|
||||
if (NlsInfo.forModifierListOwner(element).getNlsStatus() == ThreeState.UNSURE) {
|
||||
|
||||
Reference in New Issue
Block a user