Don't report TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE if unrestricted build inference was enabled

This commit is contained in:
Victor Petukhov
2021-05-21 14:51:41 +03:00
parent 0c427555cf
commit d486f7e188
2 changed files with 7 additions and 2 deletions
@@ -415,7 +415,10 @@ class ResolvedAtomCompleter(
val rawExtensionReceiver = callableCandidate.extensionReceiver val rawExtensionReceiver = callableCandidate.extensionReceiver
if (rawExtensionReceiver != null && rawExtensionReceiver.receiver.receiverValue.type.contains { it is StubTypeForBuilderInference }) { val unrestrictedBuilderInferenceSupported =
topLevelCallContext.languageVersionSettings.supportsFeature(LanguageFeature.UnrestrictedBuilderInference)
if (rawExtensionReceiver != null && !unrestrictedBuilderInferenceSupported && rawExtensionReceiver.receiver.receiverValue.type.contains { it is StubTypeForBuilderInference }) {
topLevelTrace.reportDiagnosticOnce(Errors.TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE.on(callableReferenceExpression)) topLevelTrace.reportDiagnosticOnce(Errors.TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE.on(callableReferenceExpression))
return return
} }
@@ -551,7 +551,9 @@ class DoubleColonExpressionResolver(
resolvedCall.extensionReceiver?.type?.contains { it is StubTypeForBuilderInference } == true resolvedCall.extensionReceiver?.type?.contains { it is StubTypeForBuilderInference } == true
} }
if (doesSomeExtensionReceiverContainsStubType) { val unrestrictedBuilderInferenceSupported = languageVersionSettings.supportsFeature(LanguageFeature.UnrestrictedBuilderInference)
if (doesSomeExtensionReceiverContainsStubType && !unrestrictedBuilderInferenceSupported) {
c.trace.reportDiagnosticOnce(TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE.on(expression)) c.trace.reportDiagnosticOnce(TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE.on(expression))
return noTypeInfo(c) return noTypeInfo(c)
} }