Fragment providers added on higher level.

This commit is contained in:
Evgeny Gerashchenko
2013-11-28 18:23:01 +04:00
parent 3f790f5f0c
commit 73114d7e9c
24 changed files with 122 additions and 65 deletions
@@ -40,6 +40,7 @@ import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver
import org.jetbrains.jet.lang.resolve.java.JetFilesProvider
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil
class KotlinLightClassContextCache(val project: Project) {
private val cacheKey = Key.create<CachedValue<ResolveElementCache>>("KOTLIN_LIGHT_CLASS_CONTEXT_CACHE")
@@ -56,7 +57,7 @@ class KotlinLightClassContextCache(val project: Project) {
project,
JetFilesProvider.getInstance(project)!!.allInScope(GlobalSearchScope.allScope(project)),
trace,
InjectorForJavaDescriptorResolver(project, trace),
InjectorForJavaDescriptorResolverUtil.create(project, trace),
true
)
return Result.create(
@@ -34,6 +34,7 @@ import com.intellij.util.messages.MessageBusConnection;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
@@ -163,7 +164,7 @@ public class KotlinSignatureAnnotationIntention extends BaseIntentionAction impl
@NotNull
private static String getDefaultSignature(@NotNull Project project, @NotNull PsiMember psiMember) {
BindingTraceContext trace = new BindingTraceContext();
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, trace);
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(project, trace);
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
PsiClass containingClass = psiMember.getContainingClass();
@@ -36,6 +36,7 @@ import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
@@ -99,7 +100,7 @@ public class KotlinSignatureInJavaMarkerProvider implements LineMarkerProvider {
}
BindingTrace trace = createDelegatingTrace(project);
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, trace);
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(project, trace);
JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
@@ -22,6 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
@@ -63,7 +64,7 @@ public final class DecompiledDataFactory {
private DecompiledDataFactory(@NotNull VirtualFile classFile, @NotNull Project project) {
this.classFile = classFile;
this.project = project;
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(project, new BindingTraceContext());
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(project, new BindingTraceContext());
this.javaDescriptorResolver = injector.getJavaDescriptorResolver();
VirtualFileKotlinClass kotlinClass = new VirtualFileKotlinClass(classFile);
@@ -224,6 +224,9 @@ public class JetSourceNavigationHelper {
ModuleDescriptorImpl moduleDescriptor = new ModuleDescriptorImpl(Name.special("<library module>"),
AnalyzerFacadeForJVM.DEFAULT_IMPORTS,
PlatformToKotlinClassMap.EMPTY);
moduleDescriptor.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
KotlinCodeAnalyzer analyzer = new ResolveSession(
project,
storageManager,
@@ -24,6 +24,7 @@ import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -54,7 +55,7 @@ public class SignatureMarkerProviderTest extends LightCodeInsightFixtureTestCase
ClassDescriptor preResolvedClass = context.get(BindingContext.CLASS, psiClass);
InjectorForJavaDescriptorResolver injector =
new InjectorForJavaDescriptorResolver(project, KotlinSignatureInJavaMarkerProvider.createDelegatingTrace(project));
InjectorForJavaDescriptorResolverUtil.create(project, KotlinSignatureInJavaMarkerProvider.createDelegatingTrace(project));
ClassDescriptor reResolvedClass = injector.getJavaDescriptorResolver()
.resolveClass(new FqName("java.lang.Thread"), IGNORE_KOTLIN_SOURCES);