Skip to content

Instantly share code, notes, and snippets.

@e5l
Created August 28, 2017 11:07
Show Gist options
  • Save e5l/0f2f9d5190b75dff6f8698504b6c7d6b to your computer and use it in GitHub Desktop.
Save e5l/0f2f9d5190b75dff6f8698504b6c7d6b to your computer and use it in GitHub Desktop.
// FILE: A.java
import kotlin.internal.*;
public class A {
public void foo(@DefaultNull Integer i) {}
public void bar(@DefaultNull Integer a) {}
public void bam(@DefaultNull Integer a) {}
public void baz(@DefaultValue(value = "42") Integer a) {}
}
// FILE: AInt.java
import kotlin.internal.*;
public interface AInt {
public void foo(@DefaultValue(value = "42") Integer i) {}
public void bar(@DefaultNull Integer a) {}
}
// FILE: B.java
import kotlin.internal.*;
public class B extends A {
public void foo(Integer i) {}
public void bar(@DefaultValue(value = "42") Integer a) {}
public void bam(@DefaultNull @DefaultValue(value = "42") Integer a) {}
}
// FILE: C.java
public class C extends A implements AInt {
}
// FILE: test.kt
fun test(b: B, c: C) {
b.foo()
b.foo(5)
b.bar()
b.bar(5)
b.bam()
b.bam(5)
- c.foo(<!NO_VALUE_FOR_PARAMETER!>)<!>
+ c.foo()
c.foo(5)
- c.bar(<!NO_VALUE_FOR_PARAMETER!>)<!>
+ c.bar()
c.bar(5)
c.bam()
c.bam(5)
c.baz()
c.baz(42)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment