mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[java-highlighting] IDEA-363617 Support JEP 494: Module Import Declarations (Second Preview)
- support transitive for dependencies on 'java.base' module (cherry picked from commit a364934e96592ae3a8244ae68b2fb5372e7f5a30) GitOrigin-RevId: 6bffa2d03645e77537d70cd4d9d081dec80680af
This commit is contained in:
committed by
intellij-monorepo-bot
parent
aea70bba3b
commit
6113015d06
@@ -21,6 +21,7 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.Trinity;
|
||||
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.PsiPackageAccessibilityStatement.Role;
|
||||
import com.intellij.psi.impl.IncompleteModelUtil;
|
||||
@@ -41,6 +42,8 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.intellij.psi.JavaTokenType.TRANSITIVE_KEYWORD;
|
||||
|
||||
// generates HighlightInfoType.ERROR-like HighlightInfos for modularity-related (Jigsaw) problems
|
||||
final class ModuleHighlightUtil {
|
||||
static HighlightInfo.Builder checkPackageStatement(@NotNull PsiPackageStatement statement, @NotNull PsiFile file, @Nullable PsiJavaModule javaModule) {
|
||||
@@ -489,7 +492,11 @@ final class ModuleHighlightUtil {
|
||||
static void checkModifiers(@NotNull PsiRequiresStatement statement, @NotNull Consumer<? super HighlightInfo.Builder> errorSink) {
|
||||
PsiModifierList modList = statement.getModifierList();
|
||||
if (modList != null && PsiJavaModule.JAVA_BASE.equals(statement.getModuleName())) {
|
||||
boolean transitiveAvailable = PsiUtil.isAvailable(JavaFeature.TRANSITIVE_DEPENDENCY_ON_JAVA_BASE, statement);
|
||||
PsiTreeUtil.processElements(modList, PsiKeyword.class, keyword -> {
|
||||
if (keyword.getTokenType() == TRANSITIVE_KEYWORD && transitiveAvailable) {
|
||||
return true;
|
||||
}
|
||||
@PsiModifier.ModifierConstant String modifier = keyword.getText();
|
||||
String message = JavaErrorBundle.message("modifier.not.allowed", modifier);
|
||||
HighlightInfo.Builder info = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(keyword).descriptionAndTooltip(message);
|
||||
|
||||
Reference in New Issue
Block a user