Synthesized 'copy' in data classes cannot override anything since 1.3

Synthesized 'copy' introduces default values for parameters, which is
prohibited for regular overrides.
Report warning in language version 1.2-, error in 1.3+.
This commit is contained in:
Dmitry Petrov
2017-09-12 15:10:03 +03:00
parent 9ae6feb2c5
commit 4c2cfd3ea9
17 changed files with 226 additions and 1 deletions
@@ -0,0 +1,19 @@
package
public final data class Test : WithCopy<kotlin.String> {
public constructor Test(/*0*/ str: kotlin.String)
public final val str: kotlin.String
public final operator /*synthesized*/ fun component1(): kotlin.String
public open override /*1*/ fun copy(/*0*/ str: kotlin.String = ...): Test
public final override /*1*/ /*synthesized*/ fun copy(/*0*/ str: kotlin.String = ...): Test
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public interface WithCopy</*0*/ T> {
public abstract fun copy(/*0*/ str: T): WithCopy<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
}