Fix collection literals resolve in gradle-based projects

#KT-19441 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2017-08-06 18:42:09 +02:00
parent b24c1bf06c
commit 0b358fb693
15 changed files with 234 additions and 10 deletions
@@ -0,0 +1,32 @@
OUT:
Buildfile: [TestData]/build.xml
build:
[mkdir] Created dir: [Temp]/classes
[javac] Compiling 2 source files to [Temp]/classes
[javac] Compiling [[TestData]] => [[Temp]/classes]
[javac] [TestData]/literals.kt:6:9: error: overload resolution ambiguity:
[javac] public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] @AnnInt([1, 2])
[javac] ^
[javac] [TestData]/literals.kt:9:9: error: overload resolution ambiguity:
[javac] public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] @AnnInt(intArrayOf(1, 2))
[javac] ^
[javac] [TestData]/myArrayOf.kt:3:1: error: conflicting overloads: public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt, public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] public fun intArrayOf(vararg elements: Int): IntArray = TODO()
[javac] ^
[javac] [TestData]/myArrayOf.kt:4:1: error: conflicting overloads: public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt, public fun intArrayOf(vararg elements: Int): IntArray defined in kotlin in file myArrayOf.kt
[javac] public fun intArrayOf(vararg elements: Int): IntArray = TODO()
[javac] ^
ERR:
BUILD FAILED
[TestData]/build.xml:6: Compile failed; see the compiler error output for details.
Total time: [time]
Return code: 1
@@ -0,0 +1,25 @@
<project name="Ant Task Test" default="build">
<taskdef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${kotlin.lib}/kotlin-ant.jar"/>
<target name="build">
<mkdir dir="${temp}/classes"/>
<javac srcdir="${test.data}" destdir="${temp}/classes" includeantruntime="false">
<classpath>
<pathelement location="${kotlin.runtime.jar}"/>
</classpath>
<withKotlin>
<compilerarg value="-Xallow-kotlin-package"/>
</withKotlin>
</javac>
<jar destfile="${temp}/literals.jar">
<fileset dir="${temp}/classes"/>
</jar>
<java classname="lit.LiteralsKt" fork="true">
<classpath>
<pathelement location="${temp}/literals.jar"/>
<pathelement location="${kotlin.runtime.jar}"/>
</classpath>
</java>
</target>
</project>
@@ -0,0 +1,15 @@
package lit
annotation class AnnInt(val a: IntArray)
@Suppress("UNSUPPORTED_FEATURE")
@AnnInt([1, 2])
fun foo() {}
@AnnInt(intArrayOf(1, 2))
fun bar() {}
fun main(args: Array<String>) {
foo()
bar()
}
@@ -0,0 +1,4 @@
package kotlin
public fun intArrayOf(vararg elements: Int): IntArray = TODO()
public fun intArrayOf(vararg elements: Int): IntArray = TODO()