Iniital implementation of synthetic extensions for SAM-adapter functions (non-static only)

This commit is contained in:
Valentin Kipyatkov
2015-07-28 17:13:09 +03:00
parent 8b3870cc33
commit 729085ec9a
106 changed files with 624 additions and 364 deletions
@@ -0,0 +1,22 @@
// FILE: KotlinFile.kt
fun foo(o: JavaClass2) {
useString(o.something)
o.something = ""
o.setSomething(1)
o.something = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!> // we generate extension property for JavaClass2 with more specific type
o.something += "1"
}
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
// FILE: JavaClass1.java
public class JavaClass1 {
public Object getSomething() { return null; }
public void setSomething(Object value) { }
}
// FILE: JavaClass2.java
public class JavaClass2 extends JavaClass1 {
public String getSomething() { return ""; }
}