Extend CandidateInterceptor to intercept ResolvedCallAtom candidate
This commit is contained in:
committed by
teamcityserver
parent
99688e5c80
commit
78ee6b2a09
@@ -84,6 +84,7 @@ abstract class ResolvedCallAtom : ResolvedAtom() {
|
||||
abstract val argumentsWithSuspendConversion: Map<KotlinCallArgument, UnwrappedType>
|
||||
abstract val argumentsWithUnitConversion: Map<KotlinCallArgument, UnwrappedType>
|
||||
abstract val argumentsWithConstantConversion: Map<KotlinCallArgument, IntegerValueTypeConstant>
|
||||
abstract fun setCandidateDescriptor(newCandidateDescriptor: CallableDescriptor)
|
||||
}
|
||||
|
||||
class SamConversionDescription(
|
||||
|
||||
+10
-1
@@ -78,7 +78,7 @@ class ResolvedCallableReferenceCallAtom(
|
||||
|
||||
open class MutableResolvedCallAtom(
|
||||
override val atom: KotlinCall,
|
||||
override val candidateDescriptor: CallableDescriptor, // original candidate descriptor
|
||||
originalCandidateDescriptor: CallableDescriptor, // original candidate descriptor
|
||||
override val explicitReceiverKind: ExplicitReceiverKind,
|
||||
override val dispatchReceiverArgument: SimpleKotlinCallArgument?,
|
||||
override val extensionReceiverArgument: SimpleKotlinCallArgument?,
|
||||
@@ -94,6 +94,10 @@ open class MutableResolvedCallAtom(
|
||||
private var suspendAdapterMap: HashMap<KotlinCallArgument, UnwrappedType>? = null
|
||||
private var unitAdapterMap: HashMap<KotlinCallArgument, UnwrappedType>? = null
|
||||
private var signedUnsignedConstantConversions: HashMap<KotlinCallArgument, IntegerValueTypeConstant>? = null
|
||||
private var _candidateDescriptor = originalCandidateDescriptor
|
||||
|
||||
override val candidateDescriptor: CallableDescriptor
|
||||
get() = _candidateDescriptor
|
||||
|
||||
val hasSamConversion: Boolean
|
||||
get() = samAdapterMap != null
|
||||
@@ -146,6 +150,11 @@ open class MutableResolvedCallAtom(
|
||||
super.setAnalyzedResults(subResolvedAtoms)
|
||||
}
|
||||
|
||||
override fun setCandidateDescriptor(newCandidateDescriptor: CallableDescriptor) {
|
||||
if (newCandidateDescriptor == candidateDescriptor) return
|
||||
_candidateDescriptor = newCandidateDescriptor
|
||||
}
|
||||
|
||||
override fun toString(): String = "$atom, candidate = $candidateDescriptor"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user