Removed special support for parsing annotations for multi-declaration in for
This commit is contained in:
@@ -1342,7 +1342,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
PsiBuilder.Marker parameter = mark();
|
||||
|
||||
if (!at(IN_KEYWORD)) {
|
||||
myJetParsing.parseModifierListWithLookForStopAt(TokenSet.create(IDENTIFIER, LPAR), TokenSet.create(IN_KEYWORD, RPAR, COLON));
|
||||
myJetParsing.parseModifierList(ONLY_ESCAPED_REGULAR_ANNOTATIONS, TokenSet.create(IN_KEYWORD, RPAR, COLON));
|
||||
}
|
||||
|
||||
if (at(VAL_KEYWORD) || at(VAR_KEYWORD)) advance(); // VAL_KEYWORD or VAR_KEYWORD
|
||||
|
||||
@@ -2084,38 +2084,6 @@ public class JetParsing extends AbstractJetParsing {
|
||||
return atGT;
|
||||
}
|
||||
|
||||
public void parseModifierListWithLookForStopAt(TokenSet lookFor, TokenSet stopAt) {
|
||||
int lastId = matchTokenStreamPredicate(new LastBefore(new AtSet(lookFor), new AnnotationTargetStop(stopAt, ANNOTATION_TARGETS), false));
|
||||
createTruncatedBuilder(lastId).parseModifierList(ONLY_ESCAPED_REGULAR_ANNOTATIONS, null);
|
||||
}
|
||||
|
||||
private class AnnotationTargetStop extends AbstractTokenStreamPredicate {
|
||||
private final TokenSet stopAt;
|
||||
private final TokenSet annotationTargets;
|
||||
|
||||
private IElementType previousToken;
|
||||
private IElementType tokenBeforePrevious;
|
||||
|
||||
public AnnotationTargetStop(TokenSet stopAt, TokenSet annotationTargets) {
|
||||
this.stopAt = stopAt;
|
||||
this.annotationTargets = annotationTargets;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matching(boolean topLevel) {
|
||||
if (atSet(stopAt)) return true;
|
||||
|
||||
if (at(COLON) && !(tokenBeforePrevious == AT && (previousToken == IDENTIFIER || annotationTargets.contains(previousToken)))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
tokenBeforePrevious = previousToken;
|
||||
previousToken = tt();
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* functionType
|
||||
* : "(" (parameter | modifiers type){","}? ")" "->" type?
|
||||
|
||||
Reference in New Issue
Block a user