Make JetPackageDirective extend JetModifierListOwnerStub
Simplify check in DeclarationsChecker to avoid AST access
This commit is contained in:
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.resolve.name.SpecialNames;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class JetPackageDirective extends JetExpressionImplStub<PsiJetPlaceHolderStub<JetPackageDirective>> implements JetReferenceExpression {
|
public class JetPackageDirective extends JetModifierListOwnerStub<PsiJetPlaceHolderStub<JetPackageDirective>> implements JetReferenceExpression {
|
||||||
private String qualifiedNameCache = null;
|
private String qualifiedNameCache = null;
|
||||||
|
|
||||||
public JetPackageDirective(@NotNull ASTNode node) {
|
public JetPackageDirective(@NotNull ASTNode node) {
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import org.jetbrains.jet.lang.diagnostics.Errors;
|
|||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.types.*;
|
import org.jetbrains.jet.lang.types.*;
|
||||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||||
import org.jetbrains.jet.lexer.JetKeywordToken;
|
|
||||||
import org.jetbrains.jet.lexer.JetModifierKeywordToken;
|
import org.jetbrains.jet.lexer.JetModifierKeywordToken;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
@@ -119,9 +118,8 @@ public class DeclarationsChecker {
|
|||||||
JetPackageDirective packageDirective = file.getPackageDirective();
|
JetPackageDirective packageDirective = file.getPackageDirective();
|
||||||
if (packageDirective == null) return;
|
if (packageDirective == null) return;
|
||||||
|
|
||||||
PsiElement firstChild = packageDirective.getFirstChild();
|
JetModifierList modifierList = packageDirective.getModifierList();
|
||||||
if (!(firstChild instanceof JetModifierList)) return;
|
if (modifierList == null) return;
|
||||||
JetModifierList modifierList = (JetModifierList) firstChild;
|
|
||||||
|
|
||||||
for (JetAnnotationEntry annotationEntry : modifierList.getAnnotationEntries()) {
|
for (JetAnnotationEntry annotationEntry : modifierList.getAnnotationEntries()) {
|
||||||
JetConstructorCalleeExpression calleeExpression = annotationEntry.getCalleeExpression();
|
JetConstructorCalleeExpression calleeExpression = annotationEntry.getCalleeExpression();
|
||||||
@@ -133,8 +131,10 @@ public class DeclarationsChecker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ASTNode node : modifierList.getModifierNodes()) {
|
for (JetModifierKeywordToken token : JetTokens.MODIFIER_KEYWORDS_ARRAY) {
|
||||||
trace.report(ILLEGAL_MODIFIER.on(node.getPsi(), (JetModifierKeywordToken) node.getElementType()));
|
if (modifierList.hasModifier(token)) {
|
||||||
|
trace.report(ILLEGAL_MODIFIER.on(modifierList.getModifier(token), token));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user