FIR: Add simple test on SAM conversion for callable receivers
^KT-32725 In Progress
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
interface MySam {
|
||||||
|
fun run(x: String): Int
|
||||||
|
}
|
||||||
|
|
||||||
|
class A {
|
||||||
|
fun bar(x: String): Int {}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(x: MySam) {}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val a = A()
|
||||||
|
foo(a::bar)
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
FILE: sam.kt
|
||||||
|
public abstract interface MySam : R|kotlin/Any| {
|
||||||
|
public abstract fun run(x: R|kotlin/String|): R|kotlin/Int|
|
||||||
|
|
||||||
|
}
|
||||||
|
public final class A : R|kotlin/Any| {
|
||||||
|
public constructor(): R|A| {
|
||||||
|
super<R|kotlin/Any|>()
|
||||||
|
}
|
||||||
|
|
||||||
|
public final fun bar(x: R|kotlin/String|): R|kotlin/Int| {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public final fun foo(x: R|MySam|): R|kotlin/Unit| {
|
||||||
|
}
|
||||||
|
public final fun main(): R|kotlin/Unit| {
|
||||||
|
lval a: R|A| = R|/A.A|()
|
||||||
|
R|/foo|(R|<local>/a|::R|/A.bar|)
|
||||||
|
}
|
||||||
+5
@@ -100,6 +100,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
|
|||||||
runTest("compiler/fir/resolve/testData/diagnostics/callableReferences/properties.kt");
|
runTest("compiler/fir/resolve/testData/diagnostics/callableReferences/properties.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sam.kt")
|
||||||
|
public void testSam() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/diagnostics/callableReferences/sam.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("simpleClassReceiver.kt")
|
@TestMetadata("simpleClassReceiver.kt")
|
||||||
public void testSimpleClassReceiver() throws Exception {
|
public void testSimpleClassReceiver() throws Exception {
|
||||||
runTest("compiler/fir/resolve/testData/diagnostics/callableReferences/simpleClassReceiver.kt");
|
runTest("compiler/fir/resolve/testData/diagnostics/callableReferences/simpleClassReceiver.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user