[FIR] Report inherited java members referencing FunctionN
^KT-60000 Fixed
This commit is contained in:
committed by
Space Team
parent
0c35e97a8d
commit
70e98c9c2b
+7
@@ -657,6 +657,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.UNSUPPORTED_INHERITANCE_FROM_JAVA_MEMBER_REFERENCING_KOTLIN_FUNCTION) { firDiagnostic ->
|
||||
UnsupportedInheritanceFromJavaMemberReferencingKotlinFunctionImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.CYCLIC_INHERITANCE_HIERARCHY) { firDiagnostic ->
|
||||
CyclicInheritanceHierarchyImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+5
@@ -502,6 +502,11 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
val reason: String
|
||||
}
|
||||
|
||||
interface UnsupportedInheritanceFromJavaMemberReferencingKotlinFunction : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = UnsupportedInheritanceFromJavaMemberReferencingKotlinFunction::class
|
||||
val symbol: KtSymbol
|
||||
}
|
||||
|
||||
interface CyclicInheritanceHierarchy : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = CyclicInheritanceHierarchy::class
|
||||
}
|
||||
|
||||
+6
@@ -590,6 +590,12 @@ internal class SupertypeNotAClassOrInterfaceImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtElement>(firDiagnostic, token), KtFirDiagnostic.SupertypeNotAClassOrInterface
|
||||
|
||||
internal class UnsupportedInheritanceFromJavaMemberReferencingKotlinFunctionImpl(
|
||||
override val symbol: KtSymbol,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.UnsupportedInheritanceFromJavaMemberReferencingKotlinFunction
|
||||
|
||||
internal class CyclicInheritanceHierarchyImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
|
||||
Reference in New Issue
Block a user