From dd92132effa7b880591a648559fd335c12d9d4b1 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 21 Apr 2014 18:41:29 +0400 Subject: [PATCH] Make JetPackageDirective extend JetModifierListOwnerStub Simplify check in DeclarationsChecker to avoid AST access --- .../jetbrains/jet/lang/psi/JetPackageDirective.java | 2 +- .../jet/lang/resolve/DeclarationsChecker.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java index 010f32976f2..05eb86fb3d8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java @@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.resolve.name.SpecialNames; import java.util.Collections; import java.util.List; -public class JetPackageDirective extends JetExpressionImplStub> implements JetReferenceExpression { +public class JetPackageDirective extends JetModifierListOwnerStub> implements JetReferenceExpression { private String qualifiedNameCache = null; public JetPackageDirective(@NotNull ASTNode node) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java index bcaf3f90984..b5398f173b8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java @@ -27,7 +27,6 @@ import org.jetbrains.jet.lang.diagnostics.Errors; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.types.*; 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.JetTokens; @@ -119,9 +118,8 @@ public class DeclarationsChecker { JetPackageDirective packageDirective = file.getPackageDirective(); if (packageDirective == null) return; - PsiElement firstChild = packageDirective.getFirstChild(); - if (!(firstChild instanceof JetModifierList)) return; - JetModifierList modifierList = (JetModifierList) firstChild; + JetModifierList modifierList = packageDirective.getModifierList(); + if (modifierList == null) return; for (JetAnnotationEntry annotationEntry : modifierList.getAnnotationEntries()) { JetConstructorCalleeExpression calleeExpression = annotationEntry.getCalleeExpression(); @@ -133,8 +131,10 @@ public class DeclarationsChecker { } } - for (ASTNode node : modifierList.getModifierNodes()) { - trace.report(ILLEGAL_MODIFIER.on(node.getPsi(), (JetModifierKeywordToken) node.getElementType())); + for (JetModifierKeywordToken token : JetTokens.MODIFIER_KEYWORDS_ARRAY) { + if (modifierList.hasModifier(token)) { + trace.report(ILLEGAL_MODIFIER.on(modifierList.getModifier(token), token)); + } } }