Minor refactoring after improving JS inliner
This commit is contained in:
+8
-9
@@ -18,13 +18,12 @@ package org.jetbrains.kotlin.js.translate.expression
|
|||||||
|
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore
|
import com.intellij.openapi.vfs.VfsUtilCore
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.impl.PropertyAccessorDescriptorImpl
|
|
||||||
import org.jetbrains.kotlin.js.backend.ast.*
|
import org.jetbrains.kotlin.js.backend.ast.*
|
||||||
import org.jetbrains.kotlin.js.backend.ast.metadata.descriptor
|
import org.jetbrains.kotlin.js.backend.ast.metadata.descriptor
|
||||||
import org.jetbrains.kotlin.js.backend.ast.metadata.functionDescriptor
|
import org.jetbrains.kotlin.js.backend.ast.metadata.functionDescriptor
|
||||||
import org.jetbrains.kotlin.js.backend.ast.metadata.hasDefaultValue
|
import org.jetbrains.kotlin.js.backend.ast.metadata.hasDefaultValue
|
||||||
import org.jetbrains.kotlin.js.descriptorUtils.shouldBeExported
|
|
||||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||||
|
import org.jetbrains.kotlin.js.descriptorUtils.shouldBeExported
|
||||||
import org.jetbrains.kotlin.js.inline.util.FunctionWithWrapper
|
import org.jetbrains.kotlin.js.inline.util.FunctionWithWrapper
|
||||||
import org.jetbrains.kotlin.js.translate.context.Namer
|
import org.jetbrains.kotlin.js.translate.context.Namer
|
||||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||||
@@ -36,8 +35,8 @@ import org.jetbrains.kotlin.psi.KtDeclarationWithBody
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
|
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
|
||||||
import org.jetbrains.kotlin.resolve.source.getPsi
|
|
||||||
import org.jetbrains.kotlin.resolve.source.PsiSourceFile
|
import org.jetbrains.kotlin.resolve.source.PsiSourceFile
|
||||||
|
import org.jetbrains.kotlin.resolve.source.getPsi
|
||||||
|
|
||||||
fun TranslationContext.translateAndAliasParameters(
|
fun TranslationContext.translateAndAliasParameters(
|
||||||
descriptor: FunctionDescriptor,
|
descriptor: FunctionDescriptor,
|
||||||
@@ -106,10 +105,10 @@ fun TranslationContext.wrapWithInlineMetadata(
|
|||||||
function: JsFunction, descriptor: FunctionDescriptor
|
function: JsFunction, descriptor: FunctionDescriptor
|
||||||
): JsExpression {
|
): JsExpression {
|
||||||
val sourceInfo = descriptor.source.getPsi()
|
val sourceInfo = descriptor.source.getPsi()
|
||||||
return if (descriptor.isInline && descriptor.shouldBeExported(config)) {
|
return if (descriptor.isInline) {
|
||||||
|
if (descriptor.shouldBeExported(config)) {
|
||||||
val metadata = InlineMetadata.compose(function, descriptor, this)
|
val metadata = InlineMetadata.compose(function, descriptor, this)
|
||||||
val functionWithMetadata = metadata.functionWithMetadata(outerContext, sourceInfo)
|
val functionWithMetadata = metadata.functionWithMetadata(outerContext, sourceInfo)
|
||||||
|
|
||||||
config.configuration[JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER]?.apply {
|
config.configuration[JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER]?.apply {
|
||||||
val psiFile = (descriptor.source.containingFile as? PsiSourceFile)?.psiFile ?: return@apply
|
val psiFile = (descriptor.source.containingFile as? PsiSourceFile)?.psiFile ?: return@apply
|
||||||
val file = VfsUtilCore.virtualToIoFile(psiFile.virtualFile)
|
val file = VfsUtilCore.virtualToIoFile(psiFile.virtualFile)
|
||||||
@@ -130,15 +129,15 @@ fun TranslationContext.wrapWithInlineMetadata(
|
|||||||
functionWithMetadata
|
functionWithMetadata
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val block = if (descriptor.isInline) {
|
val block =
|
||||||
inlineFunctionContext!!.let {
|
inlineFunctionContext!!.let {
|
||||||
JsBlock(it.importBlock.statements + it.prototypeBlock.statements + it.declarationsBlock.statements +
|
JsBlock(it.importBlock.statements + it.prototypeBlock.statements + it.declarationsBlock.statements +
|
||||||
JsReturn(function))
|
JsReturn(function))
|
||||||
}
|
}
|
||||||
|
InlineMetadata.wrapFunction(outerContext, FunctionWithWrapper(function, block), sourceInfo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
null
|
function
|
||||||
}
|
|
||||||
if (block != null) InlineMetadata.wrapFunction(outerContext, FunctionWithWrapper(function, block), sourceInfo) else function
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user