diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt index 2e330f29fb5..e16ecd9d9d5 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt @@ -126,6 +126,7 @@ internal fun KtLightElement<*, *>.isOriginEquivalentTo(that: PsiElement?): Boole } internal fun KtAnalysisSession.getTypeNullability(ktType: KtType): NullabilityType { + if (ktType is KtClassErrorType) return NullabilityType.NotNull if (ktType.nullabilityType != NullabilityType.NotNull) return ktType.nullabilityType if (ktType.isUnit) return NullabilityType.NotNull diff --git a/compiler/testData/asJava/lightClasses/lightClassByFqName/ideRegression/ImplementingCharSequenceAndNumber.fir.java b/compiler/testData/asJava/lightClasses/lightClassByFqName/ideRegression/ImplementingCharSequenceAndNumber.fir.java index a97352e2fe4..b1de533dfed 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByFqName/ideRegression/ImplementingCharSequenceAndNumber.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByFqName/ideRegression/ImplementingCharSequenceAndNumber.fir.java @@ -29,14 +29,16 @@ public final class Container /* p1.Container*/ { public static final class MyString /* p1.Container.MyString*/ implements java.lang.CharSequence { @java.lang.Override() @org.jetbrains.annotations.NotNull() - public java.lang.CharSequence subSequence(int, int);// subSequence(int, int) - - @java.lang.Override() public IntStream chars();// chars() @java.lang.Override() + @org.jetbrains.annotations.NotNull() public IntStream codePoints();// codePoints() + @java.lang.Override() + @org.jetbrains.annotations.NotNull() + public java.lang.CharSequence subSequence(int, int);// subSequence(int, int) + @java.lang.Override() public char get(int);// get(int) diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.fir.java index 83dcaa34efe..7cb73cd4751 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.fir.java @@ -149,7 +149,7 @@ public final class Foo /* Foo*/ { private java.lang.String x = null /* initializer type: null */; @Anno() - public Foo(MyDependency);// .ctor(MyDependency) + public Foo(@org.jetbrains.annotations.NotNull() MyDependency);// .ctor(MyDependency) @Anno() public final void f4(@org.jetbrains.annotations.NotNull() java.lang.String);// f4(java.lang.String) diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java index 22bc05f4768..b077970c466 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.fir.java @@ -151,7 +151,7 @@ public final class PropertiesKt /* PropertiesKt*/ { public static final int getPlainField();// getPlainField() - public static final int getValue(T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty);// getValue(T, kotlin.reflect.KProperty) + public static final int getValue(@org.jetbrains.annotations.NotNull() T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty);// getValue(T, kotlin.reflect.KProperty) public static final void setCounter(int);// setCounter(int) @@ -181,5 +181,5 @@ public final class PropertiesKt /* PropertiesKt*/ { public static final void setSubject(@org.jetbrains.annotations.NotNull() Unresolved);// setSubject(Unresolved) - public static final void setValue(T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty, int);// setValue(T, kotlin.reflect.KProperty, int) + public static final void setValue(@org.jetbrains.annotations.NotNull() T, @org.jetbrains.annotations.NotNull() kotlin.reflect.KProperty, int);// setValue(T, kotlin.reflect.KProperty, int) } diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.fir.java index 549b8415baf..0094396d909 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.fir.java @@ -1,4 +1,10 @@ public final class SimpleFunctionsKt /* SimpleFunctionsKt*/ { + @org.jetbrains.annotations.NotNull() + public static final Foo onString(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1);// onString(java.lang.String, kotlin.jvm.functions.Function1) + + @org.jetbrains.annotations.NotNull() + public static final Foo plus(int);// plus(int) + @org.jetbrains.annotations.NotNull() public static final native java.lang.String externalFun(int);// externalFun(int) @@ -6,13 +12,9 @@ public final class SimpleFunctionsKt /* SimpleFunctionsKt*/ { public static final /* vararg */ void nullableVararg(@org.jetbrains.annotations.NotNull() java.lang.Object...);// nullableVararg(java.lang.Object[]) - public static final Foo onString(@org.jetbrains.annotations.NotNull() java.lang.String, @org.jetbrains.annotations.NotNull() kotlin.jvm.functions.Function1);// onString(java.lang.String, kotlin.jvm.functions.Function1) - - public static final Foo plus(int);// plus(int) - public static final int bar4();// bar4() - public static final void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, Foo);// bar(int, java.lang.Object, Foo) + public static final void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, @org.jetbrains.annotations.NotNull() Foo);// bar(int, java.lang.Object, Foo) - public static final void bar2(error.NonExistentClass, Unresolved);// bar2(error.NonExistentClass, Unresolved) + public static final void bar2(@org.jetbrains.annotations.NotNull() error.NonExistentClass, @org.jetbrains.annotations.NotNull() Unresolved);// bar2(error.NonExistentClass, Unresolved) } diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/inheritance.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/inheritance.fir.java index fd5f22e0331..59af5db135f 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/inheritance.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/inheritance.fir.java @@ -53,6 +53,7 @@ public final class Derived /* Derived*/ extends Base implements IntfWithProp { private final int x = 3 /* initializer type: int */; @java.lang.Override() + @org.jetbrains.annotations.NotNull() public error.NonExistentClass v();// v() @java.lang.Override() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/properties.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/properties.fir.java index 89b2911ef3c..0f03d74a7fa 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/properties.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/properties.fir.java @@ -25,6 +25,9 @@ public final class Foo /* Foo*/ { @org.jetbrains.annotations.NotNull() private final MyProperty delegatedProp2$delegate; + @org.jetbrains.annotations.NotNull() + private final error.NonExistentClass d; + @org.jetbrains.annotations.NotNull() private final error.NonExistentClass delegatedProp$delegate; @@ -52,6 +55,9 @@ public final class Foo /* Foo*/ { @org.jetbrains.annotations.NotNull() private java.lang.String protectedWithPrivateSet = "" /* initializer type: java.lang.String */; + @org.jetbrains.annotations.NotNull() + private static final error.NonExistentClass contextBean; + @org.jetbrains.annotations.NotNull() public final java.lang.String CONSTANT_WITH_ESCAPES = "A\tB\nC\rD'E\"F\\G$H" /* initializer type: java.lang.String */ /* constant value A B C @@ -77,8 +83,6 @@ D'E"F\G$H */; private boolean c; - private final error.NonExistentClass d; - private final error.NonExistentClass intConst = 30 /* initializer type: int */; private final int f1 = 2 /* initializer type: int */; @@ -95,8 +99,6 @@ D'E"F\G$H */; private java.lang.String internalVarPrivateSet; - private static final error.NonExistentClass contextBean; - private static final int f1 = 4 /* initializer type: int */; private static final int prop3; @@ -169,7 +171,7 @@ D'E"F\G$H */; protected final void setProtectedLateinitVar(@org.jetbrains.annotations.NotNull() java.lang.String);// setProtectedLateinitVar(java.lang.String) - public Foo(int, @org.jetbrains.annotations.NotNull() Foo, boolean, error.NonExistentClass, long);// .ctor(int, Foo, boolean, error.NonExistentClass, long) + public Foo(int, @org.jetbrains.annotations.NotNull() Foo, boolean, @org.jetbrains.annotations.NotNull() error.NonExistentClass, long);// .ctor(int, Foo, boolean, error.NonExistentClass, long) public final boolean getC();// getC() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.fir.java index 2d7e3d51c90..42c438f5d26 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/simpleFunctions.fir.java @@ -16,7 +16,7 @@ public final class Foo /* Foo*/ { public final int bar4();// bar4() - public final void bar2$light_idea_test_case(error.NonExistentClass, Unresolved);// bar2$light_idea_test_case(error.NonExistentClass, Unresolved) + public final void bar2$light_idea_test_case(@org.jetbrains.annotations.NotNull() error.NonExistentClass, @org.jetbrains.annotations.NotNull() Unresolved);// bar2$light_idea_test_case(error.NonExistentClass, Unresolved) public void bar(int, @org.jetbrains.annotations.NotNull() java.lang.Object, @org.jetbrains.annotations.NotNull() Foo);// bar(int, java.lang.Object, Foo) diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.fir.java index 84ccbbce082..e664ea49471 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/unresolvedWithAliasedImport.fir.java @@ -1,9 +1,11 @@ public final class Derived /* some.Derived*/ implements other.Unresolved { + @org.jetbrains.annotations.NotNull() private final other.Unresolved x = null /* initializer type: null */; + @org.jetbrains.annotations.NotNull() + public final other.Unresolved getX();// getX() + public Derived();// .ctor() - public final other.Unresolved getX();// getX() - - public final void takeA(other.Unresolved);// takeA(other.Unresolved) + public final void takeA(@org.jetbrains.annotations.NotNull() other.Unresolved);// takeA(other.Unresolved) }