Do not load special builtin overrides from Java as synthesized

It has been done just to avoid clashes with real declarations that look
like our builtins: e.g. 'String removeAt(int index) {}' and 'String remove(int index) {}'in Java.

But synthesized members are even weaker than extensions.

Solution is just to ignore the latter declaration and treat first as effective override
of out builltin.
This commit is contained in:
Denis Zharkov
2015-10-13 17:48:41 +03:00
committed by Mikhail Glukhikh
parent cd589b7e6a
commit e062e32f95
18 changed files with 375 additions and 37 deletions
@@ -24,7 +24,7 @@ public abstract class A : B {
public open override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.MutableListIterator<kotlin.Int!>
invisible_fake open override /*1*/ /*fake_override*/ fun outOfBoundsMsg(/*0*/ p0: kotlin.Int): kotlin.String!
invisible_fake open override /*1*/ /*fake_override*/ fun rangeCheckForAdd(/*0*/ p0: kotlin.Int): kotlin.Unit
public open override /*1*/ /*synthesized*/ fun remove(/*0*/ x: kotlin.Int): kotlin.Boolean
public open override /*1*/ fun remove(/*0*/ x: kotlin.Int): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ fun removeAt(/*0*/ x: kotlin.Int): kotlin.Int
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit