Put type enhancement improvements under the compiler flag

This commit is contained in:
Victor Petukhov
2020-12-09 12:16:26 +03:00
parent 857cc92326
commit 6f8f531d87
30 changed files with 274 additions and 50 deletions
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -0,0 +1,19 @@
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
package test;
import org.jetbrains.annotations.*;
public class Basic_DisabledImprovements {
public interface G<@NotNull T> {
<@NotNull R> void foo(R r);
}
public interface G1<T, E extends T, @NotNull X> {
<R, @Nullable _A extends R> void foo(R r);
}
<R, @NotNull _A extends R, @Nullable K> void foo(R r) {
}
}
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -0,0 +1,30 @@
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
package test;
import org.jetbrains.annotations.*;
public class Basic_DisabledImprovements<T extends @NotNull Object> {
interface G<T> extends G2<@NotNull T, @NotNull String> { }
interface G2<A, B> { }
static class A {
class B<A, B> {}
}
public interface MyClass<TT> {
void f1(G<@NotNull String> p);
G2<@Nullable String, @NotNull Integer> f2();
<T extends @NotNull Object> void f3(@NotNull T x);
void f4(G<@NotNull String @Nullable []> p);
void f5(G<@NotNull ?> p);
void f6(G<@NotNull ? extends @Nullable Object> p);
void f7(G<@NotNull A.B<?, ?>> p);
G<Basic_DisabledImprovements.@Nullable A.B<?, ?>> f81();
G<Basic_DisabledImprovements.A.@Nullable B<?, ?>> f9();
<T extends @NotNull Object, K extends G<@NotNull String []>> void f10(T p);
}
Basic_DisabledImprovements(G<@NotNull String> p) { }
}
@@ -0,0 +1,32 @@
package test
public open class Basic_DisabledImprovements</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any!> {
public/*package*/ constructor Basic_DisabledImprovements</*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any!>(/*0*/ p0: test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.NotNull kotlin.String!>!)
public/*package*/ open class A {
public/*package*/ constructor A()
public/*package*/ open inner class B</*0*/ A : kotlin.Any!, /*1*/ B : kotlin.Any!> {
public/*package*/ constructor B</*0*/ A : kotlin.Any!, /*1*/ B : kotlin.Any!>()
}
}
public/*package*/ interface G</*0*/ T : kotlin.Any!> : test.Basic_DisabledImprovements.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 f1(/*0*/ p0: test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.NotNull kotlin.String!>!): kotlin.Unit
public abstract fun </*0*/ T : @org.jetbrains.annotations.NotNull kotlin.Any!, /*1*/ K : test.Basic_DisabledImprovements.G<kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String!>!>!> f10(/*0*/ p0: T!): kotlin.Unit
public abstract fun f2(): test.Basic_DisabledImprovements.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
public abstract fun f4(/*0*/ p0: test.Basic_DisabledImprovements.G<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String!>..@org.jetbrains.annotations.Nullable kotlin.Array<out @org.jetbrains.annotations.NotNull kotlin.String!>?)>!): kotlin.Unit
public abstract fun f5(/*0*/ p0: test.Basic_DisabledImprovements.G<*>!): kotlin.Unit
public abstract fun f6(/*0*/ p0: test.Basic_DisabledImprovements.G<out @org.jetbrains.annotations.Nullable kotlin.Any!>!): kotlin.Unit
public abstract fun f7(/*0*/ p0: test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.NotNull test.Basic_DisabledImprovements.A.B<*, *>!>!): kotlin.Unit
public abstract fun f81(): test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.Nullable test.Basic_DisabledImprovements.A.B<*, *>!>!
public abstract fun f9(): test.Basic_DisabledImprovements.G<@org.jetbrains.annotations.Nullable test.Basic_DisabledImprovements.A.B<*, *>!>!
}
}
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -1,4 +1,4 @@
// JAVAC_EXPECTED_FILE
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
@@ -1,3 +1,5 @@
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
package test;
import org.jetbrains.annotations.*;