JvmName annotation support, single-file facade case (just rename file facade class)
- initial implementation of JvmFileClassesProvider
- migrate some of PackagePartClassUtil usages to JvmFileClassesProvider (mostly in Codegen)
- placeholder ("no resolve") implementation for migration period and unclear cases
- tests
This commit is contained in:
+1
-1
@@ -1,3 +1,3 @@
|
||||
$TESTDATA_DIR$/classAndFacadeClash.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,3 @@
|
||||
$TESTDATA_DIR$/classAndFileClassClash.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,6 @@
|
||||
@file:jvmName("Foo")
|
||||
package test
|
||||
|
||||
public fun foo() {}
|
||||
|
||||
class Foo {}
|
||||
@@ -0,0 +1,7 @@
|
||||
compiler/testData/cli/jvm/classAndFileClassClash.kt:1:1: error: duplicate JVM class name 'test/Foo' generated from: package-fragment test, Foo
|
||||
@file:jvmName("Foo")
|
||||
^
|
||||
compiler/testData/cli/jvm/classAndFileClassClash.kt:6:1: error: duplicate JVM class name 'test/Foo' generated from: package-fragment test, Foo
|
||||
class Foo {}
|
||||
^
|
||||
COMPILATION_ERROR
|
||||
@@ -0,0 +1,4 @@
|
||||
$TESTDATA_DIR$/classAndOtherFileClassClash1.kt
|
||||
$TESTDATA_DIR$/classAndOtherFileClassClash2.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,7 @@
|
||||
compiler/testData/cli/jvm/classAndOtherFileClassClash1.kt:1:1: error: duplicate JVM class name 'test/Foo' generated from: Foo, package-fragment test
|
||||
@file:jvmName("Foo")
|
||||
^
|
||||
compiler/testData/cli/jvm/classAndOtherFileClassClash2.kt:3:1: error: duplicate JVM class name 'test/Foo' generated from: Foo, package-fragment test
|
||||
class Foo
|
||||
^
|
||||
COMPILATION_ERROR
|
||||
@@ -0,0 +1,4 @@
|
||||
@file:jvmName("Foo")
|
||||
package test
|
||||
|
||||
public fun foo() {}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class Foo
|
||||
@@ -0,0 +1,3 @@
|
||||
$TESTDATA_DIR$/fileClassAndFacadeClash.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,4 @@
|
||||
@file:jvmName("TestPackage")
|
||||
package test
|
||||
|
||||
fun foo() {}
|
||||
@@ -0,0 +1,4 @@
|
||||
compiler/testData/cli/jvm/fileClassAndFacadeClash.kt:1:1: error: duplicate JVM class name 'test/TestPackage' generated from: package-fragment test, package-fragment test
|
||||
@file:jvmName("TestPackage")
|
||||
^
|
||||
COMPILATION_ERROR
|
||||
@@ -0,0 +1,3 @@
|
||||
$TESTDATA_DIR$/fileClassAndTImplClash.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,4 @@
|
||||
@file:jvmName("XXX\$\$TImpl")
|
||||
package test
|
||||
|
||||
interface XXX
|
||||
@@ -0,0 +1 @@
|
||||
OK
|
||||
@@ -0,0 +1,4 @@
|
||||
$TESTDATA_DIR$/fileClassClashMultipleFiles1.kt
|
||||
$TESTDATA_DIR$/fileClassClashMultipleFiles2.kt
|
||||
-d
|
||||
$TEMP_DIR$
|
||||
@@ -0,0 +1,7 @@
|
||||
compiler/testData/cli/jvm/fileClassClashMultipleFiles1.kt:1:1: error: duplicate JVM class name 'test/Util' generated from: package-fragment test, package-fragment test
|
||||
@file:jvmName("Util")
|
||||
^
|
||||
compiler/testData/cli/jvm/fileClassClashMultipleFiles2.kt:1:1: error: duplicate JVM class name 'test/Util' generated from: package-fragment test, package-fragment test
|
||||
@file:jvmName("Util")
|
||||
^
|
||||
COMPILATION_ERROR
|
||||
@@ -0,0 +1,4 @@
|
||||
@file:jvmName("Util")
|
||||
package test
|
||||
|
||||
public fun foo() {}
|
||||
@@ -0,0 +1,4 @@
|
||||
@file:jvmName("Util")
|
||||
package test
|
||||
|
||||
public fun bar() {}
|
||||
Reference in New Issue
Block a user