From afa96a2503e2c7b687c4bf62aebcc39f754b37ed Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 10 Feb 2020 23:22:58 +0300 Subject: [PATCH] deprecate unneeded ILazyParseableElementType#parseLight A follow up for: c2bdba9416046e6ca347e0131ad5672b818da6ea drop TraverserBasedASTNode and ReadOnlyASTNode Gregory.Shrago 18.11.2019, 16:44 GitOrigin-RevId: 7a4c5ee275e6d8329ba76b23f146655afb83b3fd --- .../org/intellij/lang/regexp/RegExpFileElementType.java | 9 ++------- .../com/intellij/psi/tree/ILazyParseableElementType.java | 6 ++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpFileElementType.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpFileElementType.java index f2d42e78d937..14656088321e 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpFileElementType.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpFileElementType.java @@ -17,7 +17,7 @@ public class RegExpFileElementType extends IFileElementType { } @Override - public PsiBuilder parseLight(ASTNode chameleon) { + protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement outerPsi) { PsiElement psi = chameleon.getPsi(); Project project = psi.getProject(); Language languageForParser = getLanguageForParser(psi); @@ -27,7 +27,7 @@ public class RegExpFileElementType extends IFileElementType { PsiParser parser = definition.createParser(project, capabilities); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(project, chameleon, lexer, languageForParser, chameleon.getChars()); ((LightPsiParser)parser).parseLight(this, builder); - return builder; + return builder.getTreeBuilt().getFirstChildNode(); } @NotNull @@ -38,9 +38,4 @@ public class RegExpFileElementType extends IFileElementType { RegExpCapabilitiesProvider provider = language == null ? null : RegExpCapabilitiesProvider.EP.forLanguage(language); return provider == null ? capabilities : EnumSet.copyOf(provider.setup(host, capabilities)); } - - @Override - protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) { - return parseLight(chameleon).getTreeBuilt().getFirstChildNode(); - } } diff --git a/platform/core-api/src/com/intellij/psi/tree/ILazyParseableElementType.java b/platform/core-api/src/com/intellij/psi/tree/ILazyParseableElementType.java index d9f5245f1f00..fcd7b110afcb 100644 --- a/platform/core-api/src/com/intellij/psi/tree/ILazyParseableElementType.java +++ b/platform/core-api/src/com/intellij/psi/tree/ILazyParseableElementType.java @@ -5,6 +5,7 @@ import com.intellij.lang.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -48,7 +49,12 @@ public class ILazyParseableElementType extends IElementType implements ILazyPars * * @param chameleon the node to parse. * @return the parsed contents of the node in the form PsiBuilder. + * + * @deprecated Not needed anymore, override {@link ILazyParseableElementType#parseContents(ASTNode)} + * or implement {@link ILightLazyParseableElementType} instead. */ + @Deprecated + @ApiStatus.ScheduledForRemoval(inVersion = "2020.3") public PsiBuilder parseLight(ASTNode chameleon) { throw new UnsupportedOperationException(String.valueOf(chameleon)); }