Fix receiver inconsistency when builder inference restriction disabled
In 154e53c701 update of
extensionReceiverArgument in resolvedCall was accidentally moved into
language feature dependant block
This commit is contained in:
+13
-13
@@ -663,23 +663,23 @@ internal object CheckReceivers : ResolutionPart() {
|
||||
)
|
||||
|
||||
1 -> {
|
||||
var extensionReceiverArgument = resolvedCall.extensionReceiverArgument
|
||||
if (extensionReceiverArgument == null) {
|
||||
extensionReceiverArgument = chooseExtensionReceiverCandidate() ?: return
|
||||
resolvedCall.extensionReceiverArgument = extensionReceiverArgument
|
||||
}
|
||||
val checkBuilderInferenceRestriction =
|
||||
!callComponents.languageVersionSettings
|
||||
.supportsFeature(LanguageFeature.NoBuilderInferenceWithoutAnnotationRestriction)
|
||||
if (checkBuilderInferenceRestriction) {
|
||||
var extensionReceiverArgument = resolvedCall.extensionReceiverArgument
|
||||
if (extensionReceiverArgument == null) {
|
||||
extensionReceiverArgument = chooseExtensionReceiverCandidate() ?: return
|
||||
resolvedCall.extensionReceiverArgument = extensionReceiverArgument
|
||||
}
|
||||
if (extensionReceiverArgument.receiver.receiverValue.type is StubTypeForBuilderInference) {
|
||||
addDiagnostic(
|
||||
StubBuilderInferenceReceiver(
|
||||
extensionReceiverArgument,
|
||||
candidateDescriptor.extensionReceiverParameter!!
|
||||
)
|
||||
if (checkBuilderInferenceRestriction &&
|
||||
extensionReceiverArgument.receiver.receiverValue.type is StubTypeForBuilderInference
|
||||
) {
|
||||
addDiagnostic(
|
||||
StubBuilderInferenceReceiver(
|
||||
extensionReceiverArgument,
|
||||
candidateDescriptor.extensionReceiverParameter!!
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
checkReceiver(
|
||||
resolvedCall.extensionReceiverArgument,
|
||||
|
||||
Reference in New Issue
Block a user