Substitution implemented for flexible occurrences of Java type parameters

This commit is contained in:
Andrey Breslav
2014-08-12 21:03:20 +04:00
parent bf53222bd9
commit dd2e95b3bc
63 changed files with 177 additions and 117 deletions

View File

@@ -3,5 +3,5 @@ package test
public open class PropertySimpleType {
public constructor PropertySimpleType()
public final var fieldOne: kotlin.String
public final var fieldTwo: kotlin.String?
public final var fieldTwo: kotlin.String!
}

View File

@@ -2,8 +2,8 @@ package test
public final class StarProjection {
public constructor StarProjection()
public final fun foo(): test.StarProjection.MyClass<out kotlin.CharSequence?>
public final fun foo(): test.StarProjection.MyClass<out kotlin.CharSequence!>
public trait MyClass</*0*/ T : kotlin.CharSequence?> {
public trait MyClass</*0*/ T : kotlin.CharSequence!> {
}
}

View File

@@ -2,5 +2,5 @@ package test
public open class ConflictingProjectionKind {
public constructor ConflictingProjectionKind()
public open fun foo(/*0*/ p0: kotlin.List<kotlin.Number>?): kotlin.Unit
public open fun foo(/*0*/ p0: kotlin.(Mutable)List<kotlin.Number!>!): kotlin.Unit
}

View File

@@ -2,5 +2,5 @@ package test
public open class ExplicitFieldGettersAndSetters {
public constructor ExplicitFieldGettersAndSetters()
public final var foo: kotlin.String?
public final var foo: kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class ExtraUpperBound {
public constructor ExtraUpperBound()
public open fun </*0*/ A : java.lang.Runnable?> foo(): kotlin.String?
public open fun </*0*/ A : java.lang.Runnable!> foo(): kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class MissingUpperBound {
public constructor MissingUpperBound()
public open fun </*0*/ A : java.lang.Runnable?> foo(): kotlin.String? where A : kotlin.Cloneable?
public open fun </*0*/ A : java.lang.Runnable!> foo(): kotlin.String! where A : kotlin.Cloneable!
}

View File

@@ -2,5 +2,5 @@ package test
public open class NoFieldTypeRef {
public constructor NoFieldTypeRef()
public final var foo: kotlin.String?
public final var foo: kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class NotVarargReplacedWithVararg {
public constructor NotVarargReplacedWithVararg()
public open fun foo(/*0*/ p0: kotlin.String?): kotlin.Unit
public open fun foo(/*0*/ p0: kotlin.String!): kotlin.Unit
}

View File

@@ -2,5 +2,5 @@ package test
public open class ReturnTypeMissing {
public constructor ReturnTypeMissing()
public open fun foo(/*0*/ p0: kotlin.String?): kotlin.Int
public open fun foo(/*0*/ p0: kotlin.String!): kotlin.Int
}

View File

@@ -2,5 +2,5 @@ package test
public open class SyntaxError {
public constructor SyntaxError()
public open fun foo(): kotlin.Int?
public open fun foo(): kotlin.Int!
}

View File

@@ -2,5 +2,5 @@ package test
public open class SyntaxErrorInFieldAnnotation {
public constructor SyntaxErrorInFieldAnnotation()
public final var foo: kotlin.String?
public final var foo: kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class VarargReplacedWithNotVararg {
public constructor VarargReplacedWithNotVararg()
public open fun foo(/*0*/ vararg p0: kotlin.String? /*kotlin.Array<kotlin.String?>*/): kotlin.Unit
public open fun foo(/*0*/ vararg p0: kotlin.String! /*kotlin.Array<(out) kotlin.String!>!*/): kotlin.Unit
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongFieldInitializer {
public constructor WrongFieldInitializer()
public final var foo: kotlin.String?
public final var foo: kotlin.String!
}

View File

@@ -2,6 +2,6 @@ package test
public open class WrongFieldMutability {
public constructor WrongFieldMutability()
public final val fooFinal: kotlin.String? = "Test"
public final var fooNotFinal: kotlin.String?
public final val fooFinal: kotlin.String! = "Test"
public final var fooNotFinal: kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongFieldName {
public constructor WrongFieldName()
public final var foo: kotlin.String?
public final var foo: kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongMethodName {
public constructor WrongMethodName()
public open fun foo(): kotlin.String?
public open fun foo(): kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeName1 {
public constructor WrongTypeName1()
public open fun foo(/*0*/ p0: kotlin.String?): kotlin.String?
public open fun foo(/*0*/ p0: kotlin.String!): kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeName2 {
public constructor WrongTypeName2()
public open fun foo(/*0*/ p0: kotlin.String?): kotlin.String?
public open fun foo(/*0*/ p0: kotlin.String!): kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeName3 {
public constructor WrongTypeName3()
public open fun foo(/*0*/ p0: kotlin.String?): kotlin.String?
public open fun foo(/*0*/ p0: kotlin.String!): kotlin.String!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeParameterBoundStructure1 {
public constructor WrongTypeParameterBoundStructure1()
public open fun </*0*/ A, /*1*/ B : java.lang.Runnable?> foo(/*0*/ p0: A?, /*1*/ p1: kotlin.List<B>?): kotlin.Unit where B : kotlin.List<kotlin.Cloneable>?
public open fun </*0*/ A, /*1*/ B : java.lang.Runnable!> foo(/*0*/ p0: A!, /*1*/ p1: (kotlin.MutableList<out B!>..kotlin.List<B!>?)): kotlin.Unit where B : kotlin.(Mutable)List<kotlin.Cloneable!>!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeParameterBoundStructure2 {
public constructor WrongTypeParameterBoundStructure2()
public open fun </*0*/ A, /*1*/ B : java.lang.Runnable?> foo(/*0*/ p0: A?, /*1*/ p1: kotlin.List<B>?): kotlin.Unit where B : kotlin.List<kotlin.Cloneable>?
public open fun </*0*/ A, /*1*/ B : java.lang.Runnable!> foo(/*0*/ p0: A!, /*1*/ p1: (kotlin.MutableList<out B!>..kotlin.List<B!>?)): kotlin.Unit where B : kotlin.(Mutable)List<kotlin.Cloneable!>!
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongTypeParametersCount {
public constructor WrongTypeParametersCount()
public open fun </*0*/ A, /*1*/ B> foo(/*0*/ p0: A?, /*1*/ p1: kotlin.List<B>?): kotlin.Unit
public open fun </*0*/ A, /*1*/ B> foo(/*0*/ p0: A!, /*1*/ p1: (kotlin.MutableList<out B!>..kotlin.List<B!>?)): kotlin.Unit
}

View File

@@ -2,5 +2,5 @@ package test
public open class WrongValueParametersCount {
public constructor WrongValueParametersCount()
public open fun foo(): kotlin.Int?
public open fun foo(): kotlin.Int!
}

View File

@@ -4,11 +4,11 @@ public trait NotNullToNullable {
public trait Sub : test.NotNullToNullable.Super {
public abstract override /*1*/ /*fake_override*/ fun dummy(): kotlin.Unit
public abstract override /*1*/ fun foo(/*0*/ p0: kotlin.String): kotlin.Unit
public abstract override /*1*/ fun foo(/*0*/ p0: kotlin.String!): kotlin.Unit
}
public trait Super {
public abstract fun dummy(): kotlin.Unit
public abstract fun foo(/*0*/ p0: kotlin.String): kotlin.Unit
public abstract fun foo(/*0*/ p0: kotlin.String!): kotlin.Unit
}
}

View File

@@ -4,11 +4,11 @@ public trait NullableToNotNull {
public trait Sub : test.NullableToNotNull.Super {
public abstract override /*1*/ /*fake_override*/ fun dummy(): kotlin.Unit
public abstract override /*1*/ fun foo(/*0*/ p0: kotlin.String?): kotlin.Unit
public abstract override /*1*/ fun foo(/*0*/ p0: kotlin.String!): kotlin.Unit
}
public trait Super {
public abstract fun dummy(): kotlin.Unit
public abstract fun foo(/*0*/ p0: kotlin.String?): kotlin.Unit
public abstract fun foo(/*0*/ p0: kotlin.String!): kotlin.Unit
}
}