Fixing compilation errors to account for package fragment/view
This commit is contained in:
@@ -147,11 +147,9 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
|
||||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
|
|
||||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||||
annotationDescriptorDeserializer.setJavaClassResolver(javaClassResolver);
|
|
||||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||||
|
|
||||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||||
|
|||||||
@@ -341,11 +341,9 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
|
|
||||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
|
|
||||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||||
annotationDescriptorDeserializer.setJavaClassResolver(javaClassResolver);
|
|
||||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||||
|
|
||||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||||
|
|||||||
+1
-2
@@ -23,7 +23,6 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ImportPath;
|
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;
|
||||||
@@ -156,7 +155,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
public JavaClass findClass(@NotNull FqName fqName) {
|
public JavaClass findClass(@NotNull FqName fqName) {
|
||||||
// Do not look for JavaClasses for Kotlin binaries & built-ins
|
// Do not look for JavaClasses for Kotlin binaries & built-ins
|
||||||
if (kotlinClassesFromBinaries.invoke(fqName) != null
|
if (kotlinClassesFromBinaries.invoke(fqName) != null
|
||||||
|| kotlinNamespacesFromBinaries.invoke(fqName) != null
|
//|| kotlinNamespacesFromBinaries.invoke(fqName) != null
|
||||||
|| JavaClassResolver.getKotlinBuiltinClassDescriptor(fqName) != null) {
|
|| JavaClassResolver.getKotlinBuiltinClassDescriptor(fqName) != null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-11
@@ -1,15 +1,15 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.lazy
|
package org.jetbrains.jet.lang.resolve.java.lazy
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor
|
|
||||||
import org.jetbrains.jet.storage.MemoizedFunctionToNullable
|
import org.jetbrains.jet.storage.MemoizedFunctionToNullable
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentForJavaPackage
|
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentForJavaPackage
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentForJavaClass
|
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyPackageFragmentForJavaClass
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver
|
||||||
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
|
||||||
|
|
||||||
public open class LazyJavaSubModule(
|
public open class LazyJavaSubModule(
|
||||||
private val outerContext: GlobalJavaResolverContext,
|
private val outerContext: GlobalJavaResolverContext,
|
||||||
@@ -28,20 +28,16 @@ public open class LazyJavaSubModule(
|
|||||||
outerContext.javaDescriptorResolver
|
outerContext.javaDescriptorResolver
|
||||||
)
|
)
|
||||||
|
|
||||||
private val _packageFragments: MemoizedFunctionToNullable<FqName, NamespaceDescriptor> = c.storageManager.createMemoizedFunctionWithNullableValues {
|
private val _packageFragments: MemoizedFunctionToNullable<FqName, PackageFragmentDescriptor> = c.storageManager.createMemoizedFunctionWithNullableValues {
|
||||||
fqName ->
|
fqName ->
|
||||||
val jPackage = c.finder.findPackage(fqName)
|
val jPackage = c.finder.findPackage(fqName)
|
||||||
if (jPackage != null) {
|
if (jPackage != null) {
|
||||||
val result = LazyPackageFragmentForJavaPackage(c, findParent(fqName), jPackage)
|
LazyPackageFragmentForJavaPackage(c, module, jPackage)
|
||||||
c.javaResolverCache.recordPackage(jPackage, result)
|
|
||||||
result
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val jClass = c.finder.findClass(fqName)
|
val jClass = c.finder.findClass(fqName)
|
||||||
if (jClass != null && JavaNamespaceResolver.hasStaticMembers(jClass)) {
|
if (jClass != null && DescriptorResolverUtils.isJavaClassVisibleAsPackage(jClass)) {
|
||||||
val result = LazyPackageFragmentForJavaClass(c, findParent(fqName), jClass)
|
LazyPackageFragmentForJavaClass(c, module, jClass)
|
||||||
c.javaResolverCache.recordPackage(jClass, result)
|
|
||||||
result
|
|
||||||
}
|
}
|
||||||
else null
|
else null
|
||||||
}
|
}
|
||||||
@@ -51,7 +47,7 @@ public open class LazyJavaSubModule(
|
|||||||
if (fqName.isRoot()) module else getPackageFragment(fqName.parent())
|
if (fqName.isRoot()) module else getPackageFragment(fqName.parent())
|
||||||
?: throw IllegalStateException("Cannot resolve parent package for: $fqName")
|
?: throw IllegalStateException("Cannot resolve parent package for: $fqName")
|
||||||
|
|
||||||
fun getPackageFragment(fqName: FqName): NamespaceDescriptor? = _packageFragments(fqName)
|
fun getPackageFragment(fqName: FqName) = _packageFragments(fqName)
|
||||||
|
|
||||||
fun getClass(fqName: FqName): ClassDescriptor? = c.javaClassResolver.resolveClassByFqName(fqName)
|
fun getClass(fqName: FqName): ClassDescriptor? = c.javaClassResolver.resolveClassByFqName(fqName)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -172,7 +172,7 @@ public class LazyJavaClassMemberScope(
|
|||||||
alreadyResolved
|
alreadyResolved
|
||||||
else LazyJavaClassDescriptor(c,
|
else LazyJavaClassDescriptor(c,
|
||||||
getContainingDeclaration(),
|
getContainingDeclaration(),
|
||||||
DescriptorUtils.getFQName(getContainingDeclaration()).child(name).toSafe(),
|
DescriptorUtils.getFqName(getContainingDeclaration()).child(name).toSafe(),
|
||||||
jNestedClass)
|
jNestedClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ public class LazyJavaClassMemberScope(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// namespaces should be resolved elsewhere
|
// namespaces should be resolved elsewhere
|
||||||
override fun getNamespace(name: Name): NamespaceDescriptor? = null
|
override fun getPackage(name: Name) = null
|
||||||
override fun getAllPackageNames(): Collection<Name> = listOf()
|
override fun getAllPackageNames(): Collection<Name> = listOf()
|
||||||
|
|
||||||
override fun toString() = "Lazy java member scope for " + jClass.getFqName()
|
override fun toString() = "Lazy java member scope for " + jClass.getFqName()
|
||||||
|
|||||||
+6
-10
@@ -6,7 +6,6 @@ import org.jetbrains.jet.lang.resolve.name.LabelName
|
|||||||
import org.jetbrains.jet.lang.resolve.name.Name
|
import org.jetbrains.jet.lang.resolve.name.Name
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||||
import org.jetbrains.jet.utils.emptyList
|
import org.jetbrains.jet.utils.emptyList
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaField
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaField
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContextWithTypes
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContextWithTypes
|
||||||
@@ -31,18 +30,15 @@ import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
|
|||||||
import java.util.LinkedHashSet
|
import java.util.LinkedHashSet
|
||||||
import org.jetbrains.jet.lang.types.JetType
|
import org.jetbrains.jet.lang.types.JetType
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.types.toAttributes
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptor
|
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPropertyDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl
|
import org.jetbrains.jet.lang.descriptors.impl.PropertyDescriptorImpl
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import org.jetbrains.jet.utils.emptyOrSingletonList
|
import org.jetbrains.jet.utils.emptyOrSingletonList
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContext
|
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.jet.utils.Printer
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver
|
||||||
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils
|
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ClassDescriptorImpl
|
|
||||||
import org.jetbrains.jet.utils.Printer
|
import org.jetbrains.jet.utils.Printer
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor
|
||||||
|
|
||||||
public abstract class LazyJavaMemberScope(
|
public abstract class LazyJavaMemberScope(
|
||||||
protected val c: LazyJavaResolverContextWithTypes,
|
protected val c: LazyJavaResolverContextWithTypes,
|
||||||
@@ -83,9 +79,9 @@ public abstract class LazyJavaMemberScope(
|
|||||||
listOf(function).iterator()
|
listOf(function).iterator()
|
||||||
}.toList())
|
}.toList())
|
||||||
|
|
||||||
if (_containingDeclaration is NamespaceDescriptor) {
|
if (_containingDeclaration is JavaPackageFragmentDescriptor) {
|
||||||
val klass = JavaFunctionResolver.findClassInNamespace(_containingDeclaration, name);
|
val klass = c.javaDescriptorResolver.resolveClass(_containingDeclaration.getFqName().child(name))
|
||||||
if (klass != null && klass.getFunctionTypeForSamInterface() != null) {
|
if (klass is LazyJavaClassDescriptor && klass.getFunctionTypeForSamInterface() != null) {
|
||||||
functions.add(SingleAbstractMethodUtils.createSamConstructorFunction(_containingDeclaration, klass))
|
functions.add(SingleAbstractMethodUtils.createSamConstructorFunction(_containingDeclaration, klass))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +124,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
val signatureErrors: MutableList<String>
|
val signatureErrors: MutableList<String>
|
||||||
val superFunctions: List<FunctionDescriptor>
|
val superFunctions: List<FunctionDescriptor>
|
||||||
val effectiveSignature: ExternalSignatureResolver.AlternativeMethodSignature
|
val effectiveSignature: ExternalSignatureResolver.AlternativeMethodSignature
|
||||||
if (_containingDeclaration is NamespaceDescriptor) {
|
if (_containingDeclaration is PackageFragmentDescriptor) {
|
||||||
superFunctions = Collections.emptyList()
|
superFunctions = Collections.emptyList()
|
||||||
effectiveSignature = c.externalSignatureResolver.resolveAlternativeMethodSignature(method, false, returnType, null, valueParameters, methodTypeParameters)
|
effectiveSignature = c.externalSignatureResolver.resolveAlternativeMethodSignature(method, false, returnType, null, valueParameters, methodTypeParameters)
|
||||||
signatureErrors = effectiveSignature.getErrors()
|
signatureErrors = effectiveSignature.getErrors()
|
||||||
@@ -284,7 +280,7 @@ public abstract class LazyJavaMemberScope(
|
|||||||
val result = LinkedHashSet<DeclarationDescriptor>()
|
val result = LinkedHashSet<DeclarationDescriptor>()
|
||||||
|
|
||||||
for (name in getAllPackageNames()) {
|
for (name in getAllPackageNames()) {
|
||||||
val descriptor = getNamespace(name)
|
val descriptor = getPackage(name)
|
||||||
if (descriptor != null) {
|
if (descriptor != null) {
|
||||||
// Null signifies that a package found in Java is not present in Kotlin
|
// Null signifies that a package found in Java is not present in Kotlin
|
||||||
result.add(descriptor)
|
result.add(descriptor)
|
||||||
|
|||||||
+17
-9
@@ -1,9 +1,5 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.lazy.descriptors
|
package org.jetbrains.jet.lang.resolve.java.lazy.descriptors
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor
|
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.AbstractNamespaceDescriptorImpl
|
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent
|
|
||||||
import org.jetbrains.jet.utils.emptyList
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContext
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContext
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name
|
import org.jetbrains.jet.lang.resolve.name.Name
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||||
@@ -12,23 +8,35 @@ import org.jetbrains.jet.lang.resolve.name.FqName
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
|
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
||||||
import org.jetbrains.kotlin.util.sure
|
import org.jetbrains.kotlin.util.sure
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
|
import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorNonRootImpl
|
||||||
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor
|
||||||
|
import org.jetbrains.jet.lang.types.TypeSubstitutor
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||||
|
|
||||||
abstract class LazyJavaPackageFragment(
|
abstract class LazyJavaPackageFragment(
|
||||||
c: LazyJavaResolverContext,
|
private val c: LazyJavaResolverContext,
|
||||||
containingDeclaration: NamespaceDescriptorParent,
|
containingDeclaration: ModuleDescriptor,
|
||||||
name: Name
|
name: Name
|
||||||
) : AbstractNamespaceDescriptorImpl(containingDeclaration, emptyList(), name), NamespaceDescriptor, LazyJavaDescriptor {
|
) : DeclarationDescriptorNonRootImpl(containingDeclaration, listOf(), name), JavaPackageFragmentDescriptor, LazyJavaDescriptor {
|
||||||
|
|
||||||
protected abstract val _memberScope: JetScope
|
protected abstract val _memberScope: JetScope
|
||||||
|
|
||||||
override fun getMemberScope() = _memberScope
|
override fun getMemberScope() = _memberScope
|
||||||
|
|
||||||
|
override fun getJavaDescriptorResolver(): JavaDescriptorResolver = c.javaDescriptorResolver
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D) = visitor.visitPackageFragmentDescriptor(this, data) as R
|
||||||
|
|
||||||
|
override fun substitute(substitutor: TypeSubstitutor) = this
|
||||||
|
|
||||||
override fun toString() = "lazy java package fragment: " + getFqName()
|
override fun toString() = "lazy java package fragment: " + getFqName()
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LazyPackageFragmentForJavaPackage(
|
public class LazyPackageFragmentForJavaPackage(
|
||||||
c: LazyJavaResolverContext,
|
c: LazyJavaResolverContext,
|
||||||
containingDeclaration: NamespaceDescriptorParent,
|
containingDeclaration: ModuleDescriptor,
|
||||||
val jPackage: JavaPackage
|
val jPackage: JavaPackage
|
||||||
) : LazyJavaPackageFragment(c, containingDeclaration, jPackage.getFqName().shortNameOrSpecial()) {
|
) : LazyJavaPackageFragment(c, containingDeclaration, jPackage.getFqName().shortNameOrSpecial()) {
|
||||||
override fun getFqName(): FqName = jPackage.getFqName()
|
override fun getFqName(): FqName = jPackage.getFqName()
|
||||||
@@ -38,7 +46,7 @@ public class LazyPackageFragmentForJavaPackage(
|
|||||||
|
|
||||||
public class LazyPackageFragmentForJavaClass(
|
public class LazyPackageFragmentForJavaClass(
|
||||||
c: LazyJavaResolverContext,
|
c: LazyJavaResolverContext,
|
||||||
containingDeclaration: NamespaceDescriptorParent,
|
containingDeclaration: ModuleDescriptor,
|
||||||
val jClass: JavaClass
|
val jClass: JavaClass
|
||||||
) : LazyJavaPackageFragment(c, containingDeclaration,
|
) : LazyJavaPackageFragment(c, containingDeclaration,
|
||||||
jClass.getFqName().sure("Attempt to build a package of an anonymous/local class: $jClass")
|
jClass.getFqName().sure("Attempt to build a package of an anonymous/local class: $jClass")
|
||||||
|
|||||||
+3
-3
@@ -11,7 +11,6 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaPackage
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||||
import org.jetbrains.jet.utils.flatten
|
import org.jetbrains.jet.utils.flatten
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver
|
|
||||||
import org.jetbrains.kotlin.util.inn
|
import org.jetbrains.kotlin.util.inn
|
||||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule
|
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule
|
||||||
|
|
||||||
@@ -20,7 +19,7 @@ public abstract class LazyJavaPackageFragmentScope(
|
|||||||
packageFragment: LazyJavaPackageFragment
|
packageFragment: LazyJavaPackageFragment
|
||||||
) : LazyJavaMemberScope(c.withTypes(), packageFragment) {
|
) : LazyJavaMemberScope(c.withTypes(), packageFragment) {
|
||||||
|
|
||||||
protected val fqName: FqName = DescriptorUtils.getFQName(packageFragment).toSafe()
|
protected val fqName: FqName = DescriptorUtils.getFqName(packageFragment).toSafe()
|
||||||
private val classes = c.storageManager.createMemoizedFunctionWithNullableValues<Name, ClassDescriptor> {
|
private val classes = c.storageManager.createMemoizedFunctionWithNullableValues<Name, ClassDescriptor> {
|
||||||
name ->
|
name ->
|
||||||
val fqName = fqName.child(name)
|
val fqName = fqName.child(name)
|
||||||
@@ -49,7 +48,8 @@ public abstract class LazyJavaPackageFragmentScope(
|
|||||||
|
|
||||||
override fun getClassifier(name: Name): ClassifierDescriptor? = classes(name)
|
override fun getClassifier(name: Name): ClassifierDescriptor? = classes(name)
|
||||||
|
|
||||||
override fun getNamespace(name: Name): NamespaceDescriptor? = c.javaDescriptorResolver.resolveNamespace(getContainingDeclaration().getFqName().child(name), DescriptorSearchRule.INCLUDE_KOTLIN_SOURCES)
|
// Package fragments are not nested
|
||||||
|
override fun getPackage(name: Name) = null
|
||||||
|
|
||||||
override fun getImplicitReceiversHierarchy(): List<ReceiverParameterDescriptor> = listOf()
|
override fun getImplicitReceiversHierarchy(): List<ReceiverParameterDescriptor> = listOf()
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.descriptors;
|
package org.jetbrains.jet.lang.descriptors;
|
||||||
|
|
||||||
|
import jet.runtime.typeinfo.KotlinSignature;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
||||||
@@ -37,6 +38,7 @@ public interface DeclarationDescriptor extends Annotated, Named {
|
|||||||
@Nullable
|
@Nullable
|
||||||
DeclarationDescriptor substitute(@NotNull TypeSubstitutor substitutor);
|
DeclarationDescriptor substitute(@NotNull TypeSubstitutor substitutor);
|
||||||
|
|
||||||
|
@KotlinSignature("fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R")
|
||||||
<R, D> R accept(DeclarationDescriptorVisitor<R, D> visitor, D data);
|
<R, D> R accept(DeclarationDescriptorVisitor<R, D> visitor, D data);
|
||||||
void acceptVoid(DeclarationDescriptorVisitor<Void, Void> visitor);
|
void acceptVoid(DeclarationDescriptorVisitor<Void, Void> visitor);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user