FIR: add test with problematic cases
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
val sb = StringBuilder()
|
||||
val o = object : Any() {
|
||||
val name = "123"
|
||||
|
||||
fun test() {
|
||||
name
|
||||
}
|
||||
}
|
||||
fun test() {
|
||||
class Local
|
||||
Local()
|
||||
}
|
||||
val Any.bar get() = "456"
|
||||
val String.bar get() = "987"
|
||||
|
||||
val t = "".bar
|
||||
|
||||
val p = Pair(0, "")
|
||||
|
||||
class Base<T>(val x: T)
|
||||
class Derived : Base<Int>(10)
|
||||
val xx = Derived().x + 1
|
||||
|
||||
val t = throw AssertionError("")
|
||||
|
||||
interface A
|
||||
interface B
|
||||
interface C : A
|
||||
class BC : B, C
|
||||
fun C.analyze() {}
|
||||
inline fun <reified T> T.analyze() where T : A, T : B {}
|
||||
fun testAnalyze() {
|
||||
BC().analyze()
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
FILE: problems.kt
|
||||
public final val sb: <ERROR TYPE REF: Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]> = <Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]>#()
|
||||
public get(): <ERROR TYPE REF: Ambiguity: StringBuilder, [java/lang/StringBuilder.StringBuilder, java/lang/StringBuilder.StringBuilder]>
|
||||
public final val o: R|kotlin/Any| = object : R|kotlin/Any| {
|
||||
private constructor(): R|kotlin/Any| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val name: R|kotlin/String| = String(123)
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
<Unresolved name: name>#
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public get(): R|kotlin/Any|
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
local final class Local : R|kotlin/Any| {
|
||||
public constructor(): R|Local| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
<Unresolved name: Local>#()
|
||||
}
|
||||
public final val R|kotlin/Any|.bar: R|kotlin/String|
|
||||
public get(): R|kotlin/String| {
|
||||
^ String(456)
|
||||
}
|
||||
public final val R|kotlin/String|.bar: R|kotlin/String|
|
||||
public get(): R|kotlin/String| {
|
||||
^ String(987)
|
||||
}
|
||||
public final val t: <ERROR TYPE REF: Ambiguity: bar, [/bar, /bar]> = String().<Ambiguity: bar, [/bar, /bar]>#
|
||||
public get(): <ERROR TYPE REF: Ambiguity: bar, [/bar, /bar]>
|
||||
public final val p: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [kotlin/Pair.Pair]> = <Inapplicable(INAPPLICABLE): [kotlin/Pair.Pair]>#(Int(0), String())
|
||||
public get(): <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [kotlin/Pair.Pair]>
|
||||
public final class Base<T> : R|kotlin/Any| {
|
||||
public constructor<T>(x: R|T|): R|Base<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final val x: R|T| = R|<local>/x|
|
||||
public get(): R|T|
|
||||
|
||||
}
|
||||
public final class Derived : R|Base<kotlin/Int>| {
|
||||
public constructor(): R|Derived| {
|
||||
super<R|Base<kotlin/Int>|>(Int(10))
|
||||
}
|
||||
|
||||
}
|
||||
public final val xx: <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]> = D|R|/Derived.Derived|()|.R|/Base.x|.<Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>#(Int(1))
|
||||
public get(): <ERROR TYPE REF: Inapplicable(WRONG_RECEIVER): [kotlin/plus, kotlin/plus, kotlin/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/collections/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/sequences/plus, kotlin/text/plus]>
|
||||
public final val t: R|kotlin/Nothing| = throw <Ambiguity: AssertionError, [java/lang/AssertionError.AssertionError, java/lang/AssertionError.AssertionError]>#(String())
|
||||
public get(): R|kotlin/Nothing|
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface B : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface C : R|A| {
|
||||
}
|
||||
public final class BC : R|B|, R|C| {
|
||||
public constructor(): R|BC| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final fun R|C|.analyze(): R|kotlin/Unit| {
|
||||
}
|
||||
public final inline fun <reified T : R|A|, R|B|> R|T|.analyze(): R|kotlin/Unit| {
|
||||
}
|
||||
public final fun testAnalyze(): R|kotlin/Unit| {
|
||||
R|/BC.BC|().<Ambiguity: analyze, [/analyze, /analyze]>#()
|
||||
}
|
||||
Generated
+5
@@ -94,6 +94,11 @@ public class FirResolveTestCaseWithStdlibGenerated extends AbstractFirResolveTes
|
||||
runTest("compiler/fir/resolve/testData/resolve/stdlib/multipleImplicitReceivers.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("problems.kt")
|
||||
public void testProblems() throws Exception {
|
||||
runTest("compiler/fir/resolve/testData/resolve/stdlib/problems.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("recursiveBug.kt")
|
||||
public void testRecursiveBug() throws Exception {
|
||||
runTest("compiler/fir/resolve/testData/resolve/stdlib/recursiveBug.kt");
|
||||
|
||||
Reference in New Issue
Block a user