Introduce location in SamConversionResolver::resolveSamConstructor and provide right location in usages

This commit is contained in:
Zalim Bashorov
2015-10-30 16:42:10 +03:00
parent 4cb5398c04
commit 5a6bcea826
4 changed files with 21 additions and 18 deletions
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.load.java.components
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
import org.jetbrains.kotlin.load.java.descriptors.SamConstructorDescriptor
import org.jetbrains.kotlin.load.java.structure.JavaMethod
@@ -27,13 +28,13 @@ import org.jetbrains.kotlin.types.KotlinType
public interface SamConversionResolver {
public companion object EMPTY : SamConversionResolver {
override fun <D : FunctionDescriptor> resolveSamAdapter(original: D) = null
override fun resolveSamConstructor(name: Name, scope: KtScope) = null
override fun resolveSamConstructor(name: Name, scope: KtScope, location: LookupLocation) = null
override fun resolveFunctionTypeIfSamInterface(
classDescriptor: JavaClassDescriptor, resolveMethod: (JavaMethod) -> FunctionDescriptor
): KotlinType? = null
}
public fun resolveSamConstructor(name: Name, scope: KtScope): SamConstructorDescriptor?
public fun resolveSamConstructor(name: Name, scope: KtScope, location: LookupLocation): SamConstructorDescriptor?
public fun <D : FunctionDescriptor> resolveSamAdapter(original: D): D?
@@ -151,7 +151,7 @@ public class LazyJavaPackageScope(
)
override fun computeNonDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name) {
result.addIfNotNull(c.components.samConversionResolver.resolveSamConstructor(name, this))
result.addIfNotNull(c.components.samConversionResolver.resolveSamConstructor(name, this, NoLookupLocation.FOR_ALREADY_TRACKED))
}
override fun getSubPackages() = subPackages()
@@ -28,9 +28,7 @@ import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValueOfMethod
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesMethod
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesProperty
import org.jetbrains.kotlin.resolve.DescriptorFactory.*
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.types.KotlinType
@@ -71,7 +69,7 @@ public class LazyJavaStaticClassScope(
override fun computeNonDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name) {
val nestedClassesScope = getContainingDeclaration().getUnsubstitutedInnerClassesScope()
result.addIfNotNull(c.components.samConversionResolver.resolveSamConstructor(name, nestedClassesScope))
result.addIfNotNull(c.components.samConversionResolver.resolveSamConstructor(name, nestedClassesScope, NoLookupLocation.FOR_ALREADY_TRACKED))
val functionsFromSupertypes = getStaticFunctionsFromJavaSuperClasses(name, getContainingDeclaration())
result.addAll(DescriptorResolverUtils.resolveOverrides(name, functionsFromSupertypes, result, getContainingDeclaration(), c.components.errorReporter))