Skip to content

Commit 3ac8d95

Browse files
dzharkovSpace
authored and
Space
committed
Fix exception when reporting WRONG_TYPE_PARAMETER_NULLABILITY_FOR_JAVA_OVERRIDE
^KT-51979 Fixed
1 parent 2f4afe0 commit 3ac8d95

File tree

7 files changed

+57
-0
lines changed

7 files changed

+57
-0
lines changed

analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaOverrideWithWrongNullabilityOverrideChecker.kt

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.resolve.jvm.checkers
88
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
99
import org.jetbrains.kotlin.descriptors.ClassDescriptor
1010
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
11+
import org.jetbrains.kotlin.lexer.KtTokens
1112
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
1213
import org.jetbrains.kotlin.psi.KtDeclaration
1314
import org.jetbrains.kotlin.resolve.OverridingUtil
@@ -27,6 +28,10 @@ object JavaOverrideWithWrongNullabilityOverrideChecker : DeclarationChecker {
2728
if (descriptor !is CallableMemberDescriptor) return
2829
if (descriptor.overriddenDescriptors.isEmpty()) return
2930

31+
val modifierList = declaration.modifierList
32+
val hasOverrideNode = modifierList != null && modifierList.hasModifier(KtTokens.OVERRIDE_KEYWORD)
33+
if (!hasOverrideNode) return
34+
3035
val containingClass = descriptor.containingDeclaration as? ClassDescriptor ?: return
3136

3237
for (overriddenDescriptor in descriptor.overriddenDescriptors) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// !SKIP_JAVAC
2+
// SKIP_TXT
3+
// !LANGUAGE: -ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
4+
// FILE: JavaInterface.java
5+
import org.jetbrains.annotations.NotNull;
6+
7+
public interface JavaInterface<V> {
8+
void interfaceMethod(@NotNull V value);
9+
}
10+
11+
// FILE: main.kt
12+
interface KotlinInterface<X> : JavaInterface<X> {
13+
override <!SYNTAX!><<!><!SYNTAX!>T<!><!SYNTAX!>><!> fun interfaceMethod(x: X)
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// !SKIP_JAVAC
2+
// SKIP_TXT
3+
// !LANGUAGE: -ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
4+
// FILE: JavaInterface.java
5+
import org.jetbrains.annotations.NotNull;
6+
7+
public interface JavaInterface<V> {
8+
void interfaceMethod(@NotNull V value);
9+
}
10+
11+
// FILE: main.kt
12+
interface KotlinInterface<X> : JavaInterface<X> {
13+
override <!SYNTAX!><<!><!SYNTAX!>T<!><!SYNTAX!>><!> fun <!VIRTUAL_MEMBER_HIDDEN!>interfaceMethod<!>(x: X)
14+
}

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)