fc5217f7fc
Do not treat members with already changed signature as a reason to create a hidden copy See tests for clarification: - There are `charAt` method in B that has different name in Kotlin - `get`, i.e. relevant descriptor has initialSignatureDescriptor != null - When collecting methods from supertypes, `charAt` from A is also get transformed to `get` - So it has effectively the same signature as B.get (already declared) - If by an accident B.get had been declared with Kotlin signature we would have add A.charAt (after transformation) with special flag: HiddenToOvercomeSignatureClash (hides it from resolution) - But here B.charAt was artificially changed to `get`, so no signature clash actually happened #KT-13730 Fixed
40 lines
2.2 KiB
Plaintext
Vendored
40 lines
2.2 KiB
Plaintext
Vendored
package
|
|
|
|
public abstract class A {
|
|
public constructor A()
|
|
public abstract fun charAt(/*0*/ i: kotlin.Int): kotlin.Char
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public abstract class B : A, kotlin.CharSequence {
|
|
public constructor B()
|
|
public abstract override /*1*/ /*fake_override*/ val length: kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*2*/ fun get(/*0*/ i: kotlin.Int): kotlin.Char
|
|
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public abstract override /*1*/ /*fake_override*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
|
|
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public abstract class C1 : B {
|
|
public constructor C1()
|
|
public abstract override /*1*/ /*fake_override*/ val length: kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun get(/*0*/ i: kotlin.Int): kotlin.Char
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public abstract override /*1*/ /*fake_override*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public abstract class C2 : B {
|
|
public constructor C2()
|
|
public abstract override /*1*/ /*fake_override*/ val length: kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ fun get(/*0*/ index: kotlin.Int): kotlin.Char
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public abstract override /*1*/ /*fake_override*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|