diff --git a/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/AnnotationChecker.java b/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/AnnotationChecker.java index 677dce34d25e..a3b026d1c397 100644 --- a/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/AnnotationChecker.java +++ b/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/AnnotationChecker.java @@ -73,7 +73,8 @@ final class AnnotationChecker { } void checkPackageAnnotationContainingFile(@NotNull PsiPackageStatement statement) { - if (statement.getAnnotationList().getAnnotations().length > 0 && !PsiPackage.PACKAGE_INFO_FILE.equals(myVisitor.file().getName())) { + PsiModifierList annotationList = statement.getAnnotationList(); + if (annotationList != null && !PsiPackage.PACKAGE_INFO_FILE.equals(myVisitor.file().getName())) { myVisitor.report(JavaErrorKinds.ANNOTATION_NOT_ALLOWED_ON_PACKAGE.create(statement)); } } diff --git a/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/errors/JavaErrorKinds.java b/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/errors/JavaErrorKinds.java index 5c4ee475fdfb..0e5b9aba0a89 100644 --- a/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/errors/JavaErrorKinds.java +++ b/java/codeserver/highlighting/src/com/intellij/java/codeserver/highlighting/errors/JavaErrorKinds.java @@ -104,7 +104,7 @@ public final class JavaErrorKinds { public static final Simple ANNOTATION_NOT_ALLOWED_IN_PERMIT_LIST = error("annotation.not.allowed.in.permit.list"); public static final Simple ANNOTATION_NOT_ALLOWED_ON_PACKAGE = error(PsiPackageStatement.class, "annotation.not.allowed.on.package") - .withAnchor(PsiPackageStatement::getAnnotationList); + .withAnchor(statement -> requireNonNull(statement.getAnnotationList())); public static final Simple ANNOTATION_MEMBER_THROWS_NOT_ALLOWED = error(PsiReferenceList.class, "annotation.member.may.not.have.throws.list").withAnchor(list -> requireNonNull(list.getFirstChild())); public static final Simple ANNOTATION_MEMBER_MAY_NOT_HAVE_PARAMETERS = diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/DefaultJavaErrorFixProvider.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/DefaultJavaErrorFixProvider.java index 2b4ec6bd94d5..893ee9c7f4bc 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/DefaultJavaErrorFixProvider.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/DefaultJavaErrorFixProvider.java @@ -1117,7 +1117,8 @@ public final class DefaultJavaErrorFixProvider extends AbstractJavaErrorFixProvi return myFactory.createUnwrapArrayInitializerMemberValueAction(error.psi()); }); multi(ANNOTATION_NOT_ALLOWED_ON_PACKAGE, error -> - List.of(myFactory.createDeleteFix(error.psi().getAnnotationList(), JavaAnalysisBundle.message("intention.text.remove.annotation")), + List.of(myFactory.createDeleteFix(requireNonNull(error.psi().getAnnotationList()), + JavaAnalysisBundle.message("intention.text.remove.annotation")), new MoveAnnotationToPackageInfoFileFix(error.psi()))); fix(ANNOTATION_NOT_ALLOWED_ON_PACKAGE, error -> myFactory.createDeleteFix(error.psi(), JavaAnalysisBundle.message("intention.text.remove.annotation"))); diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveAnnotationToPackageInfoFileFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveAnnotationToPackageInfoFileFix.java index d0b128e2dedb..2cc5647b1d81 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveAnnotationToPackageInfoFileFix.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/MoveAnnotationToPackageInfoFileFix.java @@ -30,7 +30,7 @@ public class MoveAnnotationToPackageInfoFileFix extends PsiUpdateModCommandActio PsiPackageStatement packageStatementInPackageInfoFile = PsiTreeUtil.findChildOfType(packageInfoFile, PsiPackageStatement.class); if (packageStatementInPackageInfoFile == null) return null; PsiModifierList missingAnnotations = findMissingAnnotations(packageStatement, packageStatementInPackageInfoFile); - if (!missingAnnotations.hasAnnotations()) return null; + if (missingAnnotations == null || !missingAnnotations.hasAnnotations()) return null; return Presentation.of(getFamilyName()); } @@ -71,16 +71,22 @@ public class MoveAnnotationToPackageInfoFileFix extends PsiUpdateModCommandActio packageStatementInPackageInfoFile = (PsiPackageStatement)packageInfoFile.addBefore(copy, packageInfoFile.getFirstChild()); } PsiModifierList missingAnnotations = findMissingAnnotations(packageStatement, packageStatementInPackageInfoFile); - if (missingAnnotations.getAnnotations().length == 0) return null; + if (missingAnnotations == null) return null; PsiModifierList annotationList = packageStatementInPackageInfoFile.getAnnotationList(); - StreamEx.of(missingAnnotations.getAnnotations()).forEach(annotationList::add); + if (annotationList != null) { + StreamEx.of(missingAnnotations.getAnnotations()).forEach(annotationList::add); + } + else { + packageStatementInPackageInfoFile.addBefore(missingAnnotations, packageStatementInPackageInfoFile.getFirstChild()); + } CodeStyleManager.getInstance(packageInfoFile.getProject()).reformat(packageInfoFile); return packageInfoFile; } - private static @NotNull PsiModifierList findMissingAnnotations(@NotNull PsiPackageStatement packageStatement, + private static @Nullable PsiModifierList findMissingAnnotations(@NotNull PsiPackageStatement packageStatement, @NotNull PsiPackageStatement packageStatementInPackageInfoFile) { PsiModifierList annotationList = packageStatementInPackageInfoFile.getAnnotationList(); + if (annotationList == null) return packageStatement.getAnnotationList(); PsiPackageStatement copy = (PsiPackageStatement)packageStatement.copy(); StreamEx.of(copy.getAnnotationList().getChildren()) .select(PsiAnnotation.class) diff --git a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java index dc55cc2a1dc7..781e7d431043 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java +++ b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicFileParser.java @@ -128,14 +128,14 @@ public class BasicFileParser { private void parsePackageStatement(PsiBuilder builder) { PsiBuilder.Marker statement = builder.mark(); - PsiBuilder.Marker modList = builder.mark(); - if (builder.getTokenType() != JavaTokenType.PACKAGE_KEYWORD) { - myParser.getDeclarationParser().parseAnnotations(builder); - } - done(modList, myJavaElementTypeContainer.MODIFIER_LIST, builder, myWhiteSpaceAndCommentSetHolder); if (!expect(builder, JavaTokenType.PACKAGE_KEYWORD)) { - statement.rollbackTo(); - return; + PsiBuilder.Marker modList = builder.mark(); + myParser.getDeclarationParser().parseAnnotations(builder); + done(modList, myJavaElementTypeContainer.MODIFIER_LIST, builder, myWhiteSpaceAndCommentSetHolder); + if (!expect(builder, JavaTokenType.PACKAGE_KEYWORD)) { + statement.rollbackTo(); + return; + } } PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, false, false, false); diff --git a/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java index afa281caba9a..df1e8c6f12f2 100644 --- a/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java @@ -380,8 +380,11 @@ public class NullableNotNullManagerImpl extends NullableNotNullManager implement if (packageFile instanceof PsiJavaFile javaFile) { PsiPackageStatement stmt = javaFile.getPackageStatement(); if (stmt != null) { - for (PsiAnnotation annotation : stmt.getAnnotationList().getAnnotations()) { - info = info.orElse(checkNullityDefault(annotation, placeTargetTypes, superPackage)); + PsiModifierList modifierList = stmt.getAnnotationList(); + if (modifierList != null) { + for (PsiAnnotation annotation : modifierList.getAnnotations()) { + info = info.orElse(checkNullityDefault(annotation, placeTargetTypes, superPackage)); + } } } } diff --git a/java/java-impl/src/com/intellij/lang/OuterModelsModificationTracker.java b/java/java-impl/src/com/intellij/lang/OuterModelsModificationTracker.java index 602a858a8604..236ec9df014b 100644 --- a/java/java-impl/src/com/intellij/lang/OuterModelsModificationTracker.java +++ b/java/java-impl/src/com/intellij/lang/OuterModelsModificationTracker.java @@ -312,7 +312,10 @@ public class OuterModelsModificationTracker extends SimpleModificationTracker { private static boolean isAnnotatedPackageStatement(PsiElement psiElement) { if (psiElement instanceof PsiPackageStatement psiPackageStatement) { try { - return psiPackageStatement.getAnnotationList().hasAnnotations(); + PsiModifierList psiModifierList = psiPackageStatement.getAnnotationList(); + if (psiModifierList != null) { + return psiModifierList.hasAnnotations(); + } } catch (PsiInvalidElementAccessException ignored) { } diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java index 1448fa56eea1..ddfc379e22fe 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/AnnotatedPackagesSearcher.java @@ -70,7 +70,7 @@ public final class AnnotatedPackagesSearcher implements QueryExecutor { private static final Logger LOG = Logger.getInstance(ClassFileStubBuilder.class); - public static final int STUB_VERSION = 30; + public static final int STUB_VERSION = 31; @Override public @NotNull VirtualFileFilter getFileFilter() { diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsPackageStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsPackageStatementImpl.java index e52459c656a8..c46ee504aa76 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsPackageStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsPackageStatementImpl.java @@ -4,16 +4,11 @@ package com.intellij.psi.impl.compiled; import com.intellij.psi.*; import com.intellij.psi.impl.java.stubs.JavaStubElementTypes; import com.intellij.psi.impl.java.stubs.PsiPackageStatementStub; -import com.intellij.psi.impl.light.LightModifierList; import com.intellij.psi.impl.source.tree.JavaElementType; import com.intellij.psi.impl.source.tree.TreeElement; import com.intellij.psi.stubs.StubElement; import org.jetbrains.annotations.NotNull; -import java.util.Objects; - -import static java.util.Objects.requireNonNull; - public class ClsPackageStatementImpl extends ClsRepositoryPsiElement implements PsiPackageStatement { private final @NotNull String myPackageName; @@ -29,13 +24,16 @@ public class ClsPackageStatementImpl extends ClsRepositoryPsiElement child = + (StubElement)getStub().findChildStubByElementType(JavaStubElementTypes.MODIFIER_LIST); + return child == null ? null : child.getPsi(); } @Override public PsiElement @NotNull [] getChildren() { - return new PsiElement[]{getAnnotationList()}; + PsiModifierList list = getAnnotationList(); + return list == null ? EMPTY_ARRAY : new PsiElement[]{list}; } @Override @@ -46,9 +44,12 @@ public class ClsPackageStatementImpl extends ClsRepositoryPsiElement extends ClassVisitor { } String packageName = !(myParent instanceof PsiFileStub) || name.lastIndexOf('/') == -1 ? "" : name.substring(0, name.lastIndexOf('/')).replace('/', '.'); - PsiModifierListStubImpl packageModList = null; + PsiPackageStatementStub packageStatement = null; if (!packageName.isEmpty()) { - PsiPackageStatementStub packageStatement = new PsiPackageStatementStubImpl(myParent, packageName); - packageModList = new PsiModifierListStubImpl(packageStatement, 0); + packageStatement = new PsiPackageStatementStubImpl(myParent, packageName); } myResult = new PsiClassStubImpl<>(JavaStubElementTypes.CLASS, myParent, fqn == null ? TypeInfo.SimpleTypeInfo.NULL : fqn, shortName, null, stubFlags); myModList = new PsiModifierListStubImpl(myResult, classFlags); - if (PsiPackage.PACKAGE_INFO_CLASS.equals(shortName) && packageModList != null) { + if (PsiPackage.PACKAGE_INFO_CLASS.equals(shortName)) { // Attach annotations to the package statement - myModList = packageModList; + myModList = new PsiModifierListStubImpl(packageStatement, 0); } if (isRecord) { myHeaderStub = new PsiRecordHeaderStubImpl(myResult); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/file/PsiPackageImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/file/PsiPackageImpl.java index 86c4bfa02c3b..aa8d14da59d2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/file/PsiPackageImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/file/PsiPackageImpl.java @@ -435,7 +435,7 @@ public class PsiPackageImpl extends PsiPackageBase implements PsiPackage, Querya if (file instanceof PsiJavaFile) { PsiPackageStatement stmt = ((PsiJavaFile)file).getPackageStatement(); if (stmt != null) { - modifiers.add(stmt.getAnnotationList()); + ContainerUtil.addIfNotNull(modifiers, stmt.getAnnotationList()); } } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java index 5eee8f00007b..f4638b0f22f2 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaFileElementType.java @@ -20,7 +20,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; public class JavaFileElementType extends IFileElementType { - public static final int STUB_VERSION = 65; + public static final int STUB_VERSION = 66; public JavaFileElementType() { super("java.FILE", JavaLanguage.INSTANCE); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java index 7c766be7f4f8..cd5e45b9d56b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java @@ -158,7 +158,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava private void cleanupBrokenPackageKeyword() { PsiElement child = getFirstChild(); while (child instanceof PsiWhiteSpace || child instanceof PsiComment || child instanceof PsiErrorElement) { - if (isErrorElementThatContainsPackageStatement(child)) { + if (child instanceof PsiErrorElement && child.getFirstChild() != null && child.getFirstChild().textMatches(JavaKeywords.PACKAGE)) { child.delete(); break; } @@ -166,17 +166,6 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava } } - private static boolean isErrorElementThatContainsPackageStatement(PsiElement element) { - if (!(element instanceof PsiErrorElement)) return false; - PsiElement firstChild = element.getFirstChild(); - if (firstChild == null) return false; - if (firstChild.textMatches(JavaKeywords.PACKAGE)) return true; - if (!(firstChild instanceof PsiModifierList)) return false; - PsiElement secondChild = firstChild.getNextSibling(); - if (secondChild == null) return false; - return secondChild.textMatches(JavaKeywords.PACKAGE); - } - @Override public PsiImportList getImportList() { return withGreenStubOrAst( diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java index 8bd76223429c..d3421b69dade 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiPackageStatementImpl.java @@ -55,8 +55,8 @@ public class PsiPackageStatementImpl extends JavaStubPsiElement PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:foo diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraOpeningBraceInMethod_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraOpeningBraceInMethod_node.txt index 82dd6b508db9..135519224de8 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraOpeningBraceInMethod_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ExtraOpeningBraceInMethod_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt index 0c2f68d99df9..2937f7cdd48a 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3.txt @@ -1,7 +1,5 @@ PsiJavaFile:ImplicitClass3.java PsiPackageStatement:pack1.pack2 - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:pack1.pack2 diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt index 0b3a7f80a13f..d3ddcc17e7e5 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass3_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt index 1c8c74479dc1..73aafad0aa87 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4.txt @@ -1,7 +1,5 @@ PsiJavaFile:ImplicitClass4.java PsiPackageStatement:pack1.pack2 - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:pack1.pack2 diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt index 57ac2b525575..717fd97b9794 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass4_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt index f2a300024817..b485ba27e02d 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5.txt @@ -1,7 +1,5 @@ PsiJavaFile:ImplicitClass5.java PsiErrorElement:'class' or 'interface' expected - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiImportList diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt index 81b9d8d15d05..3b6fe14633b6 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClass5_node.txt @@ -1,7 +1,5 @@ java.FILE ERROR_ELEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE IMPORT_LIST diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation.txt index f3b76b1eb919..55dba34d5ed9 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation.txt @@ -1,7 +1,5 @@ PsiJavaFile:IncompleteAnnotation.java PsiPackageStatement:foo - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:foo diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation_node.txt index 9665b3c243d4..6149dfd7cb8d 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/IncompleteAnnotation_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1.txt index b40727c8f906..313cbba303bf 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1.txt @@ -1,7 +1,5 @@ PsiJavaFile:BindBeforeClass1.java PsiPackageStatement:p - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:p diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1_node.txt index 18a5cb0a1d92..b529de7d66b9 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass1_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4.txt index 4853531dc39a..212dd6ae67f6 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4.txt @@ -1,7 +1,5 @@ PsiJavaFile:BindBeforeClass4.java PsiPackageStatement:p - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:p diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4_node.txt index d9fa2e88269b..dd41b996ec39 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4_node.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/commentBinding/BindBeforeClass4_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown.txt index cf9a9ac1835b..1e15337f8a4c 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown.txt @@ -1,7 +1,5 @@ PsiJavaFile:MarkdownWithDocCommentAfterMarkdown.java PsiPackageStatement:test.pkg - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:test.pkg diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown_node.txt index a2b878cc66a1..42bf4f7d0ea8 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown_node.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentAfterMarkdown_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown.txt index 655be8caf4a1..954f4f390741 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown.txt @@ -1,7 +1,5 @@ PsiJavaFile:MarkdownWithDocCommentBeforeMarkdown.java PsiPackageStatement:test.pkg - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:test.pkg diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown_node.txt index 1c5751abd46a..27baa7fa46a2 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown_node.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/MarkdownWithDocCommentBeforeMarkdown_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown.txt index 80a784c758e1..2b444a30bfe0 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown.txt @@ -1,7 +1,5 @@ PsiJavaFile:OnlyMarkdownAfterMarkdown.java PsiPackageStatement:test.pkg - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:test.pkg diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown_node.txt index e8fbdf49b9a6..6b901e9a6173 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown_node.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownAfterMarkdown_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown.txt index 5c4b4803dc88..17a888518dad 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown.txt @@ -1,7 +1,5 @@ PsiJavaFile:OnlyMarkdownBeforeMarkdown.java PsiPackageStatement:test.pkg - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:test.pkg diff --git a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown_node.txt b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown_node.txt index e8fbdf49b9a6..6b901e9a6173 100644 --- a/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown_node.txt +++ b/java/java-tests/testData/psi/parser-full/javadocParsing/OnlyMarkdownBeforeMarkdown_node.txt @@ -1,7 +1,5 @@ java.FILE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/files/BindDocComment1.txt b/java/java-tests/testData/psi/parser-partial/files/BindDocComment1.txt index d5a34648381d..44939cacd57f 100644 --- a/java/java-tests/testData/psi/parser-partial/files/BindDocComment1.txt +++ b/java/java-tests/testData/psi/parser-partial/files/BindDocComment1.txt @@ -6,8 +6,6 @@ PsiJavaFile:BindDocComment1.java PsiDocToken:DOC_COMMENT_END('*/') PsiWhiteSpace('\n') PsiPackageStatement:a - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:a diff --git a/java/java-tests/testData/psi/parser-partial/files/BindDocComment1_node.txt b/java/java-tests/testData/psi/parser-partial/files/BindDocComment1_node.txt index 33ea74602057..00e9d42d91df 100644 --- a/java/java-tests/testData/psi/parser-partial/files/BindDocComment1_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/BindDocComment1_node.txt @@ -6,8 +6,6 @@ test.java.file DOC_COMMENT_END WHITE_SPACE PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons.txt b/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons.txt index 05c5651050bb..d7618538bd15 100644 --- a/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons.txt +++ b/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons.txt @@ -1,7 +1,5 @@ PsiJavaFile:ExtraSemicolons.java PsiPackageStatement:p - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:p diff --git a/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons_node.txt b/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons_node.txt index 1e96c2648ac4..0e1efb931f36 100644 --- a/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/ExtraSemicolons_node.txt @@ -1,7 +1,5 @@ test.java.file PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/files/FileWithClass.txt b/java/java-tests/testData/psi/parser-partial/files/FileWithClass.txt index bcb2ad5360e5..3f71aea86d25 100644 --- a/java/java-tests/testData/psi/parser-partial/files/FileWithClass.txt +++ b/java/java-tests/testData/psi/parser-partial/files/FileWithClass.txt @@ -1,7 +1,5 @@ PsiJavaFile:FileWithClass.java PsiPackageStatement:a - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:a diff --git a/java/java-tests/testData/psi/parser-partial/files/FileWithClass_node.txt b/java/java-tests/testData/psi/parser-partial/files/FileWithClass_node.txt index 27c07b747585..60af9c057605 100644 --- a/java/java-tests/testData/psi/parser-partial/files/FileWithClass_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/FileWithClass_node.txt @@ -1,7 +1,5 @@ test.java.file PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/files/Package.txt b/java/java-tests/testData/psi/parser-partial/files/Package.txt index b7d80868587b..a3fedef93d7b 100644 --- a/java/java-tests/testData/psi/parser-partial/files/Package.txt +++ b/java/java-tests/testData/psi/parser-partial/files/Package.txt @@ -1,7 +1,5 @@ PsiJavaFile:Package.java PsiPackageStatement:a.b.c - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:a.b.c diff --git a/java/java-tests/testData/psi/parser-partial/files/Package_node.txt b/java/java-tests/testData/psi/parser-partial/files/Package_node.txt index 3494949ea04b..1725998ed65b 100644 --- a/java/java-tests/testData/psi/parser-partial/files/Package_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/Package_node.txt @@ -1,7 +1,5 @@ test.java.file PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0.txt b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0.txt index f509741e4b0a..bd210adf7e67 100644 --- a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0.txt +++ b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0.txt @@ -1,7 +1,5 @@ PsiJavaFile:UnclosedPackage0.java PsiErrorElement:'class' or 'interface' expected - PsiModifierList: - PsiKeyword:package('package') PsiImportList \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0_node.txt b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0_node.txt index 57e8a5bc5c83..e8a95bc015a8 100644 --- a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage0_node.txt @@ -1,7 +1,5 @@ test.java.file ERROR_ELEMENT - MODIFIER_LIST - PACKAGE_KEYWORD IMPORT_LIST \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1.txt b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1.txt index 47fc7830c21c..ae49b85926b9 100644 --- a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1.txt +++ b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1.txt @@ -1,7 +1,5 @@ PsiJavaFile:UnclosedPackage1.java PsiPackageStatement:a - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:a diff --git a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1_node.txt b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1_node.txt index 21236363e3a8..24128f90cd83 100644 --- a/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1_node.txt +++ b/java/java-tests/testData/psi/parser-partial/files/UnclosedPackage1_node.txt @@ -1,7 +1,5 @@ test.java.file PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testData/psi/parser-partial/modules/Packaged.txt b/java/java-tests/testData/psi/parser-partial/modules/Packaged.txt index 5394f7367844..6710a43affae 100644 --- a/java/java-tests/testData/psi/parser-partial/modules/Packaged.txt +++ b/java/java-tests/testData/psi/parser-partial/modules/Packaged.txt @@ -1,7 +1,5 @@ PsiJavaFile:Packaged.java PsiPackageStatement:pkg - PsiModifierList: - PsiKeyword:package('package') PsiWhiteSpace(' ') PsiJavaCodeReferenceElement:pkg diff --git a/java/java-tests/testData/psi/parser-partial/modules/Packaged_node.txt b/java/java-tests/testData/psi/parser-partial/modules/Packaged_node.txt index c8145ae44de1..85a0db511d0b 100644 --- a/java/java-tests/testData/psi/parser-partial/modules/Packaged_node.txt +++ b/java/java-tests/testData/psi/parser-partial/modules/Packaged_node.txt @@ -1,7 +1,5 @@ test.java.file PACKAGE_STATEMENT - MODIFIER_LIST - PACKAGE_KEYWORD WHITE_SPACE JAVA_CODE_REFERENCE diff --git a/java/java-tests/testSrc/com/intellij/java/psi/ClsStubBuilderTest.java b/java/java-tests/testSrc/com/intellij/java/psi/ClsStubBuilderTest.java index 3484eae9c617..54c92f78676a 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/ClsStubBuilderTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/ClsStubBuilderTest.java @@ -50,8 +50,7 @@ public class ClsStubBuilderTest extends LightJavaCodeInsightTestCase { public void testModifiers() { doTest("../repo/pack/" + getTestName(false)); } public void testModuleInfo() { doTest("module-info"); } - public void testPackageInfoWithAnnotations() { doTest("packageInfoWithAnnotations/package-info"); } - public void testPackageInfoWithoutAnnotations() { doTest("packageInfoWithoutAnnotations/package-info"); } + public void testPackageInfo() { doTest("package-info"); } private void doClassTest(String className) { PsiClass aClass = getJavaFacade().findClass(className); diff --git a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubBuilderTest.java b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubBuilderTest.java index facea2e1823c..14e12ee80273 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubBuilderTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubBuilderTest.java @@ -64,7 +64,6 @@ public class JavaStubBuilderTest extends LightIdeaTestCase { """ PsiJavaFileStub [p] PACKAGE_STATEMENT:PsiPackageStatementStub[p] - MODIFIER_LIST:PsiModifierListStub[mask=0] IMPORT_LIST:PsiImportListStub IMPORT_STATEMENT:PsiImportStatementStub[a.b] IMPORT_STATIC_STATEMENT:PsiImportStatementStub[static c.d.*] @@ -83,7 +82,6 @@ public class JavaStubBuilderTest extends LightIdeaTestCase { """ PsiJavaFileStub [p] PACKAGE_STATEMENT:PsiPackageStatementStub[p] - MODIFIER_LIST:PsiModifierListStub[mask=0] IMPORT_LIST:PsiImportListStub CLASS:PsiClassStub[name=A fqn=p.A] MODIFIER_LIST:PsiModifierListStub[mask=0]