[SAM with receiver] Add implementation for K2
This commit is contained in:
committed by
teamcity
parent
49c836e706
commit
65ac82ee46
@@ -0,0 +1,17 @@
|
||||
// FILE: Sam.java
|
||||
@SamWithReceiver
|
||||
public interface Sam {
|
||||
String run(String argument);
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
annotation class SamWithReceiver
|
||||
|
||||
fun takeSam(argument: String, sam: Sam): String {
|
||||
return sam.run(argument)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val sam = Sam { this }
|
||||
return takeSam("OK", sam)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// FILE: Sam.java
|
||||
@SamWithReceiver
|
||||
public interface Sam {
|
||||
String run(String argument);
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
annotation class SamWithReceiver
|
||||
|
||||
fun takeSam(argument: String, sam: Sam): String {
|
||||
return sam.run(argument)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return takeSam("OK") { this }
|
||||
}
|
||||
@@ -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
-1
@@ -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) }
|
||||
}
|
||||
|
||||
+2
-4
@@ -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 {
|
||||
|
||||
+2
-4
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.lang.annotation.RetentionPolicy;
|
||||
public @interface SamWithReceiver1 {
|
||||
}
|
||||
|
||||
// FILE: Sam.java
|
||||
// FILE: SamConstructor.kt
|
||||
@SamWithReceiver1
|
||||
public interface Sam {
|
||||
void run(String a, String b);
|
||||
|
||||
Reference in New Issue
Block a user