[FIR] Fix reporting of CANNOT_INFER_PARAMETER_TYPE on lambda parameters
^KT-56138 Fixed
This commit is contained in:
committed by
Space Team
parent
76d360d793
commit
f479a56f5e
+2
-2
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeCannotInferParameterType
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeCannotInferTypeParameterType
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaField
|
||||
import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
||||
@@ -458,7 +458,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
is ConeTypeVariableType -> {
|
||||
val diagnostic = when ( val typeParameter = coneType.lookupTag.originalTypeParameter) {
|
||||
null -> ConeSimpleDiagnostic("Cannot infer parameter type for ${coneType.lookupTag.debugName}")
|
||||
else -> ConeCannotInferParameterType((typeParameter as ConeTypeParameterLookupTag).typeParameterSymbol)
|
||||
else -> ConeCannotInferTypeParameterType((typeParameter as ConeTypeParameterLookupTag).typeParameterSymbol)
|
||||
}
|
||||
buildKtType(ConeErrorType(diagnostic, isUninferredParameter = true, attributes = coneType.attributes))
|
||||
}
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeErrorType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeCannotInferParameterType
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeCannotInferTypeParameterType
|
||||
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
||||
import org.jetbrains.kotlin.fir.types.renderForDebugging
|
||||
|
||||
@@ -28,7 +28,7 @@ internal class KtFirTypeErrorType(
|
||||
|
||||
override fun tryRenderAsNonErrorType(): String? = withValidityAssertion {
|
||||
when (val diagnostic = coneType.diagnostic) {
|
||||
is ConeCannotInferParameterType -> diagnostic.typeParameter.name.asString()
|
||||
is ConeCannotInferTypeParameterType -> diagnostic.typeParameter.name.asString()
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -11858,6 +11858,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
|
||||
runTest("compiler/testData/diagnostics/tests/functionLiterals/kt51317.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt56138.kt")
|
||||
public void testKt56138() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/functionLiterals/kt56138.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt6541_extensionForExtensionFunction.kt")
|
||||
public void testKt6541_extensionForExtensionFunction() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user