Add tests for type enhancement uncluding with compiled java
This commit is contained in:
+6
@@ -0,0 +1,6 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ClassTypeParameterBound <T extends @NotNull String> {
|
||||
ClassTypeParameterBound(T x) { }
|
||||
ClassTypeParameterBound() { }
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
fun main(x: ClassTypeParameterBound<<!UPPER_BOUND_VIOLATED!>String?<!>>, y: ClassTypeParameterBound<String>, a: String?, b: String) {
|
||||
val x2 = ClassTypeParameterBound<<!UPPER_BOUND_VIOLATED!>String?<!>>()
|
||||
val y2 = ClassTypeParameterBound<String>()
|
||||
|
||||
val x3 = ClassTypeParameterBound(<!TYPE_MISMATCH!>a<!>)
|
||||
val y3 = ClassTypeParameterBound(b)
|
||||
|
||||
val x4: ClassTypeParameterBound<<!UPPER_BOUND_VIOLATED!>String?<!>> = <!TYPE_MISMATCH!>ClassTypeParameterBound()<!>
|
||||
val y4: ClassTypeParameterBound<String> = ClassTypeParameterBound()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ClassTypeParameterBoundWithWarnings <T extends @NotNull String> {
|
||||
ClassTypeParameterBoundWithWarnings() { }
|
||||
ClassTypeParameterBoundWithWarnings(T x) { }
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// !LANGUAGE: +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
// TODO: report warnings "UPPER_BOUND_VIOLATED"
|
||||
fun main(x: ClassTypeParameterBoundWithWarnings<String?>, y: ClassTypeParameterBoundWithWarnings<String>, a: String?, b: String) {
|
||||
val x2 = ClassTypeParameterBoundWithWarnings<String?>()
|
||||
val y2 = ClassTypeParameterBoundWithWarnings<String>()
|
||||
|
||||
val x3 = ClassTypeParameterBoundWithWarnings(a)
|
||||
val y3 = ClassTypeParameterBoundWithWarnings(b)
|
||||
|
||||
val x4: ClassTypeParameterBoundWithWarnings<String?> = ClassTypeParameterBoundWithWarnings()
|
||||
val y4: ClassTypeParameterBoundWithWarnings<String> = ClassTypeParameterBoundWithWarnings()
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class ReturnType<T> {
|
||||
public interface A<T1, T2> {}
|
||||
|
||||
public A<@Nullable String, @Nullable T> foo1() { return null; }
|
||||
public A<@Nullable String, @NotNull T> foo2() { return null; }
|
||||
public A<@NotNull String, @NotNull T> foo3 = null;
|
||||
public @NotNull T [] foo4 = null;
|
||||
public ReturnType<@Nullable String> foo41 = null;
|
||||
public T foo411 = null;
|
||||
public @Nullable String [] foo5() { return null; }
|
||||
}
|
||||
Vendored
+48
@@ -0,0 +1,48 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
fun <K> takeNotNullStringAndKNullable(x: ReturnType.A<String, K?>) {}
|
||||
fun <K> takeNullableStringAndKNullable(x: ReturnType.A<String?, K?>) {}
|
||||
fun <K: Any> takeNotNullStringAndNotNullK(x: ReturnType.A<String, K>) {}
|
||||
fun <K: Any> takeNullableStringAndNotNullK(x: ReturnType.A<String?, K>) {}
|
||||
fun takeNotNullString(x: String) {}
|
||||
|
||||
fun takeArrayOfNotNullString(x: Array<String>) {}
|
||||
fun takeArrayOfNullableString(x: Array<String?>) {}
|
||||
fun <K: Any> takeArrayOfNotNullK(x: Array<K>) {}
|
||||
fun <K> takeArrayOfNullableK(x: Array<K?>) {}
|
||||
|
||||
// FILE: main.kt
|
||||
fun <R> main(a: ReturnType<R>) {
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnType.A<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.Nullable R?>..ReturnType.A<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.Nullable R?>?)")!>a.foo1()<!>
|
||||
takeNotNullStringAndKNullable(<!TYPE_MISMATCH!>x1<!>)
|
||||
takeNullableStringAndKNullable(x1)
|
||||
takeNotNullStringAndNotNullK(<!TYPE_MISMATCH("ReturnType.A<String, TypeVariable(K)>", "ReturnType.A<String?, R?>!")!>x1<!>)
|
||||
takeNullableStringAndNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x1<!>)
|
||||
takeNotNullString(<!TYPE_MISMATCH!>a.foo41.foo411<!>)
|
||||
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnType.A<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull R!!>..ReturnType.A<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull R!!>?)")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(<!TYPE_MISMATCH!>x2<!>)
|
||||
takeNullableStringAndKNullable(<!TYPE_MISMATCH!>x2<!>)
|
||||
takeNotNullStringAndNotNullK(<!TYPE_MISMATCH("ReturnType.A<String, TypeVariable(K)>", "ReturnType.A<String?, R!!>!")!>x2<!>)
|
||||
takeNullableStringAndNotNullK(x2)
|
||||
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnType.A<@org.jetbrains.annotations.NotNull kotlin.String, @org.jetbrains.annotations.NotNull R!!>..ReturnType.A<@org.jetbrains.annotations.NotNull kotlin.String, @org.jetbrains.annotations.NotNull R!!>?)")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(<!TYPE_MISMATCH!>x3<!>)
|
||||
takeNullableStringAndKNullable(<!TYPE_MISMATCH!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(x3)
|
||||
takeNullableStringAndNotNullK(<!TYPE_MISMATCH("ReturnType.A<String?, TypeVariable(K)>", "ReturnType.A<String, R!!>!")!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("(kotlin.Array<@org.jetbrains.annotations.NotNull R!!>..kotlin.Array<out @org.jetbrains.annotations.NotNull R!!>?)")!>a.foo4<!>
|
||||
takeArrayOfNotNullString(<!TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableString(<!TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNotNullK(x4)
|
||||
takeArrayOfNullableK(<!TYPE_MISMATCH!>x4<!>)
|
||||
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("(kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>..kotlin.Array<out @org.jetbrains.annotations.Nullable kotlin.String?>?)")!>a.foo5()<!>
|
||||
takeArrayOfNotNullString(<!TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableString(x5)
|
||||
takeArrayOfNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableK(x5)
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class ReturnTypeWithWarnings<T> {
|
||||
public interface A<T1, T2> {}
|
||||
|
||||
public A<@Nullable String, @Nullable T> foo1() { return null; }
|
||||
public A<@Nullable String, @NotNull T> foo2() { return null; }
|
||||
public A<@NotNull String, @NotNull T> foo3 = null;
|
||||
public @NotNull T [] foo4 = null;
|
||||
public ReturnTypeWithWarnings<@Nullable String> foo41 = null;
|
||||
public T foo411 = null;
|
||||
public @Nullable String [] foo5() { return null; }
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
// !LANGUAGE: +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
fun <K> takeNotNullStringAndKNullable(x: ReturnTypeWithWarnings.A<String, K?>) {}
|
||||
fun <K> takeNullableStringAndKNullable(x: ReturnTypeWithWarnings.A<String?, K?>) {}
|
||||
fun <K: Any> takeNotNullStringAndNotNullK(x: ReturnTypeWithWarnings.A<String, K>) {}
|
||||
fun <K: Any> takeNullableStringAndNotNullK(x: ReturnTypeWithWarnings.A<String?, K>) {}
|
||||
fun takeNotNullString(x: String) {}
|
||||
|
||||
fun takeArrayOfNotNullString(x: Array<String>) {}
|
||||
fun takeArrayOfNullableString(x: Array<String?>) {}
|
||||
fun <K: Any> takeArrayOfNotNullK(x: Array<K>) {}
|
||||
fun <K> takeArrayOfNullableK(x: Array<K?>) {}
|
||||
|
||||
// FILE: main.kt
|
||||
fun <R> main(a: ReturnTypeWithWarnings<R>) {
|
||||
val x1 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?), (@org.jetbrains.annotations.Nullable R..@org.jetbrains.annotations.Nullable R?)>..ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?), (@org.jetbrains.annotations.Nullable R..@org.jetbrains.annotations.Nullable R?)>?)")!>a.foo1()<!>
|
||||
takeNotNullStringAndKNullable(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String, R?>", "ReturnTypeWithWarnings.A<String?, R?>!")!>x1<!>)
|
||||
takeNullableStringAndKNullable(x1)
|
||||
takeNotNullStringAndNotNullK(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String, R?>", "ReturnTypeWithWarnings.A<String?, R?>!"), TYPE_MISMATCH("Any", "R!"), TYPE_MISMATCH("Any", "R!")!>x1<!>)
|
||||
takeNullableStringAndNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x1<!>)
|
||||
takeNotNullString(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("String", "String?")!>a.foo41.foo411<!>)
|
||||
|
||||
val x2 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?), (@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>..ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?), (@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>?)")!>a.foo2()<!>
|
||||
takeNotNullStringAndKNullable(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String, R?>", "ReturnTypeWithWarnings.A<String?, R!!>!")!>x2<!>)
|
||||
takeNullableStringAndKNullable(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String?, R?>", "ReturnTypeWithWarnings.A<String?, R!!>!")!>x2<!>)
|
||||
takeNotNullStringAndNotNullK(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String, R!!>", "ReturnTypeWithWarnings.A<String?, R!!>!"), TYPE_MISMATCH("Any", "R!"), TYPE_MISMATCH("Any", "R!")!>x2<!>)
|
||||
takeNullableStringAndNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x2<!>)
|
||||
|
||||
val x3 = <!DEBUG_INFO_EXPRESSION_TYPE("(ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.NotNull kotlin.String..@org.jetbrains.annotations.NotNull kotlin.String?), (@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>..ReturnTypeWithWarnings.A<(@org.jetbrains.annotations.NotNull kotlin.String..@org.jetbrains.annotations.NotNull kotlin.String?), (@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>?)")!>a.foo3<!>
|
||||
takeNotNullStringAndKNullable(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String, R?>", "ReturnTypeWithWarnings.A<String, R!!>!")!>x3<!>)
|
||||
takeNullableStringAndKNullable(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String?, R?>", "ReturnTypeWithWarnings.A<String, R!!>!")!>x3<!>)
|
||||
takeNotNullStringAndNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x3<!>)
|
||||
takeNullableStringAndNotNullK(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("ReturnTypeWithWarnings.A<String?, R!!>", "ReturnTypeWithWarnings.A<String, R!!>!"), TYPE_MISMATCH("Any", "R!"), TYPE_MISMATCH("Any", "R!")!>x3<!>)
|
||||
|
||||
val x4 = <!DEBUG_INFO_EXPRESSION_TYPE("(kotlin.Array<(@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>..kotlin.Array<out (@org.jetbrains.annotations.NotNull R..@org.jetbrains.annotations.NotNull R?)>)")!>a.foo4<!>
|
||||
takeArrayOfNotNullString(<!TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableString(<!TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNotNullK(<!TYPE_MISMATCH, TYPE_MISMATCH!>x4<!>)
|
||||
takeArrayOfNullableK(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS("Array<R?>", "Array<(out) R!!>")!>x4<!>)
|
||||
|
||||
val x5 = <!DEBUG_INFO_EXPRESSION_TYPE("(kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?)>?..kotlin.Array<out (@org.jetbrains.annotations.Nullable kotlin.String..@org.jetbrains.annotations.Nullable kotlin.String?)>?)")!>a.foo5()<!>
|
||||
takeArrayOfNotNullString(<!TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableString(<!TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNotNullK(<!TYPE_MISMATCH!>x5<!>)
|
||||
takeArrayOfNullableK(<!TYPE_MISMATCH!>x5<!>)
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class ValueParameter<T> {
|
||||
public interface A<T1, T2> {}
|
||||
|
||||
public void foo1(A<@Nullable String, @Nullable T> x) { }
|
||||
public void foo2(A<@Nullable String, @NotNull T> x) { }
|
||||
public void foo3(A<@NotNull String, @NotNull T> x) { }
|
||||
public void foo4(@NotNull T [] x) { }
|
||||
public void foo41(@Nullable String x) { }
|
||||
public void foo411(T x) { }
|
||||
public void foo5(@Nullable String [] x) { }
|
||||
}
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -CAST_NEVER_SUCCEEDS
|
||||
// SKIP_TXT
|
||||
|
||||
fun <K> getNotNullStringAndKNullable() = null as ValueParameter.A<String, K?>
|
||||
fun <K> getNullableStringAndKNullable() = null as ValueParameter.A<String?, K?>
|
||||
fun <K: Any> getNotNullStringAndNotNullK() = null as ValueParameter.A<String, K>
|
||||
fun <K: Any> getNullableStringAndNotNullK() = null as ValueParameter.A<String?, K>
|
||||
fun getNotNullString() = null as String
|
||||
|
||||
fun getArrayOfNotNullString() = null as Array<String>
|
||||
fun getArrayOfNullableString() = null as Array<String?>
|
||||
fun <K: Any> getArrayOfNotNullK() = null as Array<K>
|
||||
fun <K> getArrayOfNullableK() = null as Array<K?>
|
||||
|
||||
// FILE: main.kt
|
||||
fun <R> main(a: ValueParameter<R>) {
|
||||
a.foo1(<!TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo1(getNullableStringAndKNullable())
|
||||
a.foo1(<!TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo1(<!TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo2(<!TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo2(<!TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo2(<!TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo2(getNullableStringAndNotNullK())
|
||||
|
||||
a.foo3(<!TYPE_MISMATCH!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo3(<!TYPE_MISMATCH!>getNullableStringAndKNullable()<!>)
|
||||
a.foo3(getNotNullStringAndNotNullK())
|
||||
a.foo3(<!TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo4(<!TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
a.foo4(<!TYPE_MISMATCH!>getArrayOfNullableString()<!>)
|
||||
a.foo4(getArrayOfNotNullK())
|
||||
a.foo4(<!TYPE_MISMATCH!>getArrayOfNullableK()<!>)
|
||||
|
||||
a.foo5(getArrayOfNotNullString())
|
||||
a.foo5(getArrayOfNullableString())
|
||||
a.foo5(getArrayOfNotNullK())
|
||||
a.foo5(getArrayOfNullableK())
|
||||
|
||||
a.foo41(getNotNullString())
|
||||
a.foo411(<!TYPE_MISMATCH!>getNotNullString()<!>)
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class ValueParameterWithWarnings<T> {
|
||||
public interface A<T1, T2> {}
|
||||
|
||||
public void foo1(A<@Nullable String, @Nullable T> x) { }
|
||||
public void foo2(A<@Nullable String, @NotNull T> x) { }
|
||||
public void foo3(A<@NotNull String, @NotNull T> x) { }
|
||||
public void foo4(@NotNull T [] x) { }
|
||||
public void foo41(@Nullable String x) { }
|
||||
public void foo411(T x) { }
|
||||
public void foo5(@Nullable String [] x) { }
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
// !LANGUAGE: +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -CAST_NEVER_SUCCEEDS
|
||||
// SKIP_TXT
|
||||
|
||||
fun <K> getNotNullStringAndKNullable() = null as ValueParameterWithWarnings.A<String, K?>
|
||||
fun <K> getNullableStringAndKNullable() = null as ValueParameterWithWarnings.A<String?, K?>
|
||||
fun <K: Any> getNotNullStringAndNotNullK() = null as ValueParameterWithWarnings.A<String, K>
|
||||
fun <K: Any> getNullableStringAndNotNullK() = null as ValueParameterWithWarnings.A<String?, K>
|
||||
fun getNotNullString() = null as String
|
||||
|
||||
fun getArrayOfNotNullString() = null as Array<String>
|
||||
fun getArrayOfNullableString() = null as Array<String?>
|
||||
fun <K: Any> getArrayOfNotNullK() = null as Array<K>
|
||||
fun <K> getArrayOfNullableK() = null as Array<K?>
|
||||
|
||||
// FILE: main.kt
|
||||
fun <R> main(a: ValueParameterWithWarnings<R>) {
|
||||
a.foo1(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo1(getNullableStringAndKNullable())
|
||||
a.foo1(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS, TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo1(<!TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo2(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo2(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getNullableStringAndKNullable()<!>)
|
||||
a.foo2(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS, TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo2(<!TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo3(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getNotNullStringAndKNullable()<!>)
|
||||
a.foo3(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getNullableStringAndKNullable()<!>)
|
||||
a.foo3(<!TYPE_MISMATCH!>getNotNullStringAndNotNullK()<!>)
|
||||
a.foo3(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS, TYPE_MISMATCH!>getNullableStringAndNotNullK()<!>)
|
||||
|
||||
a.foo4(<!TYPE_MISMATCH!>getArrayOfNotNullString()<!>)
|
||||
a.foo4(<!TYPE_MISMATCH!>getArrayOfNullableString()<!>)
|
||||
a.foo4(getArrayOfNotNullK())
|
||||
a.foo4(<!NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS!>getArrayOfNullableK()<!>)
|
||||
|
||||
a.foo5(getArrayOfNotNullString())
|
||||
a.foo5(getArrayOfNullableString())
|
||||
a.foo5(getArrayOfNotNullK())
|
||||
a.foo5(getArrayOfNullableK())
|
||||
|
||||
a.foo41(getNotNullString())
|
||||
a.foo411(<!TYPE_MISMATCH!>getNotNullString()<!>)
|
||||
}
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
package test
|
||||
|
||||
public open class Basic_DisabledImprovements {
|
||||
public constructor Basic_DisabledImprovements()
|
||||
public/*package*/ open fun </*0*/ R : kotlin.Any!, /*1*/ @org.jetbrains.annotations.NotNull _A : R!, /*2*/ @org.jetbrains.annotations.Nullable K : kotlin.Any!> foo(/*0*/ p0: R!): kotlin.Unit
|
||||
|
||||
public interface G</*0*/ @org.jetbrains.annotations.NotNull T : kotlin.Any!> {
|
||||
public abstract fun </*0*/ @org.jetbrains.annotations.NotNull R : kotlin.Any!> foo(/*0*/ p0: R!): kotlin.Unit
|
||||
}
|
||||
|
||||
public interface G1</*0*/ T : kotlin.Any!, /*1*/ E : T!, /*2*/ @org.jetbrains.annotations.NotNull X : kotlin.Any!> {
|
||||
public abstract fun </*0*/ R : kotlin.Any!, /*1*/ @org.jetbrains.annotations.Nullable _A : R!> foo(/*0*/ p0: R!): kotlin.Unit
|
||||
}
|
||||
}
|
||||
@@ -4,15 +4,14 @@ package test;
|
||||
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class Basic {
|
||||
interface G<T> {
|
||||
}
|
||||
public class Basic<T extends @NotNull Object> {
|
||||
interface G<T> extends G2<@NotNull T, @NotNull String> { }
|
||||
|
||||
interface G2<A, B> {
|
||||
}
|
||||
interface G2<A, B> { }
|
||||
|
||||
public interface MyClass<TT> {
|
||||
void f(G<@NotNull String> p);
|
||||
void f(G2<@Nullable String, @NotNull Integer> p);
|
||||
void f1(G<@NotNull String> p);
|
||||
G2<@Nullable String, @NotNull Integer> f2();
|
||||
<T extends @NotNull Object> void f3(@NotNull T x);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
package test
|
||||
|
||||
public open class Basic {
|
||||
public constructor Basic()
|
||||
public open class Basic</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any> {
|
||||
public constructor Basic</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any>()
|
||||
|
||||
public/*package*/ interface G</*0*/ T : kotlin.Any!> {
|
||||
public/*package*/ interface G</*0*/ T : kotlin.Any!> : test.Basic.G2<@org.jetbrains.annotations.NotNull T, @org.jetbrains.annotations.NotNull kotlin.String> {
|
||||
}
|
||||
|
||||
public/*package*/ interface G2</*0*/ A : kotlin.Any!, /*1*/ B : kotlin.Any!> {
|
||||
}
|
||||
|
||||
public interface MyClass</*0*/ TT : kotlin.Any!> {
|
||||
public abstract fun f(/*0*/ p0: test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit
|
||||
public abstract fun f(/*0*/ p0: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit
|
||||
public abstract fun f1(/*0*/ p0: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit
|
||||
public abstract fun f2(): test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!
|
||||
public abstract fun </*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any> f3(/*0*/ @org.jetbrains.annotations.NotNull p0: @org.jetbrains.annotations.NotNull T): kotlin.Unit
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE:
|
||||
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
package test
|
||||
|
||||
public open class Basic_DisabledImprovements {
|
||||
public constructor Basic_DisabledImprovements()
|
||||
public/*package*/ open fun </*0*/ R : kotlin.Any!, /*1*/ @org.jetbrains.annotations.NotNull _A : R!, /*2*/ @org.jetbrains.annotations.Nullable K : kotlin.Any!> foo(/*0*/ r: R!): kotlin.Unit
|
||||
|
||||
public interface G</*0*/ @org.jetbrains.annotations.NotNull T : kotlin.Any!> {
|
||||
public abstract fun </*0*/ @org.jetbrains.annotations.NotNull R : kotlin.Any!> foo(/*0*/ r: R!): kotlin.Unit
|
||||
}
|
||||
|
||||
public interface G1</*0*/ T : kotlin.Any!, /*1*/ E : T!, /*2*/ @org.jetbrains.annotations.NotNull X : kotlin.Any!> {
|
||||
public abstract fun </*0*/ R : kotlin.Any!, /*1*/ @org.jetbrains.annotations.Nullable _A : R!> foo(/*0*/ r: R!): kotlin.Unit
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,14 @@ package test;
|
||||
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
public class Basic {
|
||||
interface G<T> {
|
||||
}
|
||||
public class Basic<T extends @NotNull Object> implements G2<@NotNull T, @NotNull String> {
|
||||
interface G<T> { }
|
||||
|
||||
interface G2<A, B> {
|
||||
}
|
||||
interface G2<A, B> { }
|
||||
|
||||
public interface MyClass<TT> {
|
||||
void f(G<@NotNull String> p);
|
||||
void f(G2<@Nullable String, @NotNull Integer> p);
|
||||
void f1(G<@NotNull String> p);
|
||||
G2<@Nullable String, @NotNull Integer> f2();
|
||||
<T extends @NotNull Object> void f3(@NotNull T x) { };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package test
|
||||
|
||||
public open class Basic {
|
||||
public constructor Basic()
|
||||
public open class Basic</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any> : G2 {
|
||||
public constructor Basic</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any>()
|
||||
|
||||
public/*package*/ interface G</*0*/ T : kotlin.Any!> {
|
||||
}
|
||||
@@ -10,7 +10,8 @@ public open class Basic {
|
||||
}
|
||||
|
||||
public interface MyClass</*0*/ TT : kotlin.Any!> {
|
||||
public abstract fun f(/*0*/ p: test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit
|
||||
public abstract fun f(/*0*/ p: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit
|
||||
public abstract fun f1(/*0*/ p: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit
|
||||
public abstract fun f2(): test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!
|
||||
public abstract fun </*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any> f3(/*0*/ @org.jetbrains.annotations.NotNull x: @org.jetbrains.annotations.NotNull T): kotlin.Unit
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ public open class Basic_DisabledImprovements</*0*/ T : @org.jetbrains.annotation
|
||||
public abstract fun f5(/*0*/ p: test.Basic_DisabledImprovements.G<*>!): kotlin.Unit
|
||||
public abstract fun f6(/*0*/ p: test.Basic_DisabledImprovements.G<out @org.jetbrains.annotations.Nullable kotlin.Any?>!): kotlin.Unit
|
||||
public abstract fun f7(/*0*/ p: test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.NotNull test.Basic_DisabledImprovements.A.B<*, *>>!): kotlin.Unit
|
||||
public abstract fun f8(): test.Basic_DisabledImprovements.G<test.Basic_DisabledImprovements.A.B<*, *>!>!
|
||||
public abstract fun f81(): test.Basic_DisabledImprovements.G<test.Basic_DisabledImprovements.A.B<*, *>!>!
|
||||
public abstract fun f9(): test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.Nullable test.Basic_DisabledImprovements.A.B<*, *>?>!
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user