Support parenthesized left expression for ExpectedTypeFromCast

This commit is contained in:
Stanislav Erokhin
2017-10-16 13:03:18 +03:00
parent 539e655802
commit b9fa8d4d96
5 changed files with 75 additions and 5 deletions
@@ -0,0 +1,21 @@
// !LANGUAGE: +ExpectedTypeFromCast
@Target(AnnotationTarget.EXPRESSION)
annotation class bar
fun <T> foo(): T = TODO()
fun <V> id(value: V) = value
val par1 = (foo()) as String
val par2 = ((foo())) as String
val par3 = (dd@ (foo())) as String
val par4 = ( @bar() (foo())) as String
object X {
fun <T> foo(): T = TODO()
}
val par5 = ( @bar() X.foo()) as String
@@ -0,0 +1,24 @@
package
public val par1: kotlin.String
public val par2: kotlin.String
public val par3: kotlin.String
public val par4: kotlin.String
public val par5: kotlin.String
public fun </*0*/ T> foo(): T
public fun </*0*/ V> id(/*0*/ value: V): V
public object X {
private constructor X()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun </*0*/ T> foo(): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.EXPRESSION}) public final annotation class bar : kotlin.Annotation {
public constructor bar()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}