diff --git a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/WhiteSpaceAndCommentSetHolder.java b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/WhiteSpaceAndCommentSetHolder.java index 9f5d0b0ff117..963995a8aa50 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/WhiteSpaceAndCommentSetHolder.java +++ b/java/java-frontback-psi-impl/src/com/intellij/psi/impl/source/WhiteSpaceAndCommentSetHolder.java @@ -17,7 +17,8 @@ import static com.intellij.psi.tree.ParentAwareTokenSet.orSet; public class WhiteSpaceAndCommentSetHolder { public static final WhiteSpaceAndCommentSetHolder INSTANCE = new WhiteSpaceAndCommentSetHolder(); private static final ParentAwareTokenSet PRECEDING_COMMENT_SET = - orSet(create(BasicJavaElementType.BASIC_MODULE), BasicElementTypes.BASIC_FULL_MEMBER_BIT_SET); + orSet(create(BasicJavaElementType.BASIC_MODULE, BasicJavaElementType.BASIC_IMPLICIT_CLASS), + BasicElementTypes.BASIC_FULL_MEMBER_BIT_SET); private static final ParentAwareTokenSet TRAILING_COMMENT_SET = orSet(create(BasicJavaElementType.BASIC_PACKAGE_STATEMENT), BasicElementTypes.BASIC_IMPORT_STATEMENT_BASE_BIT_SET, diff --git a/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java b/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java index ad2cac66457e..c34c69ce0719 100644 --- a/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java +++ b/java/java-frontback-tests/testSrc/com/intellij/java/parser/declarationParsing/AbstractBasicClassParsingTest.java @@ -139,4 +139,7 @@ public abstract class AbstractBasicClassParsingTest extends AbstractBasicJavaPar public void testImplicitClass5() { doTest(true); } + public void testImplicitClassJavaDoc() { + doTest(true); + } } diff --git a/java/java-tests/testData/inspection/recordCanBeClass8/afterNonPublic.java b/java/java-tests/testData/inspection/recordCanBeClass8/afterNonPublic.java index 0e6d6394ac2e..aff5a6261ac2 100644 --- a/java/java-tests/testData/inspection/recordCanBeClass8/afterNonPublic.java +++ b/java/java-tests/testData/inspection/recordCanBeClass8/afterNonPublic.java @@ -1,4 +1,6 @@ -import java.util.Objects;// "Convert record to class" "true-preview" +import java.util.Objects; + +// "Convert record to class" "true-preview" final class Point { private final double x; private final double y; diff --git a/java/java-tests/testData/inspection/recordCanBeClass8/afterSimple.java b/java/java-tests/testData/inspection/recordCanBeClass8/afterSimple.java index 05af37b2354f..a044eb4469ff 100644 --- a/java/java-tests/testData/inspection/recordCanBeClass8/afterSimple.java +++ b/java/java-tests/testData/inspection/recordCanBeClass8/afterSimple.java @@ -1,4 +1,6 @@ -import java.util.Objects;// "Convert record to class" "true-preview" +import java.util.Objects; + +// "Convert record to class" "true-preview" public final class Point { private final int x; private final int y; diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.java b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.java new file mode 100644 index 000000000000..1daca420c9f0 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.java @@ -0,0 +1,6 @@ +/** + * Main method + */ +public static void main() { + System.out.println("Hello"); +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.txt new file mode 100644 index 000000000000..58c005539dd5 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc.txt @@ -0,0 +1,57 @@ +PsiJavaFile:ImplicitClassJavaDoc.java + PsiImportList + + PsiImplicitClass + PsiMethod:main + PsiDocComment + PsiDocToken:DOC_COMMENT_START('/**') + PsiWhiteSpace('\n ') + PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*') + PsiDocToken:DOC_COMMENT_DATA(' Main method') + PsiWhiteSpace('\n ') + PsiDocToken:DOC_COMMENT_END('*/') + PsiWhiteSpace('\n') + PsiModifierList:public static + PsiKeyword:public('public') + PsiWhiteSpace(' ') + PsiKeyword:static('static') + PsiTypeParameterList + + PsiWhiteSpace(' ') + PsiTypeElement:void + PsiKeyword:void('void') + PsiWhiteSpace(' ') + PsiIdentifier:main('main') + PsiParameterList:() + PsiJavaToken:LPARENTH('(') + PsiJavaToken:RPARENTH(')') + PsiReferenceList + + PsiWhiteSpace(' ') + PsiCodeBlock + PsiJavaToken:LBRACE('{') + PsiWhiteSpace('\n ') + PsiExpressionStatement + PsiMethodCallExpression:System.out.println("Hello") + PsiReferenceExpression:System.out.println + PsiReferenceExpression:System.out + PsiReferenceExpression:System + PsiReferenceParameterList + + PsiIdentifier:System('System') + PsiJavaToken:DOT('.') + PsiReferenceParameterList + + PsiIdentifier:out('out') + PsiJavaToken:DOT('.') + PsiReferenceParameterList + + PsiIdentifier:println('println') + PsiExpressionList + PsiJavaToken:LPARENTH('(') + PsiLiteralExpression:"Hello" + PsiJavaToken:STRING_LITERAL('"Hello"') + PsiJavaToken:RPARENTH(')') + PsiJavaToken:SEMICOLON(';') + PsiWhiteSpace('\n') + PsiJavaToken:RBRACE('}') \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc_node.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc_node.txt new file mode 100644 index 000000000000..1fccbab19e85 --- /dev/null +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/ImplicitClassJavaDoc_node.txt @@ -0,0 +1,57 @@ +java.FILE + IMPORT_LIST + + IMPLICIT_CLASS + METHOD + DOC_COMMENT + DOC_COMMENT_START + WHITE_SPACE + DOC_COMMENT_LEADING_ASTERISKS + DOC_COMMENT_DATA + WHITE_SPACE + DOC_COMMENT_END + WHITE_SPACE + MODIFIER_LIST + PUBLIC_KEYWORD + WHITE_SPACE + STATIC_KEYWORD + TYPE_PARAMETER_LIST + + WHITE_SPACE + TYPE + VOID_KEYWORD + WHITE_SPACE + IDENTIFIER + PARAMETER_LIST + LPARENTH + RPARENTH + THROWS_LIST + + WHITE_SPACE + CODE_BLOCK + LBRACE + WHITE_SPACE + EXPRESSION_STATEMENT + METHOD_CALL_EXPRESSION + REFERENCE_EXPRESSION + REFERENCE_EXPRESSION + REFERENCE_EXPRESSION + REFERENCE_PARAMETER_LIST + + IDENTIFIER + DOT + REFERENCE_PARAMETER_LIST + + IDENTIFIER + DOT + REFERENCE_PARAMETER_LIST + + IDENTIFIER + EXPRESSION_LIST + LPARENTH + LITERAL_EXPRESSION + STRING_LITERAL + RPARENTH + SEMICOLON + WHITE_SPACE + RBRACE \ No newline at end of file