All extra services delivered through contexts
This commit is contained in:
+30
-4
@@ -25,9 +25,7 @@ import org.jetbrains.jet.lang.resolve.ImportPath;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaClassResolver;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaClassResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaSubModule;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaSubModule;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
@@ -53,6 +51,10 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
private JavaClassFinder javaClassFinder;
|
private JavaClassFinder javaClassFinder;
|
||||||
private ExternalAnnotationResolver externalAnnotationResolver;
|
private ExternalAnnotationResolver externalAnnotationResolver;
|
||||||
private LazyJavaSubModule subModule;
|
private LazyJavaSubModule subModule;
|
||||||
|
private ExternalSignatureResolver externalSignatureResolver;
|
||||||
|
private ErrorReporter errorReporter;
|
||||||
|
private MethodSignatureChecker signatureChecker;
|
||||||
|
private JavaResolverCache javaResolverCache;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setClassResolver(JavaClassResolver classResolver) {
|
public void setClassResolver(JavaClassResolver classResolver) {
|
||||||
@@ -74,6 +76,26 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
this.externalAnnotationResolver = externalAnnotationResolver;
|
this.externalAnnotationResolver = externalAnnotationResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setExternalSignatureResolver(ExternalSignatureResolver externalSignatureResolver) {
|
||||||
|
this.externalSignatureResolver = externalSignatureResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setErrorReporter(ErrorReporter errorReporter) {
|
||||||
|
this.errorReporter = errorReporter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setSignatureChecker(MethodSignatureChecker signatureChecker) {
|
||||||
|
this.signatureChecker = signatureChecker;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setJavaResolverCache(JavaResolverCache javaResolverCache) {
|
||||||
|
this.javaResolverCache = javaResolverCache;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private LazyJavaSubModule getSubModule() {
|
private LazyJavaSubModule getSubModule() {
|
||||||
if (subModule == null) {
|
if (subModule == null) {
|
||||||
@@ -92,7 +114,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
externalAnnotationResolver
|
externalAnnotationResolver,
|
||||||
|
externalSignatureResolver,
|
||||||
|
errorReporter,
|
||||||
|
signatureChecker,
|
||||||
|
javaResolverCache
|
||||||
),
|
),
|
||||||
new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY)
|
new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY)
|
||||||
);
|
);
|
||||||
|
|||||||
+5
-1
@@ -19,7 +19,11 @@ public open class LazyJavaSubModule(
|
|||||||
outerContext.storageManager,
|
outerContext.storageManager,
|
||||||
outerContext.finder,
|
outerContext.finder,
|
||||||
SubModuleClassResolver(),
|
SubModuleClassResolver(),
|
||||||
outerContext.externalAnnotationResolver
|
outerContext.externalAnnotationResolver,
|
||||||
|
outerContext.externalSignatureResolver,
|
||||||
|
outerContext.errorReporter,
|
||||||
|
outerContext.methodSignatureChecker,
|
||||||
|
outerContext.javaResolverCache
|
||||||
)
|
)
|
||||||
|
|
||||||
private val _packageFragments: MemoizedFunctionToNullable<FqName, NamespaceDescriptor> = c.storageManager.createMemoizedFunctionWithNullableValues {
|
private val _packageFragments: MemoizedFunctionToNullable<FqName, NamespaceDescriptor> = c.storageManager.createMemoizedFunctionWithNullableValues {
|
||||||
|
|||||||
+28
-7
@@ -21,16 +21,21 @@ import org.jetbrains.jet.lang.resolve.java.lazy.types.LazyJavaTypeResolver
|
|||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaTypeParameter
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaTypeParameter
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinder
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinder
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotation
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaAnnotationDescriptor
|
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.MethodSignatureChecker
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaResolverCache
|
||||||
|
|
||||||
open class GlobalJavaResolverContext(
|
open class GlobalJavaResolverContext(
|
||||||
val storageManager: StorageManager,
|
val storageManager: StorageManager,
|
||||||
val finder: JavaClassFinder,
|
val finder: JavaClassFinder,
|
||||||
val javaClassResolver: LazyJavaClassResolver,
|
val javaClassResolver: LazyJavaClassResolver,
|
||||||
val externalAnnotationResolver: ExternalAnnotationResolver
|
val externalAnnotationResolver: ExternalAnnotationResolver,
|
||||||
|
val externalSignatureResolver: ExternalSignatureResolver,
|
||||||
|
val errorReporter: ErrorReporter,
|
||||||
|
val methodSignatureChecker: MethodSignatureChecker,
|
||||||
|
val javaResolverCache: JavaResolverCache
|
||||||
)
|
)
|
||||||
|
|
||||||
open class LazyJavaResolverContext(
|
open class LazyJavaResolverContext(
|
||||||
@@ -38,8 +43,14 @@ open class LazyJavaResolverContext(
|
|||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
finder: JavaClassFinder,
|
finder: JavaClassFinder,
|
||||||
javaClassResolver: LazyJavaClassResolver,
|
javaClassResolver: LazyJavaClassResolver,
|
||||||
externalAnnotationResolver: ExternalAnnotationResolver
|
externalAnnotationResolver: ExternalAnnotationResolver,
|
||||||
) : GlobalJavaResolverContext(storageManager, finder, javaClassResolver, externalAnnotationResolver)
|
externalSignatureResolver: ExternalSignatureResolver,
|
||||||
|
errorReporter: ErrorReporter,
|
||||||
|
methodSignatureChecker: MethodSignatureChecker,
|
||||||
|
javaResolverCache: JavaResolverCache
|
||||||
|
) : GlobalJavaResolverContext(storageManager, finder, javaClassResolver,
|
||||||
|
externalAnnotationResolver, externalSignatureResolver,
|
||||||
|
errorReporter, methodSignatureChecker, javaResolverCache)
|
||||||
|
|
||||||
fun LazyJavaResolverContext.withTypes(
|
fun LazyJavaResolverContext.withTypes(
|
||||||
typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY
|
typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY
|
||||||
@@ -49,6 +60,10 @@ fun LazyJavaResolverContext.withTypes(
|
|||||||
finder,
|
finder,
|
||||||
javaClassResolver,
|
javaClassResolver,
|
||||||
externalAnnotationResolver,
|
externalAnnotationResolver,
|
||||||
|
externalSignatureResolver,
|
||||||
|
errorReporter,
|
||||||
|
methodSignatureChecker,
|
||||||
|
javaResolverCache,
|
||||||
LazyJavaTypeResolver(this, typeParameterResolver),
|
LazyJavaTypeResolver(this, typeParameterResolver),
|
||||||
typeParameterResolver)
|
typeParameterResolver)
|
||||||
|
|
||||||
@@ -58,9 +73,15 @@ class LazyJavaResolverContextWithTypes(
|
|||||||
finder: JavaClassFinder,
|
finder: JavaClassFinder,
|
||||||
javaClassResolver: LazyJavaClassResolver,
|
javaClassResolver: LazyJavaClassResolver,
|
||||||
externalAnnotationResolver: ExternalAnnotationResolver,
|
externalAnnotationResolver: ExternalAnnotationResolver,
|
||||||
|
externalSignatureResolver: ExternalSignatureResolver,
|
||||||
|
errorReporter: ErrorReporter,
|
||||||
|
methodSignatureChecker: MethodSignatureChecker,
|
||||||
|
javaResolverCache: JavaResolverCache,
|
||||||
val typeResolver: LazyJavaTypeResolver,
|
val typeResolver: LazyJavaTypeResolver,
|
||||||
val typeParameterResolver: TypeParameterResolver
|
val typeParameterResolver: TypeParameterResolver
|
||||||
) : LazyJavaResolverContext(subModule, storageManager, finder, javaClassResolver, externalAnnotationResolver)
|
) : LazyJavaResolverContext(subModule, storageManager, finder, javaClassResolver,
|
||||||
|
externalAnnotationResolver, externalSignatureResolver,
|
||||||
|
errorReporter, methodSignatureChecker, javaResolverCache)
|
||||||
|
|
||||||
fun LazyJavaResolverContextWithTypes.child(
|
fun LazyJavaResolverContextWithTypes.child(
|
||||||
containingDeclaration: DeclarationDescriptor,
|
containingDeclaration: DeclarationDescriptor,
|
||||||
|
|||||||
Reference in New Issue
Block a user