Support top-down analysis starting from package directives
This commit is contained in:
@@ -137,5 +137,10 @@ public class JetPackageDirective extends JetReferenceExpression {
|
||||
public void subtreeChanged() {
|
||||
qualifiedNameCache = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitPackageDirective(this, data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -405,4 +405,8 @@ public class JetVisitor<R, D> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,6 +401,10 @@ public class JetVisitorVoid extends JetVisitor<Void, Void> {
|
||||
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<Void, Void> {
|
||||
visitEscapeStringTemplateEntry(entry);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitPackageDirective(@NotNull JetPackageDirective directive, Void data) {
|
||||
visitPackageDirective(directive);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user