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
@@ -30,7 +30,6 @@ import java.io.FileInputStream
|
||||
import java.io.InputStream
|
||||
import java.io.InputStreamReader
|
||||
import java.util.*
|
||||
import org.jetbrains.kotlin.resolve.inline.InlineStrategy as KotlinInlineStrategy
|
||||
|
||||
class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterable<File>) {
|
||||
private val scope = JsRootScope(program)
|
||||
@@ -386,7 +385,7 @@ class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterable<Fi
|
||||
val qualifier = if (nameRefProto.hasQualifier()) deserialize(nameRefProto.qualifier) else null
|
||||
JsNameRef(deserializeName(nameRefProto.nameId), qualifier).apply {
|
||||
if (nameRefProto.hasInlineStrategy()) {
|
||||
inlineStrategy = map(nameRefProto.inlineStrategy)
|
||||
isInline = map(nameRefProto.inlineStrategy)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -396,7 +395,7 @@ class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterable<Fi
|
||||
val qualifier = if (propertyRefProto.hasQualifier()) deserialize(propertyRefProto.qualifier) else null
|
||||
JsNameRef(deserializeString(propertyRefProto.stringId), qualifier).apply {
|
||||
if (propertyRefProto.hasInlineStrategy()) {
|
||||
inlineStrategy = map(propertyRefProto.inlineStrategy)
|
||||
isInline = map(propertyRefProto.inlineStrategy)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -408,7 +407,7 @@ class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterable<Fi
|
||||
invocationProto.argumentList.map { deserialize(it) }
|
||||
).apply {
|
||||
if (invocationProto.hasInlineStrategy()) {
|
||||
inlineStrategy = map(invocationProto.inlineStrategy)
|
||||
isInline = map(invocationProto.inlineStrategy)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -541,11 +540,8 @@ class JsAstDeserializer(program: JsProgram, private val sourceRoots: Iterable<Fi
|
||||
SideEffects.PURE -> SideEffectKind.PURE
|
||||
}
|
||||
|
||||
private fun map(inlineStrategy: InlineStrategy) = when(inlineStrategy) {
|
||||
InlineStrategy.AS_FUNCTION -> KotlinInlineStrategy.AS_FUNCTION
|
||||
InlineStrategy.IN_PLACE -> KotlinInlineStrategy.IN_PLACE
|
||||
InlineStrategy.NOT_INLINE -> KotlinInlineStrategy.NOT_INLINE
|
||||
}
|
||||
private fun map(inlineStrategy: InlineStrategy) =
|
||||
inlineStrategy == InlineStrategy.AS_FUNCTION || inlineStrategy == InlineStrategy.IN_PLACE
|
||||
|
||||
private fun map(specialFunction: JsAstProtoBuf.SpecialFunction) = when(specialFunction) {
|
||||
JsAstProtoBuf.SpecialFunction.DEFINE_INLINE_FUNCTION -> SpecialFunction.DEFINE_INLINE_FUNCTION
|
||||
|
||||
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.serialization.js.ast.JsAstProtoBuf.UnaryOperation.Ty
|
||||
import java.io.File
|
||||
import java.io.OutputStream
|
||||
import java.util.*
|
||||
import org.jetbrains.kotlin.resolve.inline.InlineStrategy as KotlinInlineStrategy
|
||||
|
||||
class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsName>) -> Unit)?,
|
||||
private val pathResolver: (File) -> String) {
|
||||
@@ -418,13 +417,15 @@ class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsNam
|
||||
val name = nameRef.name
|
||||
val qualifier = nameRef.qualifier
|
||||
if (name != null) {
|
||||
if (qualifier != null || nameRef.inlineStrategy?.isInline == true) {
|
||||
if (qualifier != null || nameRef.isInline == true) {
|
||||
val nameRefBuilder = NameReference.newBuilder()
|
||||
nameRefBuilder.nameId = serialize(name)
|
||||
if (qualifier != null) {
|
||||
nameRefBuilder.qualifier = serialize(qualifier)
|
||||
}
|
||||
nameRef.inlineStrategy?.let { nameRefBuilder.inlineStrategy = map(it) }
|
||||
nameRef.isInline?.let {
|
||||
nameRefBuilder.inlineStrategy = if (it) InlineStrategy.IN_PLACE else InlineStrategy.NOT_INLINE
|
||||
}
|
||||
builder.nameReference = nameRefBuilder.build()
|
||||
}
|
||||
else {
|
||||
@@ -435,7 +436,9 @@ class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsNam
|
||||
val propertyRefBuilder = PropertyReference.newBuilder()
|
||||
propertyRefBuilder.stringId = serialize(nameRef.ident)
|
||||
qualifier?.let { propertyRefBuilder.qualifier = serialize(it) }
|
||||
nameRef.inlineStrategy?.let { propertyRefBuilder.inlineStrategy = map(it) }
|
||||
nameRef.isInline?.let {
|
||||
propertyRefBuilder.inlineStrategy = if (it) InlineStrategy.IN_PLACE else InlineStrategy.NOT_INLINE
|
||||
}
|
||||
builder.propertyReference = propertyRefBuilder.build()
|
||||
}
|
||||
}
|
||||
@@ -444,10 +447,8 @@ class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsNam
|
||||
val invocationBuilder = Invocation.newBuilder()
|
||||
invocationBuilder.qualifier = serialize(invocation.qualifier)
|
||||
invocation.arguments.forEach { invocationBuilder.addArgument(serialize(it)) }
|
||||
invocation.inlineStrategy?.let { inlineStrategy ->
|
||||
if (inlineStrategy != KotlinInlineStrategy.NOT_INLINE) {
|
||||
invocationBuilder.inlineStrategy = map(inlineStrategy)
|
||||
}
|
||||
if (invocation.isInline == true) {
|
||||
invocationBuilder.inlineStrategy = InlineStrategy.IN_PLACE
|
||||
}
|
||||
builder.invocation = invocationBuilder.build()
|
||||
}
|
||||
@@ -584,12 +585,6 @@ class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsNam
|
||||
SideEffectKind.PURE -> SideEffects.PURE
|
||||
}
|
||||
|
||||
private fun map(inlineStrategy: KotlinInlineStrategy) = when (inlineStrategy) {
|
||||
KotlinInlineStrategy.AS_FUNCTION -> InlineStrategy.AS_FUNCTION
|
||||
KotlinInlineStrategy.IN_PLACE -> InlineStrategy.IN_PLACE
|
||||
KotlinInlineStrategy.NOT_INLINE -> InlineStrategy.NOT_INLINE
|
||||
}
|
||||
|
||||
private fun map(specialFunction: SpecialFunction) = when (specialFunction) {
|
||||
SpecialFunction.DEFINE_INLINE_FUNCTION -> JsAstProtoBuf.SpecialFunction.DEFINE_INLINE_FUNCTION
|
||||
SpecialFunction.WRAP_FUNCTION -> JsAstProtoBuf.SpecialFunction.WRAP_FUNCTION
|
||||
@@ -685,4 +680,4 @@ class JsAstSerializer(private val jsAstValidator: ((JsProgramFragment, Set<JsNam
|
||||
|
||||
return JsLocation(path, startLine, startChar)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user