[FIR] Add checker for MISSING_DEPENDENCY_CLASS

#KT-59371 Fixed
This commit is contained in:
Brian Norman
2023-08-21 06:59:13 -05:00
committed by Space Team
parent ecb6b5dc58
commit 833072e1fb
30 changed files with 145 additions and 277 deletions
@@ -415,6 +415,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.MISSING_DEPENDENCY_CLASS) { firDiagnostic ->
MissingDependencyClassImpl(
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.CREATING_AN_INSTANCE_OF_ABSTRACT_CLASS) { firDiagnostic ->
CreatingAnInstanceOfAbstractClassImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -336,6 +336,11 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = DuplicateParameterNameInFunctionType::class
}
interface MissingDependencyClass : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = MissingDependencyClass::class
val type: KtType
}
interface CreatingAnInstanceOfAbstractClass : KtFirDiagnostic<KtExpression> {
override val diagnosticClass get() = CreatingAnInstanceOfAbstractClass::class
}
@@ -387,6 +387,12 @@ internal class DuplicateParameterNameInFunctionTypeImpl(
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<KtTypeReference>(firDiagnostic, token), KtFirDiagnostic.DuplicateParameterNameInFunctionType
internal class MissingDependencyClassImpl(
override val type: KtType,
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.MissingDependencyClass
internal class CreatingAnInstanceOfAbstractClassImpl(
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,