mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use module to determine language level (IDEA-151620)
This commit is contained in:
@@ -19,6 +19,7 @@ import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.RecursionGuard;
|
||||
import com.intellij.openapi.util.RecursionManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.impl.source.resolve.ParameterTypeInferencePolicy;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
@@ -169,4 +170,8 @@ public interface PsiResolveHelper {
|
||||
PsiType arg,
|
||||
boolean isContraVariantPosition,
|
||||
LanguageLevel languageLevel);
|
||||
|
||||
@NotNull
|
||||
LanguageLevel getEffectiveLanguageLevel(@Nullable VirtualFile virtualFile);
|
||||
|
||||
}
|
||||
|
||||
@@ -970,7 +970,8 @@ public final class PsiUtil extends PsiUtilCore {
|
||||
}
|
||||
}
|
||||
|
||||
return getLanguageLevel(element.getProject());
|
||||
PsiResolveHelper instance = PsiResolveHelper.SERVICE.getInstance(element.getProject());
|
||||
return instance != null ? instance.getEffectiveLanguageLevel(getVirtualFile(file)) : LanguageLevel.HIGHEST;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
package com.intellij.psi.impl.source.resolve;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.JavaPsiImplementationHelper;
|
||||
import com.intellij.psi.impl.source.resolve.graphInference.PsiGraphInferenceHelper;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
import com.intellij.psi.scope.MethodProcessorSetupFailedException;
|
||||
@@ -208,6 +210,12 @@ public class PsiResolveHelperImpl implements PsiResolveHelper {
|
||||
.getSubstitutionForTypeParameter(typeParam, param, arg, isContraVariantPosition, languageLevel);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public LanguageLevel getEffectiveLanguageLevel(@Nullable VirtualFile virtualFile) {
|
||||
return JavaPsiImplementationHelper.getInstance(myManager.getProject()).getEffectiveLanguageLevel(virtualFile);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiInferenceHelper getInferenceHelper(@NotNull LanguageLevel languageLevel) {
|
||||
if (languageLevel.isAtLeast(LanguageLevel.JDK_1_8)) {
|
||||
|
||||
Reference in New Issue
Block a user