FIR: store in ARGUMENT_TYPE_MISMATCH whether it's due to nullability

This commit is contained in:
Tianyu Geng
2021-04-30 20:48:09 +02:00
committed by Ilya Kirillov
parent cceb7197a5
commit 9106ae4f5f
9 changed files with 20 additions and 5 deletions
@@ -961,6 +961,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
ArgumentTypeMismatchImpl(
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.b),
firDiagnostic.c,
firDiagnostic as FirPsiDiagnostic<*>,
token,
)
@@ -688,6 +688,7 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = ArgumentTypeMismatch::class
abstract val expectedType: KtType
abstract val actualType: KtType
abstract val isMismatchDueToNullability: Boolean
}
abstract class NullForNonnullType : KtFirDiagnostic<PsiElement>() {
@@ -1105,6 +1105,7 @@ internal class ConditionTypeMismatchImpl(
internal class ArgumentTypeMismatchImpl(
override val expectedType: KtType,
override val actualType: KtType,
override val isMismatchDueToNullability: Boolean,
firDiagnostic: FirPsiDiagnostic<*>,
override val token: ValidityToken,
) : KtFirDiagnostic.ArgumentTypeMismatch(), KtAbstractFirDiagnostic<PsiElement> {