Methods pulled up into the interface
This commit is contained in:
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.PackageLikeBuilder;
|
||||
import org.jetbrains.jet.lang.diagnostics.Errors;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
@@ -396,7 +396,7 @@ public class DeclarationResolver {
|
||||
}
|
||||
}
|
||||
|
||||
public void checkRedeclarationsInPackages(@NotNull ResolveSession resolveSession, @NotNull Multimap<FqName, JetElement> topLevelFqNames) {
|
||||
public void checkRedeclarationsInPackages(@NotNull KotlinCodeAnalyzer resolveSession, @NotNull Multimap<FqName, JetElement> topLevelFqNames) {
|
||||
for (Map.Entry<FqName, Collection<JetElement>> entry : topLevelFqNames.asMap().entrySet()) {
|
||||
FqName fqName = entry.getKey();
|
||||
Collection<JetElement> declarationsOrPackageDirectives = entry.getValue();
|
||||
@@ -417,7 +417,7 @@ public class DeclarationResolver {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static Set<DeclarationDescriptor> getTopLevelDescriptorsByFqName(@NotNull ResolveSession resolveSession, @NotNull FqName fqName) {
|
||||
private static Set<DeclarationDescriptor> getTopLevelDescriptorsByFqName(@NotNull KotlinCodeAnalyzer resolveSession, @NotNull FqName fqName) {
|
||||
FqName parentFqName = fqName.parent();
|
||||
|
||||
Set<DeclarationDescriptor> descriptors = new HashSet<DeclarationDescriptor>();
|
||||
|
||||
@@ -23,8 +23,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.LazyImportScope;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class LazyTopDownAnalyzer {
|
||||
|
||||
@NotNull
|
||||
public TopDownAnalysisContext analyzeDeclarations(
|
||||
final ResolveSession resolveSession,
|
||||
final KotlinCodeAnalyzer resolveSession,
|
||||
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
||||
@NotNull Collection<? extends PsiElement> declarations
|
||||
) {
|
||||
@@ -230,7 +230,7 @@ public class LazyTopDownAnalyzer {
|
||||
return c;
|
||||
}
|
||||
|
||||
private static void resolveImportsInAllFiles(TopDownAnalysisContext c, ResolveSession resolveSession) {
|
||||
private static void resolveImportsInAllFiles(TopDownAnalysisContext c, KotlinCodeAnalyzer resolveSession) {
|
||||
for (JetFile file : c.getFiles()) {
|
||||
resolveAndCheckImports(file, resolveSession);
|
||||
}
|
||||
@@ -248,7 +248,7 @@ public class LazyTopDownAnalyzer {
|
||||
|
||||
private static void createPropertyDescriptors(
|
||||
TopDownAnalysisContext c,
|
||||
ResolveSession resolveSession,
|
||||
KotlinCodeAnalyzer resolveSession,
|
||||
Multimap<FqName, JetElement> topLevelFqNames,
|
||||
List<JetProperty> properties
|
||||
) {
|
||||
@@ -266,7 +266,7 @@ public class LazyTopDownAnalyzer {
|
||||
|
||||
private static void createFunctionDescriptors(
|
||||
TopDownAnalysisContext c,
|
||||
ResolveSession resolveSession,
|
||||
KotlinCodeAnalyzer resolveSession,
|
||||
List<JetNamedFunction> functions
|
||||
) {
|
||||
for (JetNamedFunction function : functions) {
|
||||
@@ -278,14 +278,14 @@ public class LazyTopDownAnalyzer {
|
||||
}
|
||||
}
|
||||
|
||||
private static void resolveAndCheckImports(@NotNull JetFile file, @NotNull ResolveSession resolveSession) {
|
||||
private static void resolveAndCheckImports(@NotNull JetFile file, @NotNull KotlinCodeAnalyzer resolveSession) {
|
||||
LazyImportScope fileScope = resolveSession.getScopeProvider().getExplicitImportsScopeForFile(file);
|
||||
fileScope.forceResolveAllContents();
|
||||
}
|
||||
|
||||
private static void registerScope(
|
||||
@NotNull TopDownAnalysisContext c,
|
||||
@NotNull ResolveSession resolveSession,
|
||||
@NotNull KotlinCodeAnalyzer resolveSession,
|
||||
@Nullable JetDeclaration declaration
|
||||
) {
|
||||
if (declaration == null) return;
|
||||
|
||||
@@ -17,26 +17,47 @@
|
||||
package org.jetbrains.jet.lang.resolve.lazy;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.ReadOnly;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||
import org.jetbrains.jet.lang.psi.JetScript;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface KotlinCodeAnalyzer {
|
||||
@Nullable
|
||||
LazyPackageDescriptor getPackageFragment(@NotNull FqName fqName);
|
||||
|
||||
@NotNull
|
||||
ModuleDescriptor getModuleDescriptor();
|
||||
|
||||
@NotNull
|
||||
@ReadOnly
|
||||
Collection<ClassDescriptor> getTopLevelClassDescriptors(@NotNull FqName fqName);
|
||||
|
||||
@NotNull
|
||||
ClassDescriptor getClassDescriptor(@NotNull JetClassOrObject classOrObject);
|
||||
|
||||
@NotNull
|
||||
ScriptDescriptor getScriptDescriptor(@NotNull JetScript script);
|
||||
|
||||
@NotNull
|
||||
BindingContext getBindingContext();
|
||||
|
||||
@NotNull
|
||||
DeclarationDescriptor resolveToDescriptor(JetDeclaration declaration);
|
||||
|
||||
@NotNull
|
||||
ScopeProvider getScopeProvider();
|
||||
|
||||
/**
|
||||
* Forces all descriptors to be resolved.
|
||||
*
|
||||
|
||||
@@ -192,6 +192,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
return packageFragmentProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public LazyPackageDescriptor getPackageFragment(@NotNull FqName fqName) {
|
||||
return packages.invoke(fqName);
|
||||
@@ -227,6 +228,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
return exceptionTracker;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
@ReadOnly
|
||||
public Collection<ClassDescriptor> getTopLevelClassDescriptors(@NotNull FqName fqName) {
|
||||
@@ -288,6 +290,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
return (ClassDescriptor) classifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ScriptDescriptor getScriptDescriptor(@NotNull JetScript script) {
|
||||
return scriptDescriptors.invoke(script);
|
||||
@@ -472,6 +475,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ScopeProvider getScopeProvider() {
|
||||
return scopeProvider;
|
||||
|
||||
@@ -19,17 +19,24 @@ package org.jetbrains.jet.plugin.project;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.ModificationTracker;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.ReadOnly;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||
import org.jetbrains.jet.lang.psi.JetElement;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyPackageDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.KotlinResolveCache;
|
||||
import org.jetbrains.jet.storage.ExceptionTracker;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class ResolveSessionForBodies implements KotlinCodeAnalyzer, ModificationTracker {
|
||||
private final Object createdForObject;
|
||||
@@ -100,4 +107,39 @@ public class ResolveSessionForBodies implements KotlinCodeAnalyzer, Modification
|
||||
public KotlinResolveCache getResolveCache() {
|
||||
return resolveCache;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public LazyPackageDescriptor getPackageFragment(@NotNull FqName fqName) {
|
||||
return resolveSession.getPackageFragment(fqName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
@ReadOnly
|
||||
public Collection<ClassDescriptor> getTopLevelClassDescriptors(@NotNull FqName fqName) {
|
||||
return resolveSession.getTopLevelClassDescriptors(fqName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ScriptDescriptor getScriptDescriptor(@NotNull JetScript script) {
|
||||
return resolveSession.getScriptDescriptor(script);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ScopeProvider getScopeProvider() {
|
||||
return resolveSession.getScopeProvider();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public StorageManager getStorageManager() {
|
||||
return resolveSession.getStorageManager();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ExceptionTracker getExceptionTracker() {
|
||||
return resolveSession.getExceptionTracker();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user