JVM_IR KT-36994 don't generate stub if present in superclass

This commit is contained in:
Dmitry Petrov
2020-09-24 16:49:36 +03:00
parent 1adce11257
commit cfd62c15bf
10 changed files with 147 additions and 17 deletions
@@ -0,0 +1,3 @@
abstract class AC<X> : Collection<X>
abstract class ASet<T> : AC<T>(), Set<T>
@@ -0,0 +1,23 @@
@kotlin.Metadata
public abstract class AC {
// source: 'extendingAbstractCollection.kt'
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 bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
public abstract class ASet {
// source: 'extendingAbstractCollection.kt'
public method <init>(): void
}
@@ -0,0 +1,22 @@
@kotlin.Metadata
public abstract class AC {
// source: 'extendingAbstractCollection.kt'
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 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 bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@kotlin.Metadata
public abstract class ASet {
// source: 'extendingAbstractCollection.kt'
public method <init>(): void
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
// FILE: test/B.java
@@ -0,0 +1,18 @@
// WITH_RUNTIME
// IGNORE_BACKEND: JVM
// ^ see KT-42179
// FILE: test/JC.java
package test;
import java.util.Collection;
public abstract class JC<E> implements Collection<E> {
}
// FILE: noStubsInJavaSuperClass2.kt
package test
abstract class KSet<E> : JC<E>(), Set<E>
abstract class KList<E> : JC<E>(), List<E>
@@ -0,0 +1,39 @@
@kotlin.Metadata
public abstract class test/KList {
// source: 'noStubsInJavaSuperClass2.kt'
public method <init>(): void
public method add(p0: int, p1: java.lang.Object): void
public method add(p0: java.lang.Object): boolean
public method addAll(p0: int, p1: java.util.Collection): boolean
public method addAll(p0: java.util.Collection): boolean
public method clear(): void
public abstract method getSize(): int
public method listIterator(): java.util.ListIterator
public method listIterator(p0: int): java.util.ListIterator
public method remove(p0: int): java.lang.Object
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 method set(p0: int, p1: java.lang.Object): java.lang.Object
public bridge final method size(): int
public 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
public abstract class test/KSet {
// source: 'noStubsInJavaSuperClass2.kt'
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 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 bridge final method size(): int
public method toArray(): java.lang.Object[]
public method toArray(p0: java.lang.Object[]): java.lang.Object[]
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
open class A<T> : Collection<T> {