Files
openide/jvm/jvm-analysis-kotlin-tests-shared/testData/codeInspection/nonExtendableApiUsage/plugin/javaExtensions.java
Bart van Helvert 72b748d5e0 [kotlin] Run Kotlin JVM tests on both K1 and K2 frontend
#IDEA-354810 Fixed


(cherry picked from commit d29d3256472dfe368161335732ded20ae95cf34e)

IJ-MR-140910

GitOrigin-RevId: 0a9b3cae7aab473f732012ad91b4e67f97ff8697
2024-08-02 11:11:07 +00:00

102 lines
3.5 KiB
Java

package plugin;
import library.JavaClass;
import library.JavaInterface;
import library.JavaMethodOwner;
import library.JavaNestedClassOwner;
import library.JavaNonExtendableNestedOwner;
import library.KotlinClass;
import library.KotlinInterface;
import library.KotlinMethodOwner;
import library.KotlinNestedClassOwner;
import library.KotlinNonExtendableNestedOwner;
//Extensions of Java classes
class JavaInheritor extends <warning descr="Class 'library.JavaClass' must not be extended">JavaClass</warning> {
}
class JavaImplementor implements <warning descr="Interface 'library.JavaInterface' must not be implemented">JavaInterface</warning> {
}
interface JavaInterfaceInheritor extends <warning descr="Interface 'library.JavaInterface' must not be extended">JavaInterface</warning> {
}
class JavaNonExtendableNestedInheritor extends JavaNonExtendableNestedOwner.<warning descr="Class 'library.JavaNonExtendableNestedOwner.NonExtendableNested' must not be extended">NonExtendableNested</warning> {
}
class JavaMethodOverrider extends JavaMethodOwner {
@Override
public void <warning descr="Method 'doNotOverride()' must not be overridden">doNotOverride</warning>() {
}
}
class JavaNestedClassInheritor extends JavaNestedClassOwner.NestedClass {
}
//Extensions of Kotlin classes
class KotlinInheritor extends <warning descr="Class 'library.KotlinClass' must not be extended">KotlinClass</warning> {
}
class KotlinImplementor implements <warning descr="Interface 'library.KotlinInterface' must not be implemented">KotlinInterface</warning> {
}
interface KotlinInterfaceInheritor extends <warning descr="Interface 'library.JavaInterface' must not be extended">JavaInterface</warning> {
}
class KotlinNonExtendableNestedInheritor extends KotlinNonExtendableNestedOwner.<warning descr="Class 'library.KotlinNonExtendableNestedOwner.NonExtendableNested' must not be extended">NonExtendableNested</warning> {
}
class KotlinMethodOverrider extends KotlinMethodOwner {
@Override
public void <warning descr="Method 'doNotOverride()' must not be overridden">doNotOverride</warning>() {
}
}
class KotlinNestedClassInheritor extends KotlinNestedClassOwner.NestedClass {
}
class AnynymousClasses {
public void anonymous() {
new <warning descr="Class 'library.JavaClass' must not be extended">JavaClass</warning>() {
};
new <warning descr="Interface 'library.JavaInterface' must not be implemented">JavaInterface</warning>() {
};
new JavaNonExtendableNestedOwner.<warning descr="Class 'library.JavaNonExtendableNestedOwner.NonExtendableNested' must not be extended">NonExtendableNested</warning>() {
};
new <warning descr="Class 'library.KotlinClass' must not be extended">KotlinClass</warning>() {
};
new <warning descr="Interface 'library.KotlinInterface' must not be implemented">KotlinInterface</warning>() {
};
new KotlinNonExtendableNestedOwner.<warning descr="Class 'library.KotlinNonExtendableNestedOwner.NonExtendableNested' must not be extended">NonExtendableNested</warning>() {
};
//No warnings
new JavaNestedClassOwner.NestedClass() {
};
new KotlinNestedClassOwner.NestedClass() {
};
new JavaMethodOwner() {
@Override
public void <warning descr="Method 'doNotOverride()' must not be overridden">doNotOverride</warning>() {
}
};
new KotlinMethodOwner() {
@Override
public void <warning descr="Method 'doNotOverride()' must not be overridden">doNotOverride</warning>() {
}
};
}
}