mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 11:20:44 +07:00
cleanup
GitOrigin-RevId: 6fa4f979e0a6641885e2225eb985b13713373ac5
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e82d6f4b86
commit
051ed2529b
+2
-3
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ide.highlighter;
|
||||
|
||||
import com.intellij.core.JavaPsiBundle;
|
||||
@@ -33,9 +33,8 @@ public final class JavaModuleFileType extends LanguageFileType {
|
||||
return JavaFileType.DEFAULT_EXTENSION;
|
||||
}
|
||||
|
||||
@Nls
|
||||
@Override
|
||||
public @NotNull String getDisplayName() {
|
||||
public @Nls @NotNull String getDisplayName() {
|
||||
return JavaPsiBundle.message("filetype.java.module.display.name");
|
||||
}
|
||||
|
||||
|
||||
@@ -395,9 +395,8 @@ public class BasicJavaLexer extends LexerBase {
|
||||
return (char)result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public CharSequence getBufferSequence() {
|
||||
public @NotNull CharSequence getBufferSequence() {
|
||||
return myBuffer;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.lang.java.lexer;
|
||||
|
||||
import com.intellij.lexer.*;
|
||||
@@ -55,9 +55,8 @@ public class JavaDocLexer extends MergingLexerAdapter {
|
||||
return myState;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public CharSequence getBufferSequence() {
|
||||
public @NotNull CharSequence getBufferSequence() {
|
||||
return myBuffer;
|
||||
}
|
||||
|
||||
|
||||
+26
-41
@@ -50,7 +50,7 @@ public class BasicDeclarationParser {
|
||||
private final AbstractBasicJavaElementTypeFactory.JavaElementTypeContainer myJavaElementTypeContainer;
|
||||
private final WhiteSpaceAndCommentSetHolder myWhiteSpaceAndCommentSetHolder = WhiteSpaceAndCommentSetHolder.INSTANCE;
|
||||
|
||||
public BasicDeclarationParser(@NotNull final BasicJavaParser javaParser) {
|
||||
public BasicDeclarationParser(final @NotNull BasicJavaParser javaParser) {
|
||||
myParser = javaParser;
|
||||
myJavaElementTypeContainer = javaParser.getJavaElementTypeFactory().getContainer();
|
||||
TYPE_START = TokenSet.orSet(
|
||||
@@ -74,11 +74,10 @@ public class BasicDeclarationParser {
|
||||
expectOrError(builder, JavaTokenType.RBRACE, "expected.rbrace");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassFromKeyword(PsiBuilder builder,
|
||||
PsiBuilder.Marker declaration,
|
||||
boolean isAnnotation,
|
||||
BaseContext context) {
|
||||
private @Nullable PsiBuilder.Marker parseClassFromKeyword(PsiBuilder builder,
|
||||
PsiBuilder.Marker declaration,
|
||||
boolean isAnnotation,
|
||||
BaseContext context) {
|
||||
IElementType keywordTokenType = builder.getTokenType();
|
||||
final boolean isRecord = isRecordToken(builder, keywordTokenType);
|
||||
if (isRecord) {
|
||||
@@ -184,8 +183,7 @@ public class BasicDeclarationParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseEnumConstant(final PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseEnumConstant(final PsiBuilder builder) {
|
||||
final PsiBuilder.Marker constant = builder.mark();
|
||||
|
||||
parseModifierList(builder);
|
||||
@@ -255,8 +253,7 @@ public class BasicDeclarationParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parse(final @NotNull PsiBuilder builder, final BaseContext context) {
|
||||
public @Nullable PsiBuilder.Marker parse(final @NotNull PsiBuilder builder, final BaseContext context) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == null) return null;
|
||||
|
||||
@@ -458,13 +455,11 @@ public class BasicDeclarationParser {
|
||||
return isNonSealed;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Pair<PsiBuilder.Marker, Boolean> parseModifierList(final PsiBuilder builder) {
|
||||
public @NotNull Pair<PsiBuilder.Marker, Boolean> parseModifierList(final PsiBuilder builder) {
|
||||
return parseModifierList(builder, BASIC_MODIFIER_BIT_SET);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Pair<PsiBuilder.Marker, Boolean> parseModifierList(PsiBuilder builder, TokenSet modifiers) {
|
||||
public @NotNull Pair<PsiBuilder.Marker, Boolean> parseModifierList(PsiBuilder builder, TokenSet modifiers) {
|
||||
final PsiBuilder.Marker modList = builder.mark();
|
||||
boolean isEmpty = true;
|
||||
|
||||
@@ -523,8 +518,7 @@ public class BasicDeclarationParser {
|
||||
return parseMethodBody(builder, declaration, anno);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseMethodBody(PsiBuilder builder, PsiBuilder.Marker declaration, boolean anno) {
|
||||
private @NotNull PsiBuilder.Marker parseMethodBody(PsiBuilder builder, PsiBuilder.Marker declaration, boolean anno) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType != JavaTokenType.SEMICOLON && tokenType != JavaTokenType.LBRACE) {
|
||||
PsiBuilder.Marker error = builder.mark();
|
||||
@@ -693,17 +687,15 @@ public class BasicDeclarationParser {
|
||||
done(elementList, type.getNodeType(myJavaElementTypeContainer), myWhiteSpaceAndCommentSetHolder);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseParameter(PsiBuilder builder, boolean ellipsis, boolean disjunctiveType, boolean varType) {
|
||||
public @Nullable PsiBuilder.Marker parseParameter(PsiBuilder builder, boolean ellipsis, boolean disjunctiveType, boolean varType) {
|
||||
return parseParameterOrRecordComponent(builder, ellipsis, disjunctiveType, varType, true);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseParameterOrRecordComponent(PsiBuilder builder,
|
||||
boolean ellipsis,
|
||||
boolean disjunctiveType,
|
||||
boolean varType,
|
||||
boolean isParameter) {
|
||||
public @Nullable PsiBuilder.Marker parseParameterOrRecordComponent(PsiBuilder builder,
|
||||
boolean ellipsis,
|
||||
boolean disjunctiveType,
|
||||
boolean varType,
|
||||
boolean isParameter) {
|
||||
int typeFlags = 0;
|
||||
if (ellipsis) typeFlags |= BasicReferenceParser.ELLIPSIS;
|
||||
if (disjunctiveType) typeFlags |= BasicReferenceParser.DISJUNCTIONS;
|
||||
@@ -712,8 +704,7 @@ public class BasicDeclarationParser {
|
||||
isParameter ? myJavaElementTypeContainer.PARAMETER : myJavaElementTypeContainer.RECORD_COMPONENT);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseResource(PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseResource(PsiBuilder builder) {
|
||||
PsiBuilder.Marker marker = builder.mark();
|
||||
|
||||
PsiBuilder.Marker expr = myParser.getExpressionParser().parse(builder);
|
||||
@@ -727,16 +718,14 @@ public class BasicDeclarationParser {
|
||||
return parseListElement(builder, true, BasicReferenceParser.VAR_TYPE, myJavaElementTypeContainer.RESOURCE_VARIABLE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseLambdaParameter(PsiBuilder builder, boolean typed) {
|
||||
public @Nullable PsiBuilder.Marker parseLambdaParameter(PsiBuilder builder, boolean typed) {
|
||||
int flags = BasicReferenceParser.ELLIPSIS;
|
||||
if (JavaFeature.VAR_LAMBDA_PARAMETER.isSufficient(getLanguageLevel(builder))) flags |= BasicReferenceParser.VAR_TYPE;
|
||||
return parseListElement(builder, typed, flags, myJavaElementTypeContainer.PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseListElement(PsiBuilder builder, boolean typed, int typeFlags, IElementType type) {
|
||||
private @Nullable PsiBuilder.Marker parseListElement(PsiBuilder builder, boolean typed, int typeFlags, IElementType type) {
|
||||
PsiBuilder.Marker param = builder.mark();
|
||||
|
||||
Pair<PsiBuilder.Marker, Boolean> modListInfo = parseModifierList(builder);
|
||||
@@ -797,11 +786,10 @@ public class BasicDeclarationParser {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseFieldOrLocalVariable(PsiBuilder builder,
|
||||
PsiBuilder.Marker declaration,
|
||||
int declarationStart,
|
||||
BaseContext context) {
|
||||
private @Nullable PsiBuilder.Marker parseFieldOrLocalVariable(PsiBuilder builder,
|
||||
PsiBuilder.Marker declaration,
|
||||
int declarationStart,
|
||||
BaseContext context) {
|
||||
final IElementType varType;
|
||||
if (context == BaseContext.CLASS || context == BaseContext.ANNOTATION_INTERFACE || context == BaseContext.FILE) {
|
||||
varType = myJavaElementTypeContainer.FIELD;
|
||||
@@ -924,8 +912,7 @@ public class BasicDeclarationParser {
|
||||
return paired;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseAnnotations(final PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseAnnotations(final PsiBuilder builder) {
|
||||
PsiBuilder.Marker firstAnno = null;
|
||||
|
||||
while (builder.getTokenType() == JavaTokenType.AT) {
|
||||
@@ -936,8 +923,7 @@ public class BasicDeclarationParser {
|
||||
return firstAnno;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseAnnotation(final PsiBuilder builder) {
|
||||
public @NotNull PsiBuilder.Marker parseAnnotation(final PsiBuilder builder) {
|
||||
assert builder.getTokenType() == JavaTokenType.AT : builder.getTokenType();
|
||||
final PsiBuilder.Marker anno = builder.mark();
|
||||
builder.advanceLexer();
|
||||
@@ -1026,8 +1012,7 @@ public class BasicDeclarationParser {
|
||||
return pair;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseAnnotationValue(PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseAnnotationValue(PsiBuilder builder) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.AT) {
|
||||
return parseAnnotation(builder);
|
||||
|
||||
+2
-4
@@ -38,8 +38,7 @@ public class BasicExpressionParser {
|
||||
myParser = parser;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
if (useNewImplementation) {
|
||||
return myNewExpressionParser.parse(builder);
|
||||
}
|
||||
@@ -89,9 +88,8 @@ public class BasicExpressionParser {
|
||||
/**
|
||||
* @deprecated plugin compatibility, use the one from the StatementParser
|
||||
*/
|
||||
@Nullable
|
||||
@Deprecated
|
||||
public PsiBuilder.Marker parseCaseLabel(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseCaseLabel(@NotNull PsiBuilder builder) {
|
||||
return myParser.getStatementParser().parseCaseLabel(builder).first;
|
||||
}
|
||||
}
|
||||
@@ -112,8 +112,7 @@ public class BasicFileParser {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected PsiBuilder.Marker parseInitial(PsiBuilder builder) {
|
||||
protected @Nullable PsiBuilder.Marker parseInitial(PsiBuilder builder) {
|
||||
return myParser.getDeclarationParser().parse(builder, BasicDeclarationParser.BaseContext.FILE);
|
||||
}
|
||||
|
||||
@@ -141,8 +140,7 @@ public class BasicFileParser {
|
||||
done(statement, myJavaElementTypeContainer.PACKAGE_STATEMENT, myWhiteSpaceAndCommentSetHolder);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected Pair<PsiBuilder.Marker, Boolean> parseImportList(PsiBuilder builder, Predicate<? super PsiBuilder> stopper) {
|
||||
protected @NotNull Pair<PsiBuilder.Marker, Boolean> parseImportList(PsiBuilder builder, Predicate<? super PsiBuilder> stopper) {
|
||||
PsiBuilder.Marker list = builder.mark();
|
||||
|
||||
boolean isEmpty = true;
|
||||
@@ -186,8 +184,7 @@ public class BasicFileParser {
|
||||
return Pair.create(list, isEmpty);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected PsiBuilder.Marker parseImportStatement(PsiBuilder builder) {
|
||||
protected @Nullable PsiBuilder.Marker parseImportStatement(PsiBuilder builder) {
|
||||
if (builder.getTokenType() != JavaTokenType.IMPORT_KEYWORD) return null;
|
||||
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
@@ -233,8 +230,7 @@ public class BasicFileParser {
|
||||
return myJavaElementTypeContainer.IMPORT_STATEMENT;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static @NlsContexts.ParsingError String error(@NotNull AbstractBundle bundle, @NotNull String errorMessageKey) {
|
||||
private static @NotNull @NlsContexts.ParsingError String error(@NotNull AbstractBundle bundle, @NotNull String errorMessageKey) {
|
||||
return bundle.getMessage(errorMessageKey);
|
||||
}
|
||||
}
|
||||
+3
-5
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.lang.java.parser;
|
||||
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
@@ -606,13 +606,11 @@ public final class BasicJavaDocParser {
|
||||
tagData.done(javaDocElementTypeContainer.DOC_TAG_VALUE_ELEMENT);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static IElementType getTokenType(PsiBuilder builder) {
|
||||
private static @Nullable IElementType getTokenType(PsiBuilder builder) {
|
||||
return getTokenType(builder, true);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static IElementType getTokenType(PsiBuilder builder, boolean skipWhitespace) {
|
||||
private static @Nullable IElementType getTokenType(PsiBuilder builder, boolean skipWhitespace) {
|
||||
IElementType tokenType;
|
||||
while ((tokenType = builder.getTokenType()) == JavaDocTokenType.DOC_SPACE) {
|
||||
builder.remapCurrentToken(TokenType.WHITE_SPACE);
|
||||
|
||||
+10
-17
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.lang.java.parser;
|
||||
|
||||
import com.intellij.psi.impl.source.AbstractBasicJavaElementTypeFactory;
|
||||
@@ -6,28 +6,21 @@ import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
abstract public class BasicJavaParser {
|
||||
public abstract class BasicJavaParser {
|
||||
|
||||
@NotNull
|
||||
abstract public BasicFileParser getFileParser();
|
||||
public abstract @NotNull BasicFileParser getFileParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicModuleParser getModuleParser();
|
||||
public abstract @NotNull BasicModuleParser getModuleParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicDeclarationParser getDeclarationParser();
|
||||
public abstract @NotNull BasicDeclarationParser getDeclarationParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicStatementParser getStatementParser();
|
||||
public abstract @NotNull BasicStatementParser getStatementParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicExpressionParser getExpressionParser();
|
||||
public abstract @NotNull BasicExpressionParser getExpressionParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicReferenceParser getReferenceParser();
|
||||
public abstract @NotNull BasicReferenceParser getReferenceParser();
|
||||
|
||||
@NotNull
|
||||
abstract public BasicPatternParser getPatternParser();
|
||||
public abstract @NotNull BasicPatternParser getPatternParser();
|
||||
|
||||
abstract public AbstractBasicJavaElementTypeFactory getJavaElementTypeFactory();
|
||||
public abstract AbstractBasicJavaElementTypeFactory getJavaElementTypeFactory();
|
||||
}
|
||||
+20
-26
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.lang.java.parser;
|
||||
|
||||
import com.intellij.core.JavaPsiBundle;
|
||||
@@ -46,8 +46,7 @@ public final class BasicJavaParserUtil {
|
||||
builder.putUserData(LANG_LEVEL_KEY, level);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static LanguageLevel getLanguageLevel(final PsiBuilder builder) {
|
||||
public static @NotNull LanguageLevel getLanguageLevel(final PsiBuilder builder) {
|
||||
final LanguageLevel level = builder.getUserData(LANG_LEVEL_KEY);
|
||||
assert level != null : builder;
|
||||
return level;
|
||||
@@ -72,8 +71,7 @@ public final class BasicJavaParserUtil {
|
||||
marker.setCustomEdgeTokenBinders(left, right);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static IElementType exprType(@Nullable final PsiBuilder.Marker marker) {
|
||||
public static @Nullable IElementType exprType(final @Nullable PsiBuilder.Marker marker) {
|
||||
return marker != null ? marker.getTokenType() : null;
|
||||
}
|
||||
|
||||
@@ -84,7 +82,7 @@ public final class BasicJavaParserUtil {
|
||||
|
||||
public static void error(final PsiBuilder builder,
|
||||
@NotNull @NlsContexts.ParsingError String message,
|
||||
@Nullable final PsiBuilder.Marker before) {
|
||||
final @Nullable PsiBuilder.Marker before) {
|
||||
if (before == null) {
|
||||
error(builder, message);
|
||||
}
|
||||
@@ -180,20 +178,18 @@ public final class BasicJavaParserUtil {
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode parseFragment(final ASTNode chameleon, final BasicJavaParserUtil.ParserWrapper wrapper,
|
||||
Function<LanguageLevel, JavaDocLexer> javaDocLexer,
|
||||
Function<LanguageLevel, BasicJavaLexer> javaLexer) {
|
||||
public static @Nullable ASTNode parseFragment(final ASTNode chameleon, final BasicJavaParserUtil.ParserWrapper wrapper,
|
||||
Function<LanguageLevel, JavaDocLexer> javaDocLexer,
|
||||
Function<LanguageLevel, BasicJavaLexer> javaLexer) {
|
||||
return parseFragment(chameleon, wrapper, true, LanguageLevel.HIGHEST, javaDocLexer, javaLexer);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode parseFragment(final ASTNode chameleon,
|
||||
final BasicJavaParserUtil.ParserWrapper wrapper,
|
||||
final boolean eatAll,
|
||||
final LanguageLevel level,
|
||||
Function<LanguageLevel, JavaDocLexer> javaDocLexer,
|
||||
Function<LanguageLevel, ? extends Lexer> javaLexer) {
|
||||
public static @Nullable ASTNode parseFragment(final ASTNode chameleon,
|
||||
final BasicJavaParserUtil.ParserWrapper wrapper,
|
||||
final boolean eatAll,
|
||||
final LanguageLevel level,
|
||||
Function<LanguageLevel, JavaDocLexer> javaDocLexer,
|
||||
Function<LanguageLevel, ? extends Lexer> javaLexer) {
|
||||
final PsiElement psi = chameleon.getTreeParent() != null ? chameleon.getTreeParent().getPsi() : chameleon.getPsi();
|
||||
assert psi != null : chameleon;
|
||||
final Project project = psi.getProject();
|
||||
@@ -220,11 +216,10 @@ public final class BasicJavaParserUtil {
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public static PsiBuilder createBuilder(@NotNull final ASTNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<LanguageLevel, BasicJavaLexer> lexerFunction,
|
||||
@NotNull Function<PsiFile, TokenList> psiAsLexer) {
|
||||
public static @NotNull PsiBuilder createBuilder(final @NotNull ASTNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<LanguageLevel, BasicJavaLexer> lexerFunction,
|
||||
@NotNull Function<PsiFile, TokenList> psiAsLexer) {
|
||||
final PsiElement psi = chameleon.getPsi();
|
||||
assert psi != null : chameleon;
|
||||
final Project project = psi.getProject();
|
||||
@@ -251,10 +246,9 @@ public final class BasicJavaParserUtil {
|
||||
return builder;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static PsiBuilder createBuilder(@NotNull LighterLazyParseableNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<LanguageLevel, BasicJavaLexer> lexerFunction) {
|
||||
public static @NotNull PsiBuilder createBuilder(@NotNull LighterLazyParseableNode chameleon,
|
||||
@NotNull Function<PsiElement, LanguageLevel> languageLevelFunction,
|
||||
@NotNull Function<LanguageLevel, BasicJavaLexer> lexerFunction) {
|
||||
final PsiElement psi = chameleon.getContainingFile();
|
||||
assert psi != null : chameleon;
|
||||
final Project project = psi.getProject();
|
||||
|
||||
+2
-4
@@ -33,8 +33,7 @@ public class BasicModuleParser {
|
||||
myJavaElementTypeContainer = parser.getJavaElementTypeFactory().getContainer();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
PsiBuilder.Marker module = builder.mark();
|
||||
|
||||
PsiBuilder.Marker firstAnnotation = myParser.getDeclarationParser().parseAnnotations(builder);
|
||||
@@ -211,8 +210,7 @@ public class BasicModuleParser {
|
||||
return parsePackageStatement(builder, statement, myJavaElementTypeContainer.OPENS_STATEMENT);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parsePackageStatement(PsiBuilder builder, PsiBuilder.Marker statement, IElementType type) {
|
||||
private @NotNull PsiBuilder.Marker parsePackageStatement(PsiBuilder builder, PsiBuilder.Marker statement, IElementType type) {
|
||||
boolean hasError = false;
|
||||
|
||||
if (parseClassOrPackageRef(builder) != null) {
|
||||
|
||||
+24
-45
@@ -54,8 +54,7 @@ public class BasicOldExpressionParser {
|
||||
BASIC_PRIMITIVE_TYPE_BIT_SET, TokenSet.create(JavaTokenType.IDENTIFIER, JavaTokenType.AT));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parse(@NotNull PsiBuilder builder) {
|
||||
return parseAssignment(builder);
|
||||
}
|
||||
|
||||
@@ -68,8 +67,7 @@ public class BasicOldExpressionParser {
|
||||
|
||||
//for compatibility
|
||||
@SuppressWarnings("unused")
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseCaseLabel(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseCaseLabel(@NotNull PsiBuilder builder) {
|
||||
return myParser.getStatementParser().parseCaseLabel(builder).first;
|
||||
}
|
||||
|
||||
@@ -103,8 +101,7 @@ public class BasicOldExpressionParser {
|
||||
return parseExpression(builder, ExprType.CONDITIONAL_AND, mode);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseConditional(final PsiBuilder builder, final int mode) {
|
||||
public @Nullable PsiBuilder.Marker parseConditional(final PsiBuilder builder, final int mode) {
|
||||
final PsiBuilder.Marker condition = parseExpression(builder, ExprType.CONDITIONAL_OR, mode);
|
||||
if (condition == null) return null;
|
||||
|
||||
@@ -137,8 +134,7 @@ public class BasicOldExpressionParser {
|
||||
return ternary;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseExpression(final PsiBuilder builder, final ExprType type, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parseExpression(final PsiBuilder builder, final ExprType type, final int mode) {
|
||||
switch (type) {
|
||||
case CONDITIONAL_OR:
|
||||
return parseBinary(builder, ExprType.CONDITIONAL_AND, CONDITIONAL_OR_OPS, mode);
|
||||
@@ -182,8 +178,7 @@ public class BasicOldExpressionParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseBinary(final PsiBuilder builder, final ExprType type, final TokenSet ops, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parseBinary(final PsiBuilder builder, final ExprType type, final TokenSet ops, final int mode) {
|
||||
PsiBuilder.Marker result = parseExpression(builder, type, mode);
|
||||
if (result == null) return null;
|
||||
int operandCount = 1;
|
||||
@@ -214,8 +209,7 @@ public class BasicOldExpressionParser {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseRelational(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parseRelational(final PsiBuilder builder, final int mode) {
|
||||
PsiBuilder.Marker left = parseExpression(builder, ExprType.SHIFT, mode);
|
||||
if (left == null) return null;
|
||||
|
||||
@@ -264,8 +258,7 @@ public class BasicOldExpressionParser {
|
||||
return left;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseUnary(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parseUnary(final PsiBuilder builder, final int mode) {
|
||||
final IElementType tokenType = builder.getTokenType();
|
||||
|
||||
if (PREFIX_OPS.contains(tokenType)) {
|
||||
@@ -321,8 +314,7 @@ public class BasicOldExpressionParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePostfix(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePostfix(final PsiBuilder builder, final int mode) {
|
||||
PsiBuilder.Marker operand = parsePrimary(builder, null, -1, mode);
|
||||
if (operand == null) return null;
|
||||
|
||||
@@ -338,8 +330,7 @@ public class BasicOldExpressionParser {
|
||||
|
||||
private enum BreakPoint {P1, P2, P4}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePrimary(PsiBuilder builder, @Nullable BreakPoint breakPoint, int breakOffset, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePrimary(PsiBuilder builder, @Nullable BreakPoint breakPoint, int breakOffset, final int mode) {
|
||||
PsiBuilder.Marker startMarker = builder.mark();
|
||||
|
||||
PsiBuilder.Marker expr = parsePrimaryExpressionStart(builder, mode);
|
||||
@@ -522,8 +513,7 @@ public class BasicOldExpressionParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePrimaryExpressionStart(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePrimaryExpressionStart(final PsiBuilder builder, final int mode) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
|
||||
if (tokenType == JavaTokenType.TEXT_BLOCK_TEMPLATE_BEGIN || tokenType == JavaTokenType.STRING_TEMPLATE_BEGIN) {
|
||||
@@ -656,16 +646,14 @@ public class BasicOldExpressionParser {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseArrayInitializer(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseArrayInitializer(PsiBuilder builder) {
|
||||
return parseArrayInitializer(builder, myJavaElementTypeContainer.ARRAY_INITIALIZER_EXPRESSION, this::parse, "expected.expression");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseArrayInitializer(@NotNull PsiBuilder builder,
|
||||
@NotNull IElementType type,
|
||||
@NotNull Function<? super PsiBuilder, PsiBuilder.Marker> elementParser,
|
||||
@NotNull @PropertyKey(resourceBundle = JavaPsiBundle.BUNDLE) String missingElementKey) {
|
||||
public @NotNull PsiBuilder.Marker parseArrayInitializer(@NotNull PsiBuilder builder,
|
||||
@NotNull IElementType type,
|
||||
@NotNull Function<? super PsiBuilder, PsiBuilder.Marker> elementParser,
|
||||
@NotNull @PropertyKey(resourceBundle = JavaPsiBundle.BUNDLE) String missingElementKey) {
|
||||
PsiBuilder.Marker arrayInit = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -736,8 +724,7 @@ public class BasicOldExpressionParser {
|
||||
return templateExpression;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseNew(PsiBuilder builder, @Nullable PsiBuilder.Marker start) {
|
||||
private @NotNull PsiBuilder.Marker parseNew(PsiBuilder builder, @Nullable PsiBuilder.Marker start) {
|
||||
PsiBuilder.Marker newExpr = (start != null ? start.precede() : builder.mark());
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -823,8 +810,7 @@ public class BasicOldExpressionParser {
|
||||
return newExpr;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder) {
|
||||
private @Nullable PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder) {
|
||||
PsiBuilder.Marker expr = builder.mark();
|
||||
|
||||
boolean primitive = BASIC_PRIMITIVE_TYPE_BIT_SET.contains(builder.getTokenType());
|
||||
@@ -838,8 +824,7 @@ public class BasicOldExpressionParser {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
private @Nullable PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.DOT) {
|
||||
return parseClassObjectAccess(builder, expr, optionalClassKeyword);
|
||||
@@ -851,8 +836,7 @@ public class BasicOldExpressionParser {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassObjectAccess(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
private @Nullable PsiBuilder.Marker parseClassObjectAccess(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
final PsiBuilder.Marker mark = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -870,8 +854,7 @@ public class BasicOldExpressionParser {
|
||||
return expr;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseMethodReference(final PsiBuilder builder, final PsiBuilder.Marker start) {
|
||||
private @NotNull PsiBuilder.Marker parseMethodReference(final PsiBuilder builder, final PsiBuilder.Marker start) {
|
||||
builder.advanceLexer();
|
||||
|
||||
myParser.getReferenceParser().parseReferenceParameterList(builder, false, false);
|
||||
@@ -884,8 +867,7 @@ public class BasicOldExpressionParser {
|
||||
return start;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseLambdaAfterParenth(final PsiBuilder builder) {
|
||||
private @Nullable PsiBuilder.Marker parseLambdaAfterParenth(final PsiBuilder builder) {
|
||||
final boolean isLambda;
|
||||
final boolean isTyped;
|
||||
|
||||
@@ -937,8 +919,7 @@ public class BasicOldExpressionParser {
|
||||
return isLambda ? parseLambdaExpression(builder, isTyped) : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseLambdaExpression(final PsiBuilder builder, final boolean typed) {
|
||||
private @Nullable PsiBuilder.Marker parseLambdaExpression(final PsiBuilder builder, final boolean typed) {
|
||||
final PsiBuilder.Marker start = builder.mark();
|
||||
|
||||
myParser.getDeclarationParser().parseLambdaParameterList(builder, typed);
|
||||
@@ -964,8 +945,7 @@ public class BasicOldExpressionParser {
|
||||
return start;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseArgumentList(final PsiBuilder builder) {
|
||||
public @NotNull PsiBuilder.Marker parseArgumentList(final PsiBuilder builder) {
|
||||
final PsiBuilder.Marker list = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -1023,8 +1003,7 @@ public class BasicOldExpressionParser {
|
||||
emptyElement(builder, myJavaElementTypeContainer.EMPTY_EXPRESSION);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static IElementType getGtTokenType(final PsiBuilder builder) {
|
||||
private static @Nullable IElementType getGtTokenType(final PsiBuilder builder) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType != JavaTokenType.GT) return tokenType;
|
||||
|
||||
|
||||
+18
-32
@@ -134,8 +134,7 @@ public class BasicPrattExpressionParser {
|
||||
return lhs;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseUnary(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parseUnary(final PsiBuilder builder, final int mode) {
|
||||
final IElementType tokenType = builder.getTokenType();
|
||||
|
||||
if (PREFIX_OPS.contains(tokenType)) {
|
||||
@@ -192,8 +191,7 @@ public class BasicPrattExpressionParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePostfix(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePostfix(final PsiBuilder builder, final int mode) {
|
||||
PsiBuilder.Marker operand = parsePrimary(builder, null, -1, mode);
|
||||
if (operand == null) return null;
|
||||
|
||||
@@ -207,8 +205,7 @@ public class BasicPrattExpressionParser {
|
||||
return operand;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePrimary(PsiBuilder builder, @Nullable BreakPoint breakPoint, int breakOffset, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePrimary(PsiBuilder builder, @Nullable BreakPoint breakPoint, int breakOffset, final int mode) {
|
||||
PsiBuilder.Marker startMarker = builder.mark();
|
||||
|
||||
PsiBuilder.Marker expr = parsePrimaryExpressionStart(builder, mode);
|
||||
@@ -392,8 +389,7 @@ public class BasicPrattExpressionParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parsePrimaryExpressionStart(final PsiBuilder builder, final int mode) {
|
||||
private @Nullable PsiBuilder.Marker parsePrimaryExpressionStart(final PsiBuilder builder, final int mode) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
|
||||
if (tokenType == JavaTokenType.TEXT_BLOCK_TEMPLATE_BEGIN || tokenType == JavaTokenType.STRING_TEMPLATE_BEGIN) {
|
||||
@@ -524,8 +520,7 @@ public class BasicPrattExpressionParser {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder) {
|
||||
private @Nullable PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder) {
|
||||
PsiBuilder.Marker expr = builder.mark();
|
||||
|
||||
boolean primitive = BASIC_PRIMITIVE_TYPE_BIT_SET.contains(builder.getTokenType());
|
||||
@@ -539,8 +534,7 @@ public class BasicPrattExpressionParser {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
private @Nullable PsiBuilder.Marker parseClassAccessOrMethodReference(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.DOT) {
|
||||
return parseClassObjectAccess(builder, expr, optionalClassKeyword);
|
||||
@@ -552,8 +546,7 @@ public class BasicPrattExpressionParser {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseMethodReference(final PsiBuilder builder, final PsiBuilder.Marker start) {
|
||||
private @NotNull PsiBuilder.Marker parseMethodReference(final PsiBuilder builder, final PsiBuilder.Marker start) {
|
||||
builder.advanceLexer();
|
||||
|
||||
myParser.getReferenceParser().parseReferenceParameterList(builder, false, false);
|
||||
@@ -595,8 +588,7 @@ public class BasicPrattExpressionParser {
|
||||
return templateExpression;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseNew(PsiBuilder builder, @Nullable PsiBuilder.Marker start) {
|
||||
private @NotNull PsiBuilder.Marker parseNew(PsiBuilder builder, @Nullable PsiBuilder.Marker start) {
|
||||
PsiBuilder.Marker newExpr = (start != null ? start.precede() : builder.mark());
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -682,17 +674,15 @@ public class BasicPrattExpressionParser {
|
||||
return newExpr;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseArrayInitializer(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseArrayInitializer(PsiBuilder builder) {
|
||||
return parseArrayInitializer(builder, myJavaElementTypeContainer.ARRAY_INITIALIZER_EXPRESSION, this::parse,
|
||||
"expected.expression");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseArrayInitializer(@NotNull PsiBuilder builder,
|
||||
@NotNull IElementType type,
|
||||
@NotNull Function<? super PsiBuilder, PsiBuilder.Marker> elementParser,
|
||||
@NotNull @PropertyKey(resourceBundle = JavaPsiBundle.BUNDLE) String missingElementKey) {
|
||||
public @NotNull PsiBuilder.Marker parseArrayInitializer(@NotNull PsiBuilder builder,
|
||||
@NotNull IElementType type,
|
||||
@NotNull Function<? super PsiBuilder, PsiBuilder.Marker> elementParser,
|
||||
@NotNull @PropertyKey(resourceBundle = JavaPsiBundle.BUNDLE) String missingElementKey) {
|
||||
PsiBuilder.Marker arrayInit = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -734,8 +724,7 @@ public class BasicPrattExpressionParser {
|
||||
return arrayInit;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseArgumentList(final PsiBuilder builder) {
|
||||
public @NotNull PsiBuilder.Marker parseArgumentList(final PsiBuilder builder) {
|
||||
final PsiBuilder.Marker list = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -789,8 +778,7 @@ public class BasicPrattExpressionParser {
|
||||
return list;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseLambdaAfterParenth(final PsiBuilder builder) {
|
||||
private @Nullable PsiBuilder.Marker parseLambdaAfterParenth(final PsiBuilder builder) {
|
||||
final boolean isLambda;
|
||||
final boolean isTyped;
|
||||
|
||||
@@ -842,8 +830,7 @@ public class BasicPrattExpressionParser {
|
||||
return isLambda ? parseLambdaExpression(builder, isTyped) : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseLambdaExpression(final PsiBuilder builder, final boolean typed) {
|
||||
private @Nullable PsiBuilder.Marker parseLambdaExpression(final PsiBuilder builder, final boolean typed) {
|
||||
final PsiBuilder.Marker start = builder.mark();
|
||||
|
||||
myParser.getDeclarationParser().parseLambdaParameterList(builder, typed);
|
||||
@@ -913,8 +900,7 @@ public class BasicPrattExpressionParser {
|
||||
gtToken.collapse(type);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseClassObjectAccess(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
private @Nullable PsiBuilder.Marker parseClassObjectAccess(PsiBuilder builder, PsiBuilder.Marker expr, boolean optionalClassKeyword) {
|
||||
final PsiBuilder.Marker mark = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -950,7 +936,7 @@ public class BasicPrattExpressionParser {
|
||||
int mode);
|
||||
}
|
||||
|
||||
private final static class ParserData {
|
||||
private static final class ParserData {
|
||||
private final int myPrecedence;
|
||||
private final InfixParser myParser;
|
||||
|
||||
|
||||
+13
-20
@@ -47,14 +47,12 @@ public class BasicReferenceParser {
|
||||
myJavaElementTypeContainer = javaParser.getJavaElementTypeFactory().getContainer();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseType(PsiBuilder builder, int flags) {
|
||||
public @Nullable PsiBuilder.Marker parseType(PsiBuilder builder, int flags) {
|
||||
TypeInfo typeInfo = parseTypeInfo(builder, flags);
|
||||
return typeInfo != null ? typeInfo.marker : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public TypeInfo parseTypeInfo(PsiBuilder builder, int flags) {
|
||||
public @Nullable TypeInfo parseTypeInfo(PsiBuilder builder, int flags) {
|
||||
TypeInfo typeInfo = parseTypeInfo(builder, flags, false);
|
||||
|
||||
if (typeInfo != null) {
|
||||
@@ -80,8 +78,7 @@ public class BasicReferenceParser {
|
||||
return typeInfo;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private TypeInfo parseTypeInfo(PsiBuilder builder, int flags, boolean badWildcard) {
|
||||
private @Nullable TypeInfo parseTypeInfo(PsiBuilder builder, int flags, boolean badWildcard) {
|
||||
if (builder.getTokenType() == null) return null;
|
||||
|
||||
TypeInfo typeInfo = new TypeInfo();
|
||||
@@ -189,12 +186,11 @@ public class BasicReferenceParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseJavaCodeReference(PsiBuilder builder,
|
||||
boolean eatLastDot,
|
||||
boolean parameterList,
|
||||
boolean isNew,
|
||||
boolean diamonds) {
|
||||
public @Nullable PsiBuilder.Marker parseJavaCodeReference(PsiBuilder builder,
|
||||
boolean eatLastDot,
|
||||
boolean parameterList,
|
||||
boolean isNew,
|
||||
boolean diamonds) {
|
||||
return parseJavaCodeReference(builder, eatLastDot, parameterList, false, false, isNew, diamonds, new TypeInfo());
|
||||
}
|
||||
|
||||
@@ -204,10 +200,9 @@ public class BasicReferenceParser {
|
||||
return !typeInfo.hasErrors;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiBuilder.Marker parseJavaCodeReference(PsiBuilder builder, boolean eatLastDot, boolean parameterList, boolean isImport,
|
||||
boolean isStaticImport, boolean isNew, boolean diamonds,
|
||||
TypeInfo typeInfo) {
|
||||
private @Nullable PsiBuilder.Marker parseJavaCodeReference(PsiBuilder builder, boolean eatLastDot, boolean parameterList, boolean isImport,
|
||||
boolean isStaticImport, boolean isNew, boolean diamonds,
|
||||
TypeInfo typeInfo) {
|
||||
PsiBuilder.Marker refElement = builder.mark();
|
||||
|
||||
myParser.getDeclarationParser().parseAnnotations(builder);
|
||||
@@ -315,8 +310,7 @@ public class BasicReferenceParser {
|
||||
return isOk;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseTypeParameters(PsiBuilder builder) {
|
||||
public @NotNull PsiBuilder.Marker parseTypeParameters(PsiBuilder builder) {
|
||||
PsiBuilder.Marker list = builder.mark();
|
||||
if (!expect(builder, JavaTokenType.LT)) {
|
||||
list.done(myJavaElementTypeContainer.TYPE_PARAMETER_LIST);
|
||||
@@ -353,8 +347,7 @@ public class BasicReferenceParser {
|
||||
return list;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseTypeParameter(PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseTypeParameter(PsiBuilder builder) {
|
||||
PsiBuilder.Marker param = builder.mark();
|
||||
|
||||
myParser.getDeclarationParser().parseAnnotations(builder);
|
||||
|
||||
+22
-44
@@ -58,20 +58,17 @@ public class BasicStatementParser {
|
||||
myJavaElementTypeContainer = javaParser.getJavaElementTypeFactory().getContainer();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseCodeBlock(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseCodeBlock(@NotNull PsiBuilder builder) {
|
||||
return parseCodeBlock(builder, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseCodeBlock(@NotNull PsiBuilder builder, boolean isStatement) {
|
||||
public @Nullable PsiBuilder.Marker parseCodeBlock(@NotNull PsiBuilder builder, boolean isStatement) {
|
||||
if (builder.getTokenType() != JavaTokenType.LBRACE) return null;
|
||||
if (isStatement && isParseStatementCodeBlocksDeep(builder)) return parseCodeBlockDeep(builder, false);
|
||||
return parseBlockLazy(builder, JavaTokenType.LBRACE, JavaTokenType.RBRACE, myJavaElementTypeContainer.CODE_BLOCK);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseCodeBlockDeep(@NotNull PsiBuilder builder, boolean parseUntilEof) {
|
||||
public @Nullable PsiBuilder.Marker parseCodeBlockDeep(@NotNull PsiBuilder builder, boolean parseUntilEof) {
|
||||
if (builder.getTokenType() != JavaTokenType.LBRACE) return null;
|
||||
|
||||
PsiBuilder.Marker codeBlock = builder.mark();
|
||||
@@ -121,8 +118,7 @@ public class BasicStatementParser {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PsiBuilder.Marker parseStatement(@NotNull PsiBuilder builder) {
|
||||
public @Nullable PsiBuilder.Marker parseStatement(@NotNull PsiBuilder builder) {
|
||||
IElementType tokenType = builder.getTokenType();
|
||||
if (tokenType == JavaTokenType.IF_KEYWORD) {
|
||||
return parseIfStatement(builder);
|
||||
@@ -325,8 +321,7 @@ public class BasicStatementParser {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseIfStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseIfStatement(PsiBuilder builder) {
|
||||
ArrayList<PsiBuilder.Marker> stack = null;
|
||||
PsiBuilder.Marker statement;
|
||||
while (true) {
|
||||
@@ -361,8 +356,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseWhileStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseWhileStatement(PsiBuilder builder) {
|
||||
return parseExprInParenthWithBlock(builder, myJavaElementTypeContainer.WHILE_STATEMENT, false);
|
||||
}
|
||||
|
||||
@@ -404,8 +398,7 @@ public class BasicStatementParser {
|
||||
return isRecordPattern;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseForStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseForStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -447,8 +440,7 @@ public class BasicStatementParser {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseForLoopFromInitializer(PsiBuilder builder, PsiBuilder.Marker statement) {
|
||||
private @NotNull PsiBuilder.Marker parseForLoopFromInitializer(PsiBuilder builder, PsiBuilder.Marker statement) {
|
||||
if (parseStatement(builder) == null) {
|
||||
error(builder, JavaPsiBundle.message("expected.statement"));
|
||||
if (!expect(builder, JavaTokenType.RPARENTH)) {
|
||||
@@ -529,8 +521,7 @@ public class BasicStatementParser {
|
||||
expressionStatement.setCustomEdgeTokenBinders(null, WhitespacesBinders.DEFAULT_RIGHT_BINDER);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseForEachFromColon(PsiBuilder builder, PsiBuilder.Marker statement, IElementType foreachStatement) {
|
||||
private @NotNull PsiBuilder.Marker parseForEachFromColon(PsiBuilder builder, PsiBuilder.Marker statement, IElementType foreachStatement) {
|
||||
builder.advanceLexer();
|
||||
|
||||
if (myParser.getExpressionParser().parse(builder) == null) {
|
||||
@@ -549,8 +540,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseDoWhileStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseDoWhileStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -569,17 +559,15 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseSwitchStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseSwitchStatement(PsiBuilder builder) {
|
||||
return parseExprInParenthWithBlock(builder, myJavaElementTypeContainer.SWITCH_STATEMENT, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return marker and whether it contains expression inside
|
||||
*/
|
||||
@NotNull
|
||||
@ApiStatus.Internal
|
||||
public Pair<PsiBuilder.@Nullable Marker, Boolean> parseCaseLabel(PsiBuilder builder) {
|
||||
public @NotNull Pair<PsiBuilder.@Nullable Marker, Boolean> parseCaseLabel(PsiBuilder builder) {
|
||||
if (builder.getTokenType() == JavaTokenType.DEFAULT_KEYWORD) {
|
||||
PsiBuilder.Marker defaultElement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
@@ -658,8 +646,7 @@ public class BasicStatementParser {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseBreakStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseBreakStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
expect(builder, JavaTokenType.IDENTIFIER);
|
||||
@@ -668,8 +655,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseYieldStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseYieldStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.remapCurrentToken(JavaTokenType.YIELD_KEYWORD);
|
||||
builder.advanceLexer();
|
||||
@@ -685,8 +671,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseContinueStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseContinueStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
expect(builder, JavaTokenType.IDENTIFIER);
|
||||
@@ -695,8 +680,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseReturnStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseReturnStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
myParser.getExpressionParser().parse(builder);
|
||||
@@ -705,8 +689,7 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseThrowStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseThrowStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -721,13 +704,11 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseSynchronizedStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseSynchronizedStatement(PsiBuilder builder) {
|
||||
return parseExprInParenthWithBlock(builder, myJavaElementTypeContainer.SYNCHRONIZED_STATEMENT, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseTryStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseTryStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -793,8 +774,7 @@ public class BasicStatementParser {
|
||||
return true;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseAssertStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseAssertStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
@@ -812,16 +792,14 @@ public class BasicStatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private PsiBuilder.Marker parseBlockStatement(PsiBuilder builder) {
|
||||
private @NotNull PsiBuilder.Marker parseBlockStatement(PsiBuilder builder) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
parseCodeBlock(builder, true);
|
||||
done(statement, myJavaElementTypeContainer.BLOCK_STATEMENT, myWhiteSpaceAndCommentSetHolder);
|
||||
return statement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public PsiBuilder.Marker parseExprInParenthWithBlock(@NotNull PsiBuilder builder, @NotNull IElementType type, boolean block) {
|
||||
public @NotNull PsiBuilder.Marker parseExprInParenthWithBlock(@NotNull PsiBuilder builder, @NotNull IElementType type, boolean block) {
|
||||
PsiBuilder.Marker statement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
|
||||
+53
-105
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
@@ -113,8 +113,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return results;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getReferenceNameElement(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getReferenceNameElement(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -155,16 +154,14 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getElseElement(@NotNull ASTNode element) {
|
||||
public static @Nullable ASTNode getElseElement(@NotNull ASTNode element) {
|
||||
if (!is(element, BASIC_IF_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, JavaTokenType.ELSE_KEYWORD);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getThenBranch(@NotNull ASTNode element) {
|
||||
public static @Nullable ASTNode getThenBranch(@NotNull ASTNode element) {
|
||||
if (!is(element, BASIC_IF_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
@@ -188,18 +185,15 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getLParenth(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getLParenth(@Nullable ASTNode element) {
|
||||
return findChildByType(element, JavaTokenType.LPARENTH);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getRParenth(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getRParenth(@Nullable ASTNode element) {
|
||||
return findChildByType(element, RPARENTH);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getFinallyBlock(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getFinallyBlock(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_TRY_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
@@ -213,39 +207,32 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getNameIdentifier(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getNameIdentifier(@Nullable ASTNode element) {
|
||||
return findChildByType(element, JavaTokenType.IDENTIFIER);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getInitializer(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getInitializer(@Nullable ASTNode element) {
|
||||
return findChildByType(element, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getDocComment(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getDocComment(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_DOC_COMMENT);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getTypeElement(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getTypeElement(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_TYPE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getModifierList(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getModifierList(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_MODIFIER_LIST);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getLBrace(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getLBrace(@Nullable ASTNode element) {
|
||||
return findChildByType(element, JavaTokenType.LBRACE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getRBrace(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getRBrace(@Nullable ASTNode element) {
|
||||
return findChildByType(element, JavaTokenType.RBRACE);
|
||||
}
|
||||
|
||||
@@ -291,21 +278,18 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PsiElement toPsi(@Nullable ASTNode astNode) {
|
||||
public static @Nullable PsiElement toPsi(@Nullable ASTNode astNode) {
|
||||
return SourceTreeToPsiMap.treeElementToPsi(astNode);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode toNode(@Nullable PsiElement psiElement) {
|
||||
public static @Nullable ASTNode toNode(@Nullable PsiElement psiElement) {
|
||||
if (psiElement == null) {
|
||||
return null;
|
||||
}
|
||||
return psiElement.getNode();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getParentOfType(@Nullable ASTNode e, @NotNull ParentAwareTokenSet set) {
|
||||
public static @Nullable ASTNode getParentOfType(@Nullable ASTNode e, @NotNull ParentAwareTokenSet set) {
|
||||
if (e == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -327,29 +311,25 @@ public final class BasicJavaAstTreeUtil {
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getParentOfType(@Nullable ASTNode e, @NotNull IElementType elementType) {
|
||||
public static @Nullable ASTNode getParentOfType(@Nullable ASTNode e, @NotNull IElementType elementType) {
|
||||
if (e == null) {
|
||||
return null;
|
||||
}
|
||||
return findParent(e, elementType);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getMethodExpression(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getMethodExpression(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_METHOD_CALL_EXPRESSION)) {
|
||||
return null;
|
||||
}
|
||||
return element.getFirstChildNode();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getExpressionList(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getExpressionList(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_EXPRESSION_LIST);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getTypeParameterList(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getTypeParameterList(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_TYPE_PARAMETER_LIST);
|
||||
}
|
||||
|
||||
@@ -364,8 +344,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
!is(element, BASIC_DOC_SNIPPET_ATTRIBUTE_VALUE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getTagName(@Nullable ASTNode element) {
|
||||
public static @Nullable String getTagName(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -380,8 +359,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return text.substring(1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getROperand(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getROperand(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -391,14 +369,12 @@ public final class BasicJavaAstTreeUtil {
|
||||
return findChildByType(element, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getBlock(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getBlock(@Nullable ASTNode statement) {
|
||||
if (statement == null) return null;
|
||||
return findChildByType(statement, STATEMENT_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getAnonymousClass(@Nullable ASTNode expression) {
|
||||
public static @Nullable ASTNode getAnonymousClass(@Nullable ASTNode expression) {
|
||||
if (expression == null) return null;
|
||||
return findChildByType(expression, BASIC_ANONYMOUS_CLASS);
|
||||
}
|
||||
@@ -424,8 +400,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return element;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode findElementInRange(@NotNull PsiFile file, int startOffset, int endOffset, @NotNull IElementType elementType) {
|
||||
public static @Nullable ASTNode findElementInRange(@NotNull PsiFile file, int startOffset, int endOffset, @NotNull IElementType elementType) {
|
||||
PsiElement element1 = file.getViewProvider().findElementAt(startOffset, JavaLanguage.INSTANCE);
|
||||
PsiElement element2 = file.getViewProvider().findElementAt(endOffset - 1, JavaLanguage.INSTANCE);
|
||||
if (element1 instanceof PsiWhiteSpace) {
|
||||
@@ -449,8 +424,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return element;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForInitialization(@Nullable ASTNode forStatement) {
|
||||
public static @Nullable ASTNode getForInitialization(@Nullable ASTNode forStatement) {
|
||||
|
||||
if (!is(forStatement, BASIC_FOR_STATEMENT)) {
|
||||
return null;
|
||||
@@ -494,16 +468,14 @@ public final class BasicJavaAstTreeUtil {
|
||||
return result == null ? null : result.getNode();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getParentOfType(@Nullable ASTNode e, @NotNull ParentAwareTokenSet types, boolean strict) {
|
||||
public static @Nullable ASTNode getParentOfType(@Nullable ASTNode e, @NotNull ParentAwareTokenSet types, boolean strict) {
|
||||
if (!strict && is(e, types)) {
|
||||
return e;
|
||||
}
|
||||
return getParentOfType(e, types);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PsiElement getParentOfType(@Nullable PsiElement e, @NotNull Set<IElementType> types, boolean strict) {
|
||||
public static @Nullable PsiElement getParentOfType(@Nullable PsiElement e, @NotNull Set<IElementType> types, boolean strict) {
|
||||
if (!strict && e != null && is(e.getNode(), types)) {
|
||||
return e;
|
||||
}
|
||||
@@ -513,29 +485,25 @@ public final class BasicJavaAstTreeUtil {
|
||||
return toPsi(getParentOfType(e.getNode(), ParentAwareTokenSet.create(types)));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getCatchBlock(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getCatchBlock(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_CATCH_SECTION)) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, BASIC_CODE_BLOCK);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getParameter(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getParameter(@Nullable ASTNode element) {
|
||||
return findChildByType(element, BASIC_PARAMETER);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getWhileKeyword(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getWhileKeyword(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, JavaTokenType.WHILE_KEYWORD);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getWhileCondition(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getWhileCondition(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_DO_WHILE_STATEMENT) &&
|
||||
!is(element, BASIC_WHILE_STATEMENT)) {
|
||||
return null;
|
||||
@@ -543,16 +511,14 @@ public final class BasicJavaAstTreeUtil {
|
||||
return findChildByType(element, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getDoWhileBody(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getDoWhileBody(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_DO_WHILE_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, STATEMENT_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForUpdate(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getForUpdate(@Nullable ASTNode statement) {
|
||||
if (!is(statement, BASIC_FOR_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
@@ -569,16 +535,14 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForCondition(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getForCondition(@Nullable ASTNode element) {
|
||||
if (!is(element, BASIC_FOR_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getIfCondition(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getIfCondition(@Nullable ASTNode statement) {
|
||||
if (!is(statement, BASIC_IF_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
@@ -639,8 +603,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return getChildren(element).stream().filter(ch -> is(ch, BASIC_NAME_VALUE_PAIR)).toArray(ASTNode[]::new);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getFirstBodyElement(@Nullable ASTNode block) {
|
||||
public static @Nullable ASTNode getFirstBodyElement(@Nullable ASTNode block) {
|
||||
if (block == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -650,14 +613,12 @@ public final class BasicJavaAstTreeUtil {
|
||||
return nextSibling == getRBrace(block) ? null : nextSibling;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getCodeBlock(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getCodeBlock(@Nullable ASTNode element) {
|
||||
if (element == null) return null;
|
||||
return findChildByType(element, BASIC_CODE_BLOCK);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForBody(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getForBody(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -686,8 +647,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return ASTNode.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getConditionalExpressionThenExpression(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getConditionalExpressionThenExpression(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -704,8 +664,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return child;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static IElementType getAssignmentOperationTokenType(@Nullable ASTNode expr) {
|
||||
public static @Nullable IElementType getAssignmentOperationTokenType(@Nullable ASTNode expr) {
|
||||
if (expr == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -716,24 +675,21 @@ public final class BasicJavaAstTreeUtil {
|
||||
return ASTNode.getElementType();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getPatternVariable(@Nullable ASTNode ASTNode) {
|
||||
public static @Nullable ASTNode getPatternVariable(@Nullable ASTNode ASTNode) {
|
||||
if (ASTNode == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(ASTNode, BASIC_DECONSTRUCTION_PATTERN_VARIABLE, BASIC_PATTERN_VARIABLE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getExpression(@Nullable ASTNode ASTNode) {
|
||||
public static @Nullable ASTNode getExpression(@Nullable ASTNode ASTNode) {
|
||||
if (ASTNode == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(ASTNode, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getRecordComponentContainingClass(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getRecordComponentContainingClass(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -748,16 +704,14 @@ public final class BasicJavaAstTreeUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getRecordHeader(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getRecordHeader(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, BASIC_RECORD_HEADER);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getRuleBody(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getRuleBody(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -766,32 +720,28 @@ public final class BasicJavaAstTreeUtil {
|
||||
ParentAwareTokenSet.create(BASIC_BLOCK_STATEMENT, BASIC_THROW_STATEMENT), EXPRESSION_SET));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getCaseLabelElementList(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getCaseLabelElementList(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, BASIC_CASE_LABEL_ELEMENT_LIST);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getReturnValue(@Nullable ASTNode element) {
|
||||
public static @Nullable ASTNode getReturnValue(@Nullable ASTNode element) {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(element, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForEachIteratedValue(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getForEachIteratedValue(@Nullable ASTNode statement) {
|
||||
if (!is(statement, BASIC_FOREACH_STATEMENT)) {
|
||||
return null;
|
||||
}
|
||||
return findChildByType(statement, EXPRESSION_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForEachIterationParameter(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getForEachIterationParameter(@Nullable ASTNode statement) {
|
||||
if (statement == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -801,8 +751,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return findChildByType(statement, BASIC_PARAMETER);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getForeachBody(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getForeachBody(@Nullable ASTNode statement) {
|
||||
if (statement == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -812,8 +761,7 @@ public final class BasicJavaAstTreeUtil {
|
||||
return findChildByType(statement, STATEMENT_SET);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ASTNode getWhileBody(@Nullable ASTNode statement) {
|
||||
public static @Nullable ASTNode getWhileBody(@Nullable ASTNode statement) {
|
||||
if (statement == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+7
-10
@@ -1,3 +1,4 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
@@ -64,9 +65,8 @@ public interface BasicJavaDocElementType {
|
||||
myParentElementTypes = Collections.singleton(parentElementType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ASTNode createCompositeNode() {
|
||||
public @NotNull ASTNode createCompositeNode() {
|
||||
return myConstructor.get();
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public interface BasicJavaDocElementType {
|
||||
class JavaDocLazyElementType extends ILazyParseableElementType implements ParentProviderElementType {
|
||||
private final Set<IElementType> myParentElementTypes;
|
||||
|
||||
private JavaDocLazyElementType(@NonNls final String debugName, @NotNull IElementType parentElementType) {
|
||||
private JavaDocLazyElementType(final @NonNls String debugName, @NotNull IElementType parentElementType) {
|
||||
super(debugName, JavaLanguage.INSTANCE);
|
||||
myParentElementTypes = Collections.singleton(parentElementType);
|
||||
}
|
||||
@@ -112,9 +112,8 @@ public interface BasicJavaDocElementType {
|
||||
this.javaLexer = javaLexer;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
BasicJavaParserUtil.ParserWrapper wrapper = builder -> BasicJavaDocParser.parseJavadocReference(builder,
|
||||
myJavaThinParser.get());
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, wrapper, false, LanguageLevel.JDK_1_3, javaDocLexer, javaLexer
|
||||
@@ -137,9 +136,8 @@ public interface BasicJavaDocElementType {
|
||||
this.javaLexer = javaLexer;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
BasicJavaParserUtil.ParserWrapper wrapper = builder -> BasicJavaDocParser.parseJavadocType(builder, myJavaThinParser.get());
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, wrapper, false, LanguageLevel.JDK_1_3, javaDocLexer, javaLexer
|
||||
);
|
||||
@@ -169,14 +167,13 @@ public interface BasicJavaDocElementType {
|
||||
lexerByProject = project;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, myParser, myDocLexerFunction, myLexerFunction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isParsable(@NotNull final CharSequence buffer, @NotNull Language fileLanguage, @NotNull final Project project) {
|
||||
public boolean isParsable(final @NotNull CharSequence buffer, @NotNull Language fileLanguage, final @NotNull Project project) {
|
||||
if (!StringUtil.startsWith(buffer, "/**") || !StringUtil.endsWith(buffer, "*/")) return false;
|
||||
|
||||
Lexer lexer = lexerByProject.apply(project);
|
||||
|
||||
+4
-7
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.lang.java.parser.BasicJavaParserUtil;
|
||||
@@ -36,8 +36,7 @@ public class BasicJavaDummyElement extends FileElement {
|
||||
myConsumeAll = consumeAll;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public BasicJavaParserUtil.ParserWrapper getParser() {
|
||||
public @NotNull BasicJavaParserUtil.ParserWrapper getParser() {
|
||||
return myParser;
|
||||
}
|
||||
|
||||
@@ -45,8 +44,7 @@ public class BasicJavaDummyElement extends FileElement {
|
||||
return myConsumeAll;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public LanguageLevel getLanguageLevel() {
|
||||
public @NotNull LanguageLevel getLanguageLevel() {
|
||||
return myLanguageLevel;
|
||||
}
|
||||
|
||||
@@ -72,8 +70,7 @@ public class BasicJavaDummyElement extends FileElement {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Throwable getParserError() {
|
||||
public @Nullable Throwable getParserError() {
|
||||
return myParserError;
|
||||
}
|
||||
}
|
||||
+6
-11
@@ -236,9 +236,8 @@ public interface BasicJavaElementType {
|
||||
myParentElementTypes = Collections.singleton(parentElementType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ASTNode createCompositeNode() {
|
||||
public @NotNull ASTNode createCompositeNode() {
|
||||
return myConstructor.get();
|
||||
}
|
||||
|
||||
@@ -260,16 +259,14 @@ public interface BasicJavaElementType {
|
||||
this.javaLexer = javaLexer;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ASTNode createCompositeNode() {
|
||||
public @NotNull ASTNode createCompositeNode() {
|
||||
return new CompositePsiElement(this) {
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
assert chameleon instanceof BasicJavaDummyElement : chameleon;
|
||||
final BasicJavaDummyElement dummyElement = (BasicJavaDummyElement)chameleon;
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, dummyElement.getParser(), dummyElement.consumeAll(),
|
||||
@@ -304,7 +301,7 @@ public interface BasicJavaElementType {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
final PsiBuilder builder = BasicJavaParserUtil.createBuilder(chameleon, languageLevelFunction, myLexerFunction, psiAsLexer);
|
||||
myJavaThinParser.get().getStatementParser().parseCodeBlockDeep(builder, true);
|
||||
return builder.getTreeBuilt().getFirstChildNode();
|
||||
@@ -364,9 +361,8 @@ public interface BasicJavaElementType {
|
||||
}
|
||||
};
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, myParser, myDocLexerFunction, myLexerFunction);
|
||||
}
|
||||
|
||||
@@ -437,9 +433,8 @@ public interface BasicJavaElementType {
|
||||
this.parentElementTypes = Collections.singleton(parentElementType);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ASTNode parseContents(@NotNull final ASTNode chameleon) {
|
||||
public @Nullable ASTNode parseContents(final @NotNull ASTNode chameleon) {
|
||||
return BasicJavaParserUtil.parseFragment(chameleon, myParser, javaDocLexer, javaLexer);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user