Cleanup
- do not use annotation resolve in CodegenFileClassProvider - test using private methods across different parts of multifile class
This commit is contained in:
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import java.util.*
|
||||
|
||||
public class CodegenFileClassesProvider private constructor(private val bindingContext: BindingContext) : JvmFileClassesProvider {
|
||||
public class CodegenFileClassesProvider private constructor() : JvmFileClassesProvider {
|
||||
private val fileParts = hashMapOf<JetFile, JvmFileClassInfo>()
|
||||
|
||||
override fun getFileClassFqName(file: JetFile): FqName =
|
||||
@@ -33,11 +33,8 @@ public class CodegenFileClassesProvider private constructor(private val bindingC
|
||||
public fun getFileClassInfo(file: JetFile): JvmFileClassInfo =
|
||||
fileParts.getOrPut(file) { createFileClassInfo(file) }
|
||||
|
||||
private fun createFileClassInfo(file: JetFile): JvmFileClassInfo {
|
||||
val fileAnnotations = JvmFileClassUtil.collectFileAnnotations(file, bindingContext)
|
||||
val jvmClassNameAnnotation = JvmFileClassUtil.parseJvmFileClass(fileAnnotations)
|
||||
return JvmFileClassUtil.getFileClassInfo(file, jvmClassNameAnnotation)
|
||||
}
|
||||
private fun createFileClassInfo(file: JetFile): JvmFileClassInfo =
|
||||
JvmFileClassUtil.getFileClassInfoNoResolve(file)
|
||||
|
||||
internal fun addFileClassInfo(file: JetFile) {
|
||||
if (fileParts.containsKey(file)) return
|
||||
@@ -51,7 +48,7 @@ public class CodegenFileClassesProvider private constructor(private val bindingC
|
||||
packagesWithObsoleteParts: Collection<FqName>,
|
||||
multifileFacadesWithObsoleteParts: Collection<FqName>
|
||||
) : CodegenFileClassesProvider {
|
||||
val codegenFileClassesManager = CodegenFileClassesProvider(bindingContext)
|
||||
val codegenFileClassesManager = CodegenFileClassesProvider()
|
||||
files.forEach {
|
||||
codegenFileClassesManager.addFileClassInfo(it)
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,3 +1,2 @@
|
||||
@file:JvmName("Util")
|
||||
@file:JvmMultifileClass
|
||||
@file:[JvmName("Util") JvmMultifileClass]
|
||||
public fun foo(): String = "O"
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
@file:JvmMultifileClass
|
||||
public fun bar(): String = barx()
|
||||
|
||||
internal fun foox(): String = "O"
|
||||
private fun foox(): String = "O"
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
@file:JvmMultifileClass
|
||||
public fun foo(): String = foox()
|
||||
|
||||
internal fun barx(): String = "K"
|
||||
private fun barx(): String = "K"
|
||||
+3
-3
@@ -141,9 +141,9 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
|
||||
doTestWithJava(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("multifileClassWithInternal")
|
||||
public void testMultifileClassWithInternal() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithInternal/");
|
||||
@TestMetadata("multifileClassWithCrossPrivate")
|
||||
public void testMultifileClassWithCrossPrivate() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/fileClasses/multifileClassWithCrossPrivate/");
|
||||
doTestWithJava(fileName);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user