Refine loading annotation parameters from java

- Parameter named `value` is always first
- Array parameter represented as vararg iff its name is `value` and all
  other parameters have default values

 #KT-2576 Fixed
 #KT-6641 Fixed
 #KT-6220 Fixed
 #KT-6652 Fixed
This commit is contained in:
Denis Zharkov
2015-04-06 15:41:57 +03:00
parent 84ed0e7255
commit 9b1443954f
15 changed files with 260 additions and 29 deletions
@@ -1,6 +1,6 @@
// FILE: A.java
public @interface A {
String[] arg();
String[] value();
}
// FILE: b.kt
@@ -1,11 +1,11 @@
package
A(arg = {IntegerValueType(1), "b"}: kotlin.Array<???>) internal fun test(): kotlin.Unit
A(value = {IntegerValueType(1), "b"}: kotlin.Array<???>) internal fun test(): kotlin.Unit
public final annotation class A : kotlin.Annotation {
public constructor A(/*0*/ vararg arg: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public abstract fun arg(): kotlin.Array<kotlin.String>
public constructor A(/*0*/ vararg value: kotlin.String /*kotlin.Array<out kotlin.String>*/)
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 fun value(): kotlin.Array<kotlin.String>
}