cleanup
This commit is contained in:
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStat
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.MemberComparator
|
import org.jetbrains.kotlin.resolve.MemberComparator
|
||||||
|
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.MultifileClass
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.MultifileClass
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.MultifileClassPart
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.MultifileClassPart
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
@@ -265,7 +266,7 @@ public class MultifileClassCodegen(
|
|||||||
if (!IncrementalCompilation.ENABLED) null
|
if (!IncrementalCompilation.ENABLED) null
|
||||||
else state.module.getPackage(packageFqName).fragments.firstOrNull { fragment ->
|
else state.module.getPackage(packageFqName).fragments.firstOrNull { fragment ->
|
||||||
fragment is IncrementalPackageFragmentProvider.IncrementalPackageFragment &&
|
fragment is IncrementalPackageFragmentProvider.IncrementalPackageFragment &&
|
||||||
fragment.moduleId == state.moduleId
|
fragment.target == state.targetId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,48 +33,48 @@ public object JvmFileClassUtil {
|
|||||||
public val JVM_MULTIFILE_CLASS: FqName = FqName("kotlin.jvm.JvmMultifileClass")
|
public val JVM_MULTIFILE_CLASS: FqName = FqName("kotlin.jvm.JvmMultifileClass")
|
||||||
public val JVM_MULTIFILE_CLASS_SHORT = JVM_MULTIFILE_CLASS.shortName().asString()
|
public val JVM_MULTIFILE_CLASS_SHORT = JVM_MULTIFILE_CLASS.shortName().asString()
|
||||||
|
|
||||||
public @jvmStatic fun getFileClassInfo(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations?): JvmFileClassInfo =
|
public @JvmStatic fun getFileClassInfo(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations?): JvmFileClassInfo =
|
||||||
if (jvmFileClassAnnotations != null)
|
if (jvmFileClassAnnotations != null)
|
||||||
getFileClassInfoForAnnotation(file, jvmFileClassAnnotations)
|
getFileClassInfoForAnnotation(file, jvmFileClassAnnotations)
|
||||||
else
|
else
|
||||||
getDefaultFileClassInfo(file)
|
getDefaultFileClassInfo(file)
|
||||||
|
|
||||||
public @jvmStatic fun getFileClassInfoForAnnotation(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): JvmFileClassInfo =
|
public @JvmStatic fun getFileClassInfoForAnnotation(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): JvmFileClassInfo =
|
||||||
if (jvmFileClassAnnotations.multipleFiles)
|
if (jvmFileClassAnnotations.multipleFiles)
|
||||||
JvmMultifileClassPartInfo(getHiddenPartFqName(file, jvmFileClassAnnotations),
|
JvmMultifileClassPartInfo(getHiddenPartFqName(file, jvmFileClassAnnotations),
|
||||||
getFacadeFqName(file, jvmFileClassAnnotations))
|
getFacadeFqName(file, jvmFileClassAnnotations))
|
||||||
else
|
else
|
||||||
JvmSimpleFileClassInfo(getFacadeFqName(file, jvmFileClassAnnotations), true)
|
JvmSimpleFileClassInfo(getFacadeFqName(file, jvmFileClassAnnotations), true)
|
||||||
|
|
||||||
public @jvmStatic fun getDefaultFileClassInfo(file: JetFile): JvmFileClassInfo =
|
public @JvmStatic fun getDefaultFileClassInfo(file: JetFile): JvmFileClassInfo =
|
||||||
JvmSimpleFileClassInfo(PackagePartClassUtils.getPackagePartFqName(file.packageFqName, file.name), false)
|
JvmSimpleFileClassInfo(PackagePartClassUtils.getPackagePartFqName(file.packageFqName, file.name), false)
|
||||||
|
|
||||||
public @jvmStatic fun getFacadeFqName(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): FqName =
|
public @JvmStatic fun getFacadeFqName(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): FqName =
|
||||||
file.packageFqName.child(Name.identifier(jvmFileClassAnnotations.name))
|
file.packageFqName.child(Name.identifier(jvmFileClassAnnotations.name))
|
||||||
|
|
||||||
public @jvmStatic fun getHiddenPartFqName(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): FqName =
|
public @JvmStatic fun getHiddenPartFqName(file: JetFile, jvmFileClassAnnotations: ParsedJmvFileClassAnnotations): FqName =
|
||||||
file.packageFqName.child(Name.identifier(manglePartName(jvmFileClassAnnotations.name, file.name)))
|
file.packageFqName.child(Name.identifier(manglePartName(jvmFileClassAnnotations.name, file.name)))
|
||||||
|
|
||||||
public @jvmStatic fun manglePartName(facadeName: String, fileName: String): String =
|
public @JvmStatic fun manglePartName(facadeName: String, fileName: String): String =
|
||||||
"${facadeName}__${PackagePartClassUtils.getFilePartShortName(fileName)}"
|
"${facadeName}__${PackagePartClassUtils.getFilePartShortName(fileName)}"
|
||||||
|
|
||||||
public @jvmStatic fun parseJvmFileClass(annotations: Annotations): ParsedJmvFileClassAnnotations? {
|
public @JvmStatic fun parseJvmFileClass(annotations: Annotations): ParsedJmvFileClassAnnotations? {
|
||||||
val jvmName = annotations.findAnnotation(JVM_NAME) ?: return null
|
val jvmName = annotations.findAnnotation(JVM_NAME) ?: return null
|
||||||
val jvmMultifileClass = annotations.findAnnotation(JVM_MULTIFILE_CLASS)
|
val jvmMultifileClass = annotations.findAnnotation(JVM_MULTIFILE_CLASS)
|
||||||
return parseJvmFileClass(jvmName, jvmMultifileClass)
|
return parseJvmFileClass(jvmName, jvmMultifileClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
public @jvmStatic fun parseJvmFileClass(jvmName: AnnotationDescriptor, jvmMultifileClass: AnnotationDescriptor?): ParsedJmvFileClassAnnotations? {
|
public @JvmStatic fun parseJvmFileClass(jvmName: AnnotationDescriptor, jvmMultifileClass: AnnotationDescriptor?): ParsedJmvFileClassAnnotations? {
|
||||||
val jvmNameArgument = jvmName.allValueArguments.values().singleOrNull() ?: return null
|
val jvmNameArgument = jvmName.allValueArguments.values().singleOrNull() ?: return null
|
||||||
val name = (jvmNameArgument as? StringValue)?.value ?: return null
|
val name = (jvmNameArgument as? StringValue)?.value ?: return null
|
||||||
val isMultifileClassPart = jvmMultifileClass != null
|
val isMultifileClassPart = jvmMultifileClass != null
|
||||||
return ParsedJmvFileClassAnnotations(name, isMultifileClassPart)
|
return ParsedJmvFileClassAnnotations(name, isMultifileClassPart)
|
||||||
}
|
}
|
||||||
|
|
||||||
public @jvmStatic fun getFileClassInfoNoResolve(file: JetFile): JvmFileClassInfo =
|
public @JvmStatic fun getFileClassInfoNoResolve(file: JetFile): JvmFileClassInfo =
|
||||||
getFileClassInfo(file, parseJvmNameOnFileNoResolve(file))
|
getFileClassInfo(file, parseJvmNameOnFileNoResolve(file))
|
||||||
|
|
||||||
public @jvmStatic fun parseJvmNameOnFileNoResolve(file: JetFile): ParsedJmvFileClassAnnotations? {
|
public @JvmStatic fun parseJvmNameOnFileNoResolve(file: JetFile): ParsedJmvFileClassAnnotations? {
|
||||||
val jvmName = findAnnotationEntryOnFileNoResolve(file, JVM_NAME_SHORT) ?: return null
|
val jvmName = findAnnotationEntryOnFileNoResolve(file, JVM_NAME_SHORT) ?: return null
|
||||||
val nameExpr = jvmName.valueArguments.firstOrNull()?.getArgumentExpression() ?: return null
|
val nameExpr = jvmName.valueArguments.firstOrNull()?.getArgumentExpression() ?: return null
|
||||||
val name = getLiteralStringFromRestrictedConstExpression(nameExpr) ?: return null
|
val name = getLiteralStringFromRestrictedConstExpression(nameExpr) ?: return null
|
||||||
@@ -82,12 +82,12 @@ public object JvmFileClassUtil {
|
|||||||
return ParsedJmvFileClassAnnotations(name, isMultifileClassPart)
|
return ParsedJmvFileClassAnnotations(name, isMultifileClassPart)
|
||||||
}
|
}
|
||||||
|
|
||||||
public @jvmStatic fun findAnnotationEntryOnFileNoResolve(file: JetFile, shortName: String): JetAnnotationEntry? =
|
public @JvmStatic fun findAnnotationEntryOnFileNoResolve(file: JetFile, shortName: String): JetAnnotationEntry? =
|
||||||
file.fileAnnotationList?.annotationEntries?.firstOrNull {
|
file.fileAnnotationList?.annotationEntries?.firstOrNull {
|
||||||
it.calleeExpression?.constructorReferenceExpression?.getReferencedName() == shortName
|
it.calleeExpression?.constructorReferenceExpression?.getReferencedName() == shortName
|
||||||
}
|
}
|
||||||
|
|
||||||
private @jvmStatic fun getLiteralStringFromRestrictedConstExpression(argumentExpression: JetExpression?): String? {
|
private @JvmStatic fun getLiteralStringFromRestrictedConstExpression(argumentExpression: JetExpression?): String? {
|
||||||
val stringTemplate = argumentExpression as? JetStringTemplateExpression ?: return null
|
val stringTemplate = argumentExpression as? JetStringTemplateExpression ?: return null
|
||||||
val stringTemplateEntries = stringTemplate.entries
|
val stringTemplateEntries = stringTemplate.entries
|
||||||
if (stringTemplateEntries.size() != 1) return null
|
if (stringTemplateEntries.size() != 1) return null
|
||||||
@@ -95,7 +95,7 @@ public object JvmFileClassUtil {
|
|||||||
return singleEntry.text
|
return singleEntry.text
|
||||||
}
|
}
|
||||||
|
|
||||||
public @jvmStatic fun collectFileAnnotations(file: JetFile, bindingContext: BindingContext): Annotations {
|
public @JvmStatic fun collectFileAnnotations(file: JetFile, bindingContext: BindingContext): Annotations {
|
||||||
val fileAnnotationsList = file.fileAnnotationList ?: return Annotations.EMPTY
|
val fileAnnotationsList = file.fileAnnotationList ?: return Annotations.EMPTY
|
||||||
val annotationDescriptors = arrayListOf<AnnotationDescriptor>()
|
val annotationDescriptors = arrayListOf<AnnotationDescriptor>()
|
||||||
for (annotationEntry in fileAnnotationsList.annotationEntries) {
|
for (annotationEntry in fileAnnotationsList.annotationEntries) {
|
||||||
|
|||||||
Reference in New Issue
Block a user