Filters methods that Kotlin compiler generates for inline classes.
For
@kotlin.jvm.JvmInline
value class Example(val value: String) : Base {
fun f(p: String) { ... }
fun f(p: Example) { ... }
override fun base() { ... }
}
Kotlin compiler produces
@kotlin.jvm.JvmInline
class Example implements Base {
private final String value;
public String getValue() { return value; }
private synthetic Example(String value) { this.value = value; }
public static String constructor-impl(String value) { ... }
public static void f-impl(String value, String p) { ... }
public static void f-ulP-heY(String value, String p) { ... }
public void base() { base-impl(value); }
public static void base-impl(String value) { ... }
public String toString() { return toString-impl(value); }
public static String toString-impl(String value) { ... }
public boolean equals(Object other) { return equals-impl(value, other); }
public static boolean equals-impl(String value, Object other) { ... }
public int hashCode() { return hashCode-impl(value); }
public static int hashCode-impl(String value) { ... }
public final synthetic String unbox-impl() { return value; }
public static synthetic Example box-impl(String value) { return new Example(value); }
public static equals-impl0(String value1, String value2) { ... }
}
Except getter all non-synthetic non-static methods delegate to corresponding
static methods. Non-static methods are provided for interoperability with
Java and can not be invoked from Kotlin without reflection and so should be
filtered out.