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 8d1efecf9a8..a76e4e8e2cd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPackageDirective.java @@ -137,5 +137,10 @@ public class JetPackageDirective extends JetReferenceExpression { public void subtreeChanged() { qualifiedNameCache = null; } + + @Override + public R accept(@NotNull JetVisitor visitor, D data) { + return visitor.visitPackageDirective(this, data); + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java index 5f71eac090b..c33b3ddc5d4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -405,4 +405,8 @@ public class JetVisitor extends PsiElementVisitor { public R visitEscapeStringTemplateEntry(@NotNull JetEscapeStringTemplateEntry entry, D data) { return visitStringTemplateEntry(entry, data); } + + public R visitPackageDirective(@NotNull JetPackageDirective directive, D data) { + return visitExpression(directive, data); + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java index 8125879430b..15f2c727bf8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java @@ -401,6 +401,10 @@ public class JetVisitorVoid extends JetVisitor { super.visitEscapeStringTemplateEntry(entry, null); } + public void visitPackageDirective(@NotNull JetPackageDirective directive) { + super.visitPackageDirective(directive, null); + } + // hidden methods @Override public final Void visitJetElement(@NotNull JetElement element, Void data) { @@ -973,4 +977,10 @@ public class JetVisitorVoid extends JetVisitor { visitEscapeStringTemplateEntry(entry); return null; } + + @Override + public Void visitPackageDirective(@NotNull JetPackageDirective directive, Void data) { + visitPackageDirective(directive); + return null; + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java index 3f2833ae3dc..c6110c700b3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/LazyTopDownAnalyzer.java @@ -124,7 +124,7 @@ public class LazyTopDownAnalyzer { c.addFile(file); - DescriptorResolver.resolvePackageHeader(packageDirective, moduleDescriptor, trace); + packageDirective.accept(this); DescriptorResolver.registerFileInPackage(trace, file); registerDeclarations(file.getDeclarations()); @@ -133,6 +133,11 @@ public class LazyTopDownAnalyzer { } } + @Override + public void visitPackageDirective(@NotNull JetPackageDirective directive) { + DescriptorResolver.resolvePackageHeader(directive, moduleDescriptor, trace); + } + private void visitClassOrObject(@NotNull JetClassOrObject classOrObject) { ClassDescriptorWithResolutionScopes descriptor = (ClassDescriptorWithResolutionScopes) resolveSession.getClassDescriptor(classOrObject);