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 {
|
||||
// OK, non-platform types
|
||||
@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)
|
||||
// Return type is `X<R!>?`.
|
||||
@@ -23,7 +24,8 @@ class Outer {
|
||||
// so type enhancing happens only for outermost type.
|
||||
// TODO: We should properly compare equality with specific local equality axioms (as when calculating overriden descriptors)
|
||||
@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 {
|
||||
@@ -46,6 +48,7 @@ class Outer {
|
||||
|
||||
|
||||
@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*/ 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
|
||||
@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 toString(): kotlin.String
|
||||
}
|
||||
@@ -35,7 +35,7 @@ public/*package*/ open class Outer {
|
||||
|
||||
public/*package*/ open inner class D : Outer.C {
|
||||
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
|
||||
@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
|
||||
|
||||
Reference in New Issue
Block a user