Separate nullability annotation processing for ultra-light classes

KtLightNullabilityAnnotation is specifically designed for old light classes
and includes a bunch of hacks that are applicable for them

So, we have to introduce own hack into it
(see org.jetbrains.kotlin.asJava.classes.KtUltraLightParameter#getTypeForNullability)
that is a bit of hard to support when extending hierarchy
This commit is contained in:
Denis Zharkov
2018-11-30 17:55:34 +03:00
parent 30c60c7b1f
commit 28d3a62567
9 changed files with 103 additions and 27 deletions
@@ -1,5 +1,4 @@
public final class Prop /* Prop*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object someProp;
@null()
@@ -11,13 +10,11 @@ public final class Fun /* Fun*/ {
@null()
public Fun();
@org.jetbrains.annotations.NotNull()
private final java.lang.Object someFun();
}
public final class ArrayOfAnonymous /* ArrayOfAnonymous*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object[] a1;
@null()
@@ -29,11 +26,10 @@ public final class ArrayOfAnonymous /* ArrayOfAnonymous*/ {
}
final class C /* C*/ {
@org.jetbrains.annotations.NotNull()
private final kotlin.jvm.functions.Function0<java.lang.Object> initChild;
private final int y;
private final kotlin.jvm.functions.Function0<java.lang.Object> initChild;
@null()
public C(int);
@@ -54,7 +50,6 @@ public abstract class Super /* Super*/ {
}
public final class Sub /* Sub*/ extends Super {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object[] a;
@null()
@@ -66,7 +61,6 @@ public final class Sub /* Sub*/ extends Super {
}
public final class ValidPublicSupertype /* ValidPublicSupertype*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Runnable x;
@null()
@@ -84,7 +78,6 @@ public abstract interface I /* I*/ {
}
public final class InvalidPublicSupertype /* InvalidPublicSupertype*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Runnable x;
@null()