Files
2021-04-06 12:30:34 +03:00

73 lines
3.5 KiB
Plaintext
Vendored

FILE: simpleMostSpecific.kt
public abstract interface A : R|kotlin/Any| {
public abstract val x: R|kotlin/CharSequence|
public get(): R|kotlin/CharSequence|
public abstract fun foo(): R|kotlin/String?|
public abstract fun <T, F> bar(x: R|T|, y: R|F|): R|F?|
}
public abstract interface B : R|kotlin/Any| {
public abstract var x: R|kotlin/String|
public get(): R|kotlin/String|
public set(value: R|kotlin/String|): R|kotlin/Unit|
public abstract fun foo(): R|kotlin/String|
public abstract fun <X, Y> bar(x: R|X|, y: R|Y|): R|Y|
}
public abstract interface C : R|kotlin/Any| {
public abstract val x: R|kotlin/String|
public get(): R|kotlin/String|
}
public abstract interface D1 : R|A|, R|B| {
}
public abstract interface D2 : R|B|, R|A| {
}
public abstract interface D3 : R|A|, R|C| {
}
public final fun main(d1: R|D1|, d2: R|D2|, d3: R|D3|): R|kotlin/Unit| {
R|<local>/d1|.R|/B.x|.R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d1|.R|/B.x| = String()
R|<local>/d1|.R|/B.foo|().R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d1|.R|/B.bar|<R|kotlin/Int|, R|kotlin/String|>(Int(1), String()).R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d2|.R|/B.x|.R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d2|.R|/B.x| = String()
R|<local>/d2|.R|/B.foo|().R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d2|.R|/B.bar|<R|kotlin/Int|, R|kotlin/String|>(Int(1), String()).R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d3|.R|/C.x|.R|/checkType|<R|kotlin/String|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String|>()
}
)
R|<local>/d3|.R|/C.x| = String()
R|<local>/d3|.R|/A.foo|().R|/checkType|<R|kotlin/String?|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String?>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String?|>()
}
)
R|<local>/d3|.R|/A.bar|<R|kotlin/Int|, R|kotlin/String|>(Int(1), String()).R|/checkType|<R|kotlin/String?|>(<L> = checkType@fun R|CheckTypeInv<kotlin/String?>|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/_|<R|kotlin/String?|>()
}
)
}