[FIR] Only overridable members should report JvmName inapplicable
Instead of checking for only open declarations, check for overridable declarations, since private declarations cannot be overridden even if they are marked as open. While normally these modifiers are exclusive, a declaration can be made open via a compiler plugin like AllOpen. #KT-60183 Fixed #KT-57223 Fixed
This commit is contained in:
+2
-4
@@ -13,9 +13,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclaratio
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.getContainingClassSymbol
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isInline
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isOpen
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isOverride
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.resolve.getContainingClass
|
||||
@@ -47,7 +45,7 @@ object FirJvmNameChecker : FirBasicDeclarationChecker() {
|
||||
|
||||
if (
|
||||
declaration.isOverride ||
|
||||
declaration.isOpen ||
|
||||
declaration.isOverridable ||
|
||||
containingClass?.isValueClassThatRequiresMangling() == true
|
||||
) {
|
||||
reporter.reportOn(jvmName.source, FirJvmErrors.INAPPLICABLE_JVM_NAME, context)
|
||||
|
||||
Reference in New Issue
Block a user