From df7d69b5b4d4b084fd2f86d5a5fdf1c937e7a582 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Fri, 28 Jul 2017 11:25:12 +0300 Subject: [PATCH] Minor refactoring after improving JS inliner --- .../expression/FunctionTranslator.kt | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/FunctionTranslator.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/FunctionTranslator.kt index 2706e62a3f0..c75f7737984 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/FunctionTranslator.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/FunctionTranslator.kt @@ -18,13 +18,12 @@ package org.jetbrains.kotlin.js.translate.expression import com.intellij.openapi.vfs.VfsUtilCore 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.metadata.descriptor import org.jetbrains.kotlin.js.backend.ast.metadata.functionDescriptor 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.descriptorUtils.shouldBeExported import org.jetbrains.kotlin.js.inline.util.FunctionWithWrapper import org.jetbrains.kotlin.js.translate.context.Namer 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.descriptorUtil.fqNameSafe 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.getPsi fun TranslationContext.translateAndAliasParameters( descriptor: FunctionDescriptor, @@ -106,39 +105,39 @@ fun TranslationContext.wrapWithInlineMetadata( function: JsFunction, descriptor: FunctionDescriptor ): JsExpression { val sourceInfo = descriptor.source.getPsi() - return if (descriptor.isInline && descriptor.shouldBeExported(config)) { - val metadata = InlineMetadata.compose(function, descriptor, this) - val functionWithMetadata = metadata.functionWithMetadata(outerContext, sourceInfo) + return if (descriptor.isInline) { + if (descriptor.shouldBeExported(config)) { + val metadata = InlineMetadata.compose(function, descriptor, this) + val functionWithMetadata = metadata.functionWithMetadata(outerContext, sourceInfo) + config.configuration[JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER]?.apply { + val psiFile = (descriptor.source.containingFile as? PsiSourceFile)?.psiFile ?: return@apply + val file = VfsUtilCore.virtualToIoFile(psiFile.virtualFile) - config.configuration[JSConfigurationKeys.INCREMENTAL_RESULTS_CONSUMER]?.apply { - val psiFile = (descriptor.source.containingFile as? PsiSourceFile)?.psiFile ?: return@apply - val file = VfsUtilCore.virtualToIoFile(psiFile.virtualFile) + val fqName = when (descriptor) { + is PropertyGetterDescriptor -> { + "" + descriptor.correspondingProperty.fqNameSafe.asString() + } + is PropertySetterDescriptor -> { + "" + descriptor.correspondingProperty.fqNameSafe.asString() + } + else -> descriptor.fqNameSafe.asString() + } - val fqName = when (descriptor) { - is PropertyGetterDescriptor -> { - "" + descriptor.correspondingProperty.fqNameSafe.asString() - } - is PropertySetterDescriptor -> { - "" + descriptor.correspondingProperty.fqNameSafe.asString() - } - else -> descriptor.fqNameSafe.asString() + processInlineFunction(file, fqName, functionWithMetadata) } - processInlineFunction(file, fqName, functionWithMetadata) - } - - functionWithMetadata - } - else { - val block = if (descriptor.isInline) { - inlineFunctionContext!!.let { - JsBlock(it.importBlock.statements + it.prototypeBlock.statements + it.declarationsBlock.statements + - JsReturn(function)) - } + functionWithMetadata } else { - null + val block = + inlineFunctionContext!!.let { + JsBlock(it.importBlock.statements + it.prototypeBlock.statements + it.declarationsBlock.statements + + JsReturn(function)) + } + InlineMetadata.wrapFunction(outerContext, FunctionWithWrapper(function, block), sourceInfo) } - if (block != null) InlineMetadata.wrapFunction(outerContext, FunctionWithWrapper(function, block), sourceInfo) else function + } + else { + function } }