[SAM with receiver] Add implementation for K2

This commit is contained in:
Dmitriy Novozhilov
2022-06-22 15:24:15 +03:00
committed by teamcity
parent 49c836e706
commit 65ac82ee46
20 changed files with 306 additions and 39 deletions
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
void run();
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
void run(String a, String b);
@@ -10,7 +8,7 @@ public interface Sam {
annotation class SamWithReceiver
fun test() {
Sam <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>a, <!CANNOT_INFER_PARAMETER_TYPE!>b<!><!> ->
Sam <!ARGUMENT_TYPE_MISMATCH!>{ a, <!CANNOT_INFER_PARAMETER_TYPE!>b<!> ->
System.out.println(a)
}<!>
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
void run();
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
void run(String a);
@@ -17,6 +15,6 @@ annotation class SamWithReceiver
fun test() {
val e = Exec()
e.exec <!TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>a<!> -> System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>) }<!>
e.exec <!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>a<!> -> System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(a) }<!>
e.exec { System.out.println(this) }
}
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
public interface Sam {
void run(String a);
}
@@ -15,5 +13,5 @@ fun test() {
val e = Exec()
e.exec { a -> System.out.println(a) }
e.exec { System.out.println(<!NO_THIS!>this<!>) }
e.exec { System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(<!NO_THIS!>this<!>) }
}
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
String run(String a, String b);
@@ -10,7 +8,7 @@ public interface Sam {
annotation class SamWithReceiver
fun test() {
Sam <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>a, <!CANNOT_INFER_PARAMETER_TYPE!>b<!><!> ->
Sam <!ARGUMENT_TYPE_MISMATCH!>{ a, <!CANNOT_INFER_PARAMETER_TYPE!>b<!> ->
System.out.println(a)
""
}<!>
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
public interface Sam {
String run(String a, String b);
}
@@ -12,9 +10,9 @@ fun test() {
""
}
Sam <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>b<!> ->
val a = <!NO_THIS!>this@Sam<!>
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>)
Sam <!ARGUMENT_TYPE_MISMATCH!>{ b ->
val a = this<!UNRESOLVED_LABEL!>@Sam<!>
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(a)
""
}<!>
}
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
@SamWithReceiver
public interface Sam {
void run(String a);
@@ -10,8 +8,8 @@ public interface Sam {
annotation class SamWithReceiver
fun test() {
Sam <!TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>a<!> ->
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>)
Sam <!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>a<!> ->
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(a)
}<!>
Sam {
@@ -1,6 +1,4 @@
// FIR_IDENTICAL
// FILE: Sam.java
// FILE: SamConstructor.kt
public interface Sam {
void run(String a);
}
@@ -13,6 +11,6 @@ fun test() {
Sam {
val a = <!NO_THIS!>this<!>
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>)
System.out.<!OVERLOAD_RESOLUTION_AMBIGUITY!>println<!>(a)
}
}