Avoid generation of redundant toArray stubs

#KT-13698 In Progress
This commit is contained in:
Denis Zharkov
2016-10-05 15:53:23 +03:00
parent e05e0ec921
commit 6e838f0adc
8 changed files with 48 additions and 15 deletions
@@ -30,8 +30,6 @@ public final class test/C {
public method remove(p0: int): java.lang.Object
public method set(p0: int, p1: java.lang.Object): java.lang.Object
public @org.jetbrains.annotations.NotNull method subList(p0: int, p1: int): java.util.List
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
@@ -20,8 +20,6 @@ public class A {
@kotlin.Metadata
public class B {
public method <init>(): void
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
@@ -37,6 +35,4 @@ public final class C {
public method remove(p0: int): java.lang.Object
public method set(p0: int, p1: java.lang.Object): java.lang.Object
public @org.jetbrains.annotations.NotNull method subList(p0: int, p1: int): java.util.List
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -22,8 +22,6 @@ public class B {
public method <init>(): void
public method contains(p0: java.lang.CharSequence): boolean
public final method contains(p0: java.lang.Object): boolean
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
@@ -45,6 +43,4 @@ public final class C {
public method set(p0: int, p1: java.lang.CharSequence): java.lang.CharSequence
public synthetic method set(p0: int, p1: java.lang.Object): java.lang.Object
public @org.jetbrains.annotations.NotNull method subList(p0: int, p1: int): java.util.List
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -0,0 +1,14 @@
// FILE: test/JavaClass.java
package test;
public abstract class JavaClass<T> implements A<T> {
}
// FILE: main.kt
package test
interface A<T> : Collection<T>
// There must be toArray methods in B
abstract class B<E> : JavaClass<E>()
@@ -0,0 +1,19 @@
@kotlin.Metadata
public interface test/A
@kotlin.Metadata
public abstract class test/B {
public method <init>(): void
public method add(p0: java.lang.Object): boolean
public method addAll(p0: java.util.Collection): boolean
public method clear(): void
public abstract method contains(p0: java.lang.Object): boolean
public abstract method getSize(): int
public method iterator(): java.util.Iterator
public method remove(p0: java.lang.Object): boolean
public method removeAll(p0: java.util.Collection): boolean
public method retainAll(p0: java.util.Collection): boolean
public final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -42,8 +42,6 @@ public final class A1 {
public method remove(p0: java.lang.String): boolean
public synthetic method removeAt(p0: int): java.lang.Object
public @org.jetbrains.annotations.NotNull method removeAt(p0: int): java.lang.String
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
@@ -59,6 +57,4 @@ public final class A2 {
public final method remove(p0: java.lang.Object): boolean
public method remove(p0: java.lang.String): boolean
public method removeAt(p0: int): java.lang.String
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}