Temporary move annotation to methods' modifier list
Java resolver ignores return type annotations if there are ones on modifier list Related to this commit https://github.com/JetBrains/intellij-community/commit/a2497edceec614cdb5b76ba552f8a035f9e159f8
This commit is contained in:
committed by
Nikolay Krasko
parent
189705727f
commit
10c840327d
+6
-3
@@ -15,7 +15,8 @@ class Outer {
|
|||||||
class B extends A {
|
class B extends A {
|
||||||
// OK, non-platform types
|
// OK, non-platform types
|
||||||
@Override
|
@Override
|
||||||
<T1, T2> @NonNull T2 foo(@Nullable T1 x) { return null; }
|
@NonNull
|
||||||
|
<T1, T2> T2 foo(@Nullable T1 x) { return null; }
|
||||||
|
|
||||||
// Parameter type is fully non-flexible (OK)
|
// Parameter type is fully non-flexible (OK)
|
||||||
// Return type is `X<R!>?`.
|
// Return type is `X<R!>?`.
|
||||||
@@ -23,7 +24,8 @@ class Outer {
|
|||||||
// so type enhancing happens only for outermost type.
|
// so type enhancing happens only for outermost type.
|
||||||
// TODO: We should properly compare equality with specific local equality axioms (as when calculating overriden descriptors)
|
// TODO: We should properly compare equality with specific local equality axioms (as when calculating overriden descriptors)
|
||||||
@Override
|
@Override
|
||||||
<R> @Nullable X<@Nullable R> bar(@NonNull Y<@NonNull R> x) { return null; }
|
@Nullable
|
||||||
|
<R> X<@Nullable R> bar(@NonNull Y<@NonNull R> x) { return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
class C extends B {
|
class C extends B {
|
||||||
@@ -46,6 +48,7 @@ class Outer {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
<F> @NonNull X<@NonNull F> bar(@Nullable Y<@Nullable F> x) { return null; }
|
@NonNull
|
||||||
|
<F> X<@NonNull F> bar(@Nullable Y<@Nullable F> x) { return null; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+3
-3
@@ -17,9 +17,9 @@ public/*package*/ open class Outer {
|
|||||||
|
|
||||||
public/*package*/ open inner class B : Outer.A {
|
public/*package*/ open inner class B : Outer.A {
|
||||||
public/*package*/ constructor B()
|
public/*package*/ constructor B()
|
||||||
@java.lang.Override() public/*package*/ open override /*1*/ fun </*0*/ R : kotlin.Any!> bar(/*0*/ @org.checkerframework.checker.nullness.qual.NonNull() x: Y<R>): X<R!>?
|
@java.lang.Override() @org.checkerframework.checker.nullness.qual.Nullable() public/*package*/ open override /*1*/ fun </*0*/ R : kotlin.Any!> bar(/*0*/ @org.checkerframework.checker.nullness.qual.NonNull() x: Y<R>): X<R!>?
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
@java.lang.Override() public/*package*/ open override /*1*/ fun </*0*/ T1 : kotlin.Any!, /*1*/ T2 : kotlin.Any!> foo(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: T1?): T2
|
@java.lang.Override() @org.checkerframework.checker.nullness.qual.NonNull() public/*package*/ open override /*1*/ fun </*0*/ T1 : kotlin.Any!, /*1*/ T2 : kotlin.Any!> foo(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: T1?): T2
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,7 @@ public/*package*/ open class Outer {
|
|||||||
|
|
||||||
public/*package*/ open inner class D : Outer.C {
|
public/*package*/ open inner class D : Outer.C {
|
||||||
public/*package*/ constructor D()
|
public/*package*/ constructor D()
|
||||||
@java.lang.Override() public/*package*/ open override /*1*/ fun </*0*/ F : kotlin.Any!> bar(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: Y<F!>!): X<F!>
|
@java.lang.Override() @org.checkerframework.checker.nullness.qual.NonNull() public/*package*/ open override /*1*/ fun </*0*/ F : kotlin.Any!> bar(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: Y<F!>!): X<F!>
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
@java.lang.Override() @org.checkerframework.checker.nullness.qual.NonNull() public/*package*/ open override /*1*/ fun </*0*/ U : kotlin.Any!, /*1*/ W : kotlin.Any!> foo(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: U?): W
|
@java.lang.Override() @org.checkerframework.checker.nullness.qual.NonNull() public/*package*/ open override /*1*/ fun </*0*/ U : kotlin.Any!, /*1*/ W : kotlin.Any!> foo(/*0*/ @org.checkerframework.checker.nullness.qual.Nullable() x: U?): W
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
|||||||
Reference in New Issue
Block a user