046189087a
Implemented unqualified 'super' type resolution (in BasicExpressionTypingVisitor). No overload resolution of any kind is involved. Corresponding supertype is determined by the expected member name only: - 'super.foo(...)' - function or property (of possibly callable type) 'foo' - 'super.x' - property 'x' Supertype should provide a non-abstract implementation of such member. As a fall-back solution for diagnostics purposes, consider supertypes with abstract implementation of such member. Diagnostics: - AMBIGUOUS_SUPER on 'super', if multiple possible supertypes are available; - ABSTRACT_SUPER_CALL on selector expression, if the only available implementation is abstract. #KT-5963 Fixed
51 lines
2.8 KiB
Plaintext
Vendored
51 lines
2.8 KiB
Plaintext
Vendored
package
|
|
|
|
internal open class GenericBaseClass</*0*/ T> {
|
|
public constructor GenericBaseClass</*0*/ T>()
|
|
internal open fun ambiguous(/*0*/ x: T): T
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
internal open fun foo(/*0*/ x: T): T
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
internal interface GenericBaseInterface</*0*/ T> {
|
|
internal open fun ambiguous(/*0*/ x: T): T
|
|
internal open fun bar(/*0*/ x: T): T
|
|
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
|
|
}
|
|
|
|
internal final class GenericDerivedClass</*0*/ T> : GenericBaseClass<T>, GenericBaseInterface<T> {
|
|
public constructor GenericDerivedClass</*0*/ T>()
|
|
internal open override /*2*/ fun ambiguous(/*0*/ x: T): T
|
|
internal open override /*1*/ fun bar(/*0*/ x: T): T
|
|
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
internal open override /*1*/ fun foo(/*0*/ x: T): T
|
|
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
internal final class MixedDerivedClass</*0*/ T> : GenericBaseClass<kotlin.Int>, GenericBaseInterface<T> {
|
|
public constructor MixedDerivedClass</*0*/ T>()
|
|
internal open override /*1*/ fun ambiguous(/*0*/ x: T): T
|
|
internal open override /*1*/ fun ambiguous(/*0*/ x: kotlin.Int): kotlin.Int
|
|
internal open override /*1*/ fun bar(/*0*/ x: T): T
|
|
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
internal open override /*1*/ fun foo(/*0*/ x: kotlin.Int): kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
internal final class SpecializedDerivedClass : GenericBaseClass<kotlin.Int>, GenericBaseInterface<kotlin.String> {
|
|
public constructor SpecializedDerivedClass()
|
|
internal open override /*1*/ fun ambiguous(/*0*/ x: kotlin.Int): kotlin.Int
|
|
internal open override /*1*/ fun ambiguous(/*0*/ x: kotlin.String): kotlin.String
|
|
internal open override /*1*/ fun bar(/*0*/ x: kotlin.String): kotlin.String
|
|
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
internal open override /*1*/ fun foo(/*0*/ x: kotlin.Int): kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|