Remove obsolete InlineStrategy
Replace corresponding metadata property in js.ast with Boolean. This allows to get rid of dependency of 'js.ast' on 'frontend'.
This commit is contained in:
committed by
Alexander Udalov
parent
4156a9c80b
commit
8dd04789ad
+3
-4
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.*
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.descriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.inlineStrategy
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.isInline
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.js.config.JsConfig
|
||||
import org.jetbrains.kotlin.js.patterns.NamePredicate
|
||||
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.BuiltInProper
|
||||
import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsic
|
||||
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.inline.InlineStrategy
|
||||
import org.jetbrains.kotlin.resolve.isInlineClassType
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import java.util.*
|
||||
@@ -217,7 +216,7 @@ object ArrayFIF : CompositeFIF() {
|
||||
else {
|
||||
JsAstUtils.invokeKotlinFunction(if (type == CHAR) "untypedCharArrayF" else "newArrayF", size, fn)
|
||||
}
|
||||
invocation.inlineStrategy = InlineStrategy.IN_PLACE
|
||||
invocation.isInline = true
|
||||
val descriptor = callInfo.resolvedCall.resultingDescriptor.original
|
||||
val resolvedDescriptor = when (descriptor) {
|
||||
is TypeAliasConstructorDescriptor -> descriptor.underlyingConstructorDescriptor
|
||||
@@ -235,4 +234,4 @@ object ArrayFIF : CompositeFIF() {
|
||||
return f(callInfo, arguments, context)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsExpression
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsNameRef
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.inlineStrategy
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.isInline
|
||||
import org.jetbrains.kotlin.js.descriptorUtils.isCoroutineLambda
|
||||
import org.jetbrains.kotlin.js.translate.callTranslator.CallInfo
|
||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.js.translate.utils.TranslationUtils
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.isBuiltInCoroutineContext
|
||||
import org.jetbrains.kotlin.resolve.inline.InlineStrategy
|
||||
|
||||
object CoroutineContextFIF : FunctionIntrinsicFactory {
|
||||
override fun getIntrinsic(descriptor: FunctionDescriptor, context: TranslationContext): FunctionIntrinsic? {
|
||||
@@ -48,7 +47,7 @@ object CoroutineContextFIF : FunctionIntrinsicFactory {
|
||||
if (context.declarationDescriptor?.isCoroutineLambda == true) JsAstUtils.stateMachineReceiver()
|
||||
else TranslationUtils.translateContinuationArgument(context)
|
||||
)
|
||||
res.inlineStrategy = InlineStrategy.NOT_INLINE
|
||||
res.isInline = false
|
||||
return res
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,13 +20,14 @@ package org.jetbrains.kotlin.js.translate.utils
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.*
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.*
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.descriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.isInline
|
||||
import org.jetbrains.kotlin.js.backend.ast.metadata.psiElement
|
||||
import org.jetbrains.kotlin.js.inline.util.isCallInvocation
|
||||
import org.jetbrains.kotlin.js.translate.context.TranslationContext
|
||||
import org.jetbrains.kotlin.js.translate.reference.CallExpressionTranslator
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.inline.InlineStrategy
|
||||
|
||||
/**
|
||||
* Recursively walks expression and sets metadata for all invocations of descriptor.
|
||||
@@ -57,7 +58,7 @@ fun setInlineCallMetadata(
|
||||
|
||||
if (invocation.name in candidateNames || invocation.name?.descriptor?.original == descriptor.original) {
|
||||
invocation.descriptor = descriptor
|
||||
invocation.inlineStrategy = InlineStrategy.IN_PLACE
|
||||
invocation.isInline = true
|
||||
invocation.psiElement = psiElement
|
||||
}
|
||||
}
|
||||
@@ -81,9 +82,9 @@ fun setInlineCallMetadata(
|
||||
descriptor: CallableDescriptor,
|
||||
context: TranslationContext
|
||||
) {
|
||||
if (nameRef.inlineStrategy != null) return
|
||||
if (nameRef.isInline != null) return
|
||||
nameRef.descriptor = descriptor
|
||||
nameRef.inlineStrategy = InlineStrategy.IN_PLACE
|
||||
nameRef.isInline = true
|
||||
nameRef.psiElement = psiElement
|
||||
|
||||
context.addInlineCall(descriptor)
|
||||
|
||||
Reference in New Issue
Block a user