Record special name lookup when trying use interface as a SAM
It was already working in JPS, because it see our synthetic classes as subclasses for SAM's, but with non-JPS build we have to manually tracking places that should be recompiled after SAM members are changed
This commit is contained in:
+4
@@ -0,0 +1,4 @@
|
||||
public class JavaClass {
|
||||
public void foo(SamInterface s) {}
|
||||
public static void bar(SamInterface s) {}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
public interface SamInterface {
|
||||
Object run();
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
public interface SamInterface {
|
||||
Object run();
|
||||
Object walk();
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
================ Step #1 =================
|
||||
|
||||
Cleaning output files:
|
||||
out/production/module/SamInterface.class
|
||||
End of files
|
||||
Exit code: NOTHING_DONE
|
||||
------------------------------------------
|
||||
Compiling files:
|
||||
src/SamInterface.java
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/UsageWithMemberKt$usageWithMember$1.class
|
||||
out/production/module/UsageWithMemberKt.class
|
||||
out/production/module/UsageWithStaticKt$usageWithStatic$1.class
|
||||
out/production/module/UsageWithStaticKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/usageWithMember.kt
|
||||
src/usageWithStatic.kt
|
||||
End of files
|
||||
Exit code: ABORT
|
||||
------------------------------------------
|
||||
COMPILATION FAILED
|
||||
Type mismatch: inferred type is () -> String but SamInterface! was expected
|
||||
Type mismatch: inferred type is () -> String but SamInterface! was expected
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun notUsage() {
|
||||
JavaClass().hashCode()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun usageWithMember() {
|
||||
JavaClass().foo { "" }
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun usageWithStatic() {
|
||||
JavaClass.bar { "" }
|
||||
}
|
||||
Reference in New Issue
Block a user