From 12f06d032b3b1aea5d99bc38e69efc1b4e1caf88 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 25 Feb 2014 20:57:53 +0400 Subject: [PATCH] checkModifiersAndAnnotationsInPackageDirectives() moved to DeclarationsChecker --- .../jet/lang/resolve/DeclarationResolver.java | 28 ------------------- .../jet/lang/resolve/DeclarationsChecker.java | 28 +++++++++++++++++++ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java index 495b14e1cd8..ce37ae5d632 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationResolver.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.lang.resolve; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.*; -import com.intellij.lang.ASTNode; import com.intellij.openapi.util.Pair; import com.intellij.psi.PsiElement; import com.intellij.util.containers.ContainerUtil; @@ -35,7 +34,6 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; -import org.jetbrains.jet.lexer.JetKeywordToken; import org.jetbrains.jet.renderer.DescriptorRenderer; import javax.inject.Inject; @@ -84,7 +82,6 @@ public class DeclarationResolver { public void process(@NotNull TopDownAnalysisContext c) { - checkModifiersAndAnnotationsInPackageDirectives(c); resolveAnnotationConstructors(c); resolveConstructorHeaders(c); resolveAnnotationStubsOnClassesAndConstructors(c); @@ -95,31 +92,6 @@ public class DeclarationResolver { checkRedeclarationsInInnerClassNames(c); } - private void checkModifiersAndAnnotationsInPackageDirectives(@NotNull TopDownAnalysisContext c) { - for (JetFile file : c.getFiles()) { - JetPackageDirective packageDirective = file.getPackageDirective(); - if (packageDirective == null) continue; - - PsiElement firstChild = packageDirective.getFirstChild(); - if (!(firstChild instanceof JetModifierList)) continue; - JetModifierList modifierList = (JetModifierList) firstChild; - - for (JetAnnotationEntry annotationEntry : modifierList.getAnnotationEntries()) { - JetConstructorCalleeExpression calleeExpression = annotationEntry.getCalleeExpression(); - if (calleeExpression != null) { - JetReferenceExpression reference = calleeExpression.getConstructorReferenceExpression(); - if (reference != null) { - trace.report(UNRESOLVED_REFERENCE.on(reference, reference)); - } - } - } - - for (ASTNode node : modifierList.getModifierNodes()) { - trace.report(ILLEGAL_MODIFIER.on(node.getPsi(), (JetKeywordToken) node.getElementType())); - } - } - } - private void resolveAnnotationConstructors(@NotNull TopDownAnalysisContext c) { for (Map.Entry entry : c.getClasses().entrySet()) { JetClassOrObject classOrObject = entry.getKey(); 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 7879cf132ee..93a2a6028d4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DeclarationsChecker.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.resolve; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.diagnostics.Errors; @@ -47,6 +48,10 @@ public class DeclarationsChecker { } public void process(@NotNull BodiesResolveContext bodiesResolveContext) { + for (JetFile file : bodiesResolveContext.getFiles()) { + checkModifiersAndAnnotationsInPackageDirective(file); + } + Map classes = bodiesResolveContext.getClasses(); for (Map.Entry entry : classes.entrySet()) { JetClassOrObject classOrObject = entry.getKey(); @@ -96,6 +101,29 @@ public class DeclarationsChecker { } } + private void checkModifiersAndAnnotationsInPackageDirective(JetFile file) { + JetPackageDirective packageDirective = file.getPackageDirective(); + if (packageDirective == null) return; + + PsiElement firstChild = packageDirective.getFirstChild(); + if (!(firstChild instanceof JetModifierList)) return; + JetModifierList modifierList = (JetModifierList) firstChild; + + for (JetAnnotationEntry annotationEntry : modifierList.getAnnotationEntries()) { + JetConstructorCalleeExpression calleeExpression = annotationEntry.getCalleeExpression(); + if (calleeExpression != null) { + JetReferenceExpression reference = calleeExpression.getConstructorReferenceExpression(); + if (reference != null) { + trace.report(UNRESOLVED_REFERENCE.on(reference, reference)); + } + } + } + + for (ASTNode node : modifierList.getModifierNodes()) { + trace.report(ILLEGAL_MODIFIER.on(node.getPsi(), (JetKeywordToken) node.getElementType())); + } + } + private void checkSupertypesForConsistency(@NotNull ClassDescriptor classDescriptor) { Multimap multimap = SubstitutionUtils .buildDeepSubstitutionMultimap(classDescriptor.getDefaultType());