Enhance bounds for type parameters after loops disconnection

Otherwise behavior might change because enhancement may force computation
for other type parameters in cases like:
class A<X extends Y, Y extends X> {}

See the test:
org.jetbrains.kotlin.checkers.DiagnosticsTestGenerated.Tests.J_k#testRecursiveRawUpperBound3
This commit is contained in:
Denis Zharkov
2019-08-22 18:20:22 +03:00
committed by Victor Petukhov
parent 6661814e40
commit 59bd7364ab
51 changed files with 363 additions and 115 deletions
@@ -2,16 +2,16 @@ package
public fun main(/*0*/ a: A): kotlin.Unit
@jspecify.annotations.DefaultNotNull public open class A {
@org.jspecify.annotations.DefaultNotNull public open class A {
public constructor A()
public final var defaultField: kotlin.String
@jspecify.annotations.Nullable public final var field: kotlin.String?
@org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String?
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun everythingNotNullable(/*0*/ x: kotlin.String): kotlin.String
@jspecify.annotations.DefaultNullable public open fun everythingNullable(/*0*/ x: kotlin.String?): kotlin.String?
@jspecify.annotations.DefaultNullnessUnknown public open fun everythingUnknown(/*0*/ x: kotlin.String!): kotlin.String!
public open fun explicitlyNullnessUnknown(/*0*/ @jspecify.annotations.NullnessUnknown x: kotlin.String!): kotlin.String
@org.jspecify.annotations.DefaultNullable public open fun everythingNullable(/*0*/ x: kotlin.String?): @org.jspecify.annotations.DefaultNullable kotlin.String?
@org.jspecify.annotations.DefaultNullnessUnknown public open fun everythingUnknown(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullnessUnknown kotlin.String!
public open fun explicitlyNullnessUnknown(/*0*/ @org.jspecify.annotations.NullnessUnknown x: @org.jspecify.annotations.NullnessUnknown kotlin.String!): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@jspecify.annotations.DefaultNullable public open fun mixed(/*0*/ @jspecify.annotations.NotNull x: kotlin.String): kotlin.String?
@org.jspecify.annotations.DefaultNullable public open fun mixed(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String): @org.jspecify.annotations.DefaultNullable kotlin.String?
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}