Refactoring: rename SamConversionTransformer -> SamConversionOracle
This commit is contained in:
+3
-3
@@ -13,13 +13,13 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
|
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassConstructorDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.calls.components.SamConversionTransformer
|
import org.jetbrains.kotlin.resolve.calls.components.SamConversionOracle
|
||||||
import org.jetbrains.kotlin.synthetic.hasJavaOriginInHierarchy
|
import org.jetbrains.kotlin.synthetic.hasJavaOriginInHierarchy
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
|
|
||||||
class JvmSamConversionTransformer(
|
class JvmSamConversionOracle(
|
||||||
private val languageVersionSettings: LanguageVersionSettings
|
private val languageVersionSettings: LanguageVersionSettings
|
||||||
) : SamConversionTransformer {
|
) : SamConversionOracle {
|
||||||
|
|
||||||
override fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean {
|
override fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean {
|
||||||
if (languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) return true
|
if (languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) return true
|
||||||
+2
-2
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.container.StorageComponentContainer
|
|||||||
import org.jetbrains.kotlin.container.useImpl
|
import org.jetbrains.kotlin.container.useImpl
|
||||||
import org.jetbrains.kotlin.container.useInstance
|
import org.jetbrains.kotlin.container.useInstance
|
||||||
import org.jetbrains.kotlin.resolve.sam.SamConversionResolver
|
import org.jetbrains.kotlin.resolve.sam.SamConversionResolver
|
||||||
import org.jetbrains.kotlin.load.java.sam.JvmSamConversionTransformer
|
import org.jetbrains.kotlin.load.java.sam.JvmSamConversionOracle
|
||||||
import org.jetbrains.kotlin.resolve.PlatformConfiguratorBase
|
import org.jetbrains.kotlin.resolve.PlatformConfiguratorBase
|
||||||
import org.jetbrains.kotlin.resolve.checkers.BigFunctionTypeAvailabilityChecker
|
import org.jetbrains.kotlin.resolve.checkers.BigFunctionTypeAvailabilityChecker
|
||||||
import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker
|
import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker
|
||||||
@@ -105,7 +105,7 @@ object JvmPlatformConfigurator : PlatformConfiguratorBase(
|
|||||||
container.useImpl<JvmTypeSpecificityComparator>()
|
container.useImpl<JvmTypeSpecificityComparator>()
|
||||||
container.useImpl<JvmPlatformOverloadsSpecificityComparator>()
|
container.useImpl<JvmPlatformOverloadsSpecificityComparator>()
|
||||||
container.useImpl<JvmDefaultSuperCallChecker>()
|
container.useImpl<JvmDefaultSuperCallChecker>()
|
||||||
container.useImpl<JvmSamConversionTransformer>()
|
container.useImpl<JvmSamConversionOracle>()
|
||||||
container.useInstance(FunctionWithBigAritySupport.LanguageVersionDependent)
|
container.useInstance(FunctionWithBigAritySupport.LanguageVersionDependent)
|
||||||
container.useInstance(GenericArrayClassLiteralSupport.Enabled)
|
container.useInstance(GenericArrayClassLiteralSupport.Enabled)
|
||||||
container.useInstance(JavaActualAnnotationArgumentExtractor())
|
container.useInstance(JavaActualAnnotationArgumentExtractor())
|
||||||
|
|||||||
+3
-3
@@ -76,13 +76,13 @@ interface KotlinResolutionCallbacks {
|
|||||||
fun disableContractsIfNecessary(resolvedAtom: ResolvedCallAtom)
|
fun disableContractsIfNecessary(resolvedAtom: ResolvedCallAtom)
|
||||||
}
|
}
|
||||||
|
|
||||||
@DefaultImplementation(impl = SamConversionTransformer.Empty::class)
|
@DefaultImplementation(impl = SamConversionOracle.Empty::class)
|
||||||
interface SamConversionTransformer {
|
interface SamConversionOracle {
|
||||||
fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean
|
fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean
|
||||||
|
|
||||||
fun isPossibleSamType(samType: KotlinType): Boolean
|
fun isPossibleSamType(samType: KotlinType): Boolean
|
||||||
|
|
||||||
object Empty : SamConversionTransformer {
|
object Empty : SamConversionOracle {
|
||||||
override fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean = false
|
override fun shouldRunSamConversionForFunction(candidate: CallableDescriptor): Boolean = false
|
||||||
override fun isPossibleSamType(samType: KotlinType): Boolean {
|
override fun isPossibleSamType(samType: KotlinType): Boolean {
|
||||||
val descriptor = samType.constructor.declarationDescriptor
|
val descriptor = samType.constructor.declarationDescriptor
|
||||||
|
|||||||
+2
-2
@@ -313,7 +313,7 @@ private fun KotlinResolutionCandidate.getExpectedTypeWithSAMConversion(
|
|||||||
|
|
||||||
if (generatingAdditionalSamCandidateIsEnabled) return null
|
if (generatingAdditionalSamCandidateIsEnabled) return null
|
||||||
if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) {
|
if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) {
|
||||||
if (!callComponents.samConversionTransformer.shouldRunSamConversionForFunction(resolvedCall.candidateDescriptor)) return null
|
if (!callComponents.samConversionOracle.shouldRunSamConversionForFunction(resolvedCall.candidateDescriptor)) return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val argumentIsFunctional = when (argument) {
|
val argumentIsFunctional = when (argument) {
|
||||||
@@ -325,7 +325,7 @@ private fun KotlinResolutionCandidate.getExpectedTypeWithSAMConversion(
|
|||||||
|
|
||||||
val originalExpectedType = argument.getExpectedType(candidateParameter.original, callComponents.languageVersionSettings)
|
val originalExpectedType = argument.getExpectedType(candidateParameter.original, callComponents.languageVersionSettings)
|
||||||
|
|
||||||
if (!callComponents.samConversionTransformer.isPossibleSamType(originalExpectedType)) return null
|
if (!callComponents.samConversionOracle.isPossibleSamType(originalExpectedType)) return null
|
||||||
|
|
||||||
val convertedTypeByOriginal =
|
val convertedTypeByOriginal =
|
||||||
callComponents.samConversionResolver.getFunctionTypeForPossibleSamType(originalExpectedType) ?: return null
|
callComponents.samConversionResolver.getFunctionTypeForPossibleSamType(originalExpectedType) ?: return null
|
||||||
|
|||||||
+1
-1
@@ -44,7 +44,7 @@ class KotlinCallComponents(
|
|||||||
val reflectionTypes: ReflectionTypes,
|
val reflectionTypes: ReflectionTypes,
|
||||||
val builtIns: KotlinBuiltIns,
|
val builtIns: KotlinBuiltIns,
|
||||||
val languageVersionSettings: LanguageVersionSettings,
|
val languageVersionSettings: LanguageVersionSettings,
|
||||||
val samConversionTransformer: SamConversionTransformer,
|
val samConversionOracle: SamConversionOracle,
|
||||||
val samConversionResolver: SamConversionResolver,
|
val samConversionResolver: SamConversionResolver,
|
||||||
val kotlinTypeChecker: NewKotlinTypeChecker
|
val kotlinTypeChecker: NewKotlinTypeChecker
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getValueArgumentsInParentheses
|
import org.jetbrains.kotlin.resolve.calls.callUtil.getValueArgumentsInParentheses
|
||||||
import org.jetbrains.kotlin.resolve.calls.components.SamConversionTransformer
|
|
||||||
import org.jetbrains.kotlin.resolve.calls.model.ArgumentMatch
|
import org.jetbrains.kotlin.resolve.calls.model.ArgumentMatch
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
import org.jetbrains.kotlin.resolve.sam.SamConversionResolver
|
import org.jetbrains.kotlin.resolve.sam.SamConversionResolver
|
||||||
|
|||||||
Reference in New Issue
Block a user