mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Cleanup
This commit is contained in:
@@ -30,7 +30,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.PropertyKey;
|
||||
|
||||
import static com.intellij.lang.PsiBuilderUtil.expect;
|
||||
import static com.intellij.lang.PsiBuilderUtil.nextTokenType;
|
||||
import static com.intellij.lang.java.parser.JavaParserUtil.*;
|
||||
|
||||
public class DeclarationParser {
|
||||
@@ -386,7 +385,7 @@ public class DeclarationParser {
|
||||
isEmpty = false;
|
||||
}
|
||||
else if (tokenType == JavaTokenType.AT) {
|
||||
if (ElementType.KEYWORD_BIT_SET.contains(nextTokenType(builder))) {
|
||||
if (ElementType.KEYWORD_BIT_SET.contains(builder.lookAhead(1))) {
|
||||
break;
|
||||
}
|
||||
parseAnnotation(builder);
|
||||
|
||||
@@ -59,6 +59,8 @@ public class ExpressionParser {
|
||||
private static final TokenSet ARGS_LIST_CONTINUE = TokenSet.create(
|
||||
JavaTokenType.IDENTIFIER, TokenType.BAD_CHARACTER, JavaTokenType.COMMA, JavaTokenType.INTEGER_LITERAL, JavaTokenType.STRING_LITERAL);
|
||||
private static final TokenSet THIS_OR_SUPER = TokenSet.create(JavaTokenType.THIS_KEYWORD, JavaTokenType.SUPER_KEYWORD);
|
||||
private static final TokenSet TYPE_START = TokenSet.orSet(
|
||||
ElementType.PRIMITIVE_TYPE_BIT_SET, TokenSet.create(JavaTokenType.IDENTIFIER, JavaTokenType.AT));
|
||||
|
||||
private final JavaParser myParser;
|
||||
|
||||
@@ -263,20 +265,16 @@ public class ExpressionParser {
|
||||
final PsiBuilder.Marker typeCast = builder.mark();
|
||||
builder.advanceLexer();
|
||||
|
||||
final ReferenceParser.TypeInfo typeInfo = myParser.getReferenceParser().parseTypeInfo(builder,
|
||||
ReferenceParser.EAT_LAST_DOT |
|
||||
ReferenceParser.WILDCARD);
|
||||
|
||||
final ReferenceParser.TypeInfo typeInfo =
|
||||
myParser.getReferenceParser().parseTypeInfo(builder, ReferenceParser.EAT_LAST_DOT | ReferenceParser.WILDCARD);
|
||||
if (typeInfo == null || !expect(builder, JavaTokenType.RPARENTH)) {
|
||||
typeCast.rollbackTo();
|
||||
return parsePostfix(builder);
|
||||
}
|
||||
|
||||
if (PREF_ARITHMETIC_OPS.contains(builder.getTokenType())) {
|
||||
if (!typeInfo.isPrimitive) {
|
||||
typeCast.rollbackTo();
|
||||
return parsePostfix(builder);
|
||||
}
|
||||
if (PREF_ARITHMETIC_OPS.contains(builder.getTokenType()) && !typeInfo.isPrimitive) {
|
||||
typeCast.rollbackTo();
|
||||
return parsePostfix(builder);
|
||||
}
|
||||
|
||||
final PsiBuilder.Marker expr = parseUnary(builder);
|
||||
@@ -537,13 +535,12 @@ public class ExpressionParser {
|
||||
return parseArrayInitializer(builder);
|
||||
}
|
||||
|
||||
if (ElementType.PRIMITIVE_TYPE_BIT_SET.contains(tokenType) || tokenType == JavaTokenType.IDENTIFIER) {
|
||||
final boolean primitive = tokenType != JavaTokenType.IDENTIFIER;
|
||||
if (TYPE_START.contains(tokenType)) {
|
||||
final PsiBuilder.Marker mark = builder.mark();
|
||||
|
||||
final ReferenceParser.TypeInfo typeInfo = myParser.getReferenceParser().parseTypeInfo(builder, 0);
|
||||
if (typeInfo != null && (primitive || !typeInfo.hasErrors && typeInfo.isParameterized)) {
|
||||
final PsiBuilder.Marker result = continueClassAccessOrMethodReference(builder, mark, primitive);
|
||||
if (typeInfo != null && (typeInfo.isPrimitive || !typeInfo.hasErrors && typeInfo.isParameterized)) {
|
||||
final PsiBuilder.Marker result = continueClassAccessOrMethodReference(builder, mark, typeInfo.isPrimitive);
|
||||
if (result != null) return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static com.intellij.lang.PsiBuilderUtil.expect;
|
||||
import static com.intellij.lang.PsiBuilderUtil.nextTokenType;
|
||||
import static com.intellij.lang.java.parser.JavaParserUtil.*;
|
||||
import static com.intellij.util.BitUtil.isSet;
|
||||
|
||||
@@ -317,7 +316,7 @@ public class ReferenceParser {
|
||||
if (!expect(builder, JavaTokenType.GT)) {
|
||||
// hack for completion
|
||||
if (builder.getTokenType() == JavaTokenType.IDENTIFIER) {
|
||||
if (nextTokenType(builder) == JavaTokenType.GT) {
|
||||
if (builder.lookAhead(1) == JavaTokenType.GT) {
|
||||
final PsiBuilder.Marker errorElement = builder.mark();
|
||||
builder.advanceLexer();
|
||||
errorElement.error(JavaErrorMessages.message("unexpected.identifier"));
|
||||
|
||||
@@ -147,7 +147,7 @@ public class StatementParser {
|
||||
return;
|
||||
}
|
||||
else if (braceMode == BraceMode.TILL_LAST) {
|
||||
if (nextTokenType(builder) == null) {
|
||||
if (builder.lookAhead(1) == null) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -288,7 +288,7 @@ public class StatementParser {
|
||||
return statement;
|
||||
}
|
||||
|
||||
if (lookAhead(builder, JavaTokenType.IDENTIFIER, JavaTokenType.COLON)) {
|
||||
if (builder.getTokenType() == JavaTokenType.IDENTIFIER && builder.lookAhead(1) == JavaTokenType.COLON) {
|
||||
final PsiBuilder.Marker statement = builder.mark();
|
||||
advance(builder, 2);
|
||||
parseStatement(builder);
|
||||
@@ -309,7 +309,7 @@ public class StatementParser {
|
||||
|
||||
private static void skipQualifiedName(final PsiBuilder builder) {
|
||||
if (!expect(builder, JavaTokenType.IDENTIFIER)) return;
|
||||
while (lookAhead(builder, JavaTokenType.DOT, JavaTokenType.IDENTIFIER)) {
|
||||
while (builder.getTokenType() == JavaTokenType.DOT && builder.lookAhead(1) == JavaTokenType.IDENTIFIER) {
|
||||
advance(builder, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,33 +19,22 @@ import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
public class PsiBuilderUtil {
|
||||
private PsiBuilderUtil() { }
|
||||
|
||||
/**
|
||||
* Returns type of next token.
|
||||
*
|
||||
* @param builder PSI builder to operate on.
|
||||
* @return type of next token or null, if the builder is at the end of token stream
|
||||
* @deprecated use {@linkplain PsiBuilder#lookAhead(int)} (to remove in IDEA 13)
|
||||
*/
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
@Nullable
|
||||
public static IElementType nextTokenType(final PsiBuilder builder) {
|
||||
if (builder.getTokenType() == null) return null;
|
||||
final PsiBuilder.Marker sp = builder.mark();
|
||||
builder.advanceLexer();
|
||||
final IElementType result = builder.getTokenType();
|
||||
sp.rollbackTo();
|
||||
return result;
|
||||
return builder.lookAhead(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if tokens in token stream form expected sequence.
|
||||
*
|
||||
* @param builder PSI builder to operate on.
|
||||
* @param tokenTypes expected elements.
|
||||
* @return true if tokens form expected sequence, false otherwise
|
||||
* @deprecated use {@linkplain PsiBuilder#lookAhead(int)} (to remove in IDEA 13)
|
||||
*/
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public static boolean lookAhead(final PsiBuilder builder, final IElementType... tokenTypes) {
|
||||
if (tokenTypes.length == 0) return true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user