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