Override/Implement Members: Support all nullability annotations respected by the Kotlin compiler

#KT-12704 Fixed
 #KT-15583 Fixed
This commit is contained in:
Alexey Sedunov
2017-01-10 20:07:03 +03:00
parent d94243ac7b
commit 862966fd33
8 changed files with 57 additions and 6 deletions
@@ -0,0 +1,9 @@
package foo;
import javax.annotation.Nonnull;
public class A {
public @Nonnull String foo(@Nonnull String s) {
return null;
}
}
@@ -0,0 +1,5 @@
import foo.A
class B : A() {
<caret>
}
@@ -0,0 +1,7 @@
import foo.A
class B : A() {
override fun foo(s: String): String {
<selection><caret>return super.foo(s)</selection>
}
}
@@ -0,0 +1,26 @@
package javax.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.annotation.meta.TypeQualifier;
import javax.annotation.meta.TypeQualifierValidator;
import javax.annotation.meta.When;
@Documented
@TypeQualifier
@Retention(RetentionPolicy.RUNTIME)
public @interface Nonnull {
When when() default When.ALWAYS;
static class Checker implements TypeQualifierValidator<Nonnull> {
public When forConstantValue(Nonnull qualifierqualifierArgument,
Object value) {
if (value == null)
return When.NEVER;
return When.ALWAYS;
}
}
}