IR: make IrSymbol.isPublicApi an extension
This commit is contained in:
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.backend.common.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.*
|
||||
import org.jetbrains.kotlin.backend.common.ir.*
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.buildClass
|
||||
@@ -78,7 +78,7 @@ abstract class AbstractSuspendFunctionsLowering<C : CommonBackendContext>(val co
|
||||
// Suppress since it is used in native
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
protected fun IrCall.isReturnIfSuspendedCall() =
|
||||
symbol.isPublicApi && context.ir.symbols.returnIfSuspended.signature == symbol.signature
|
||||
symbol.signature == context.ir.symbols.returnIfSuspended.signature
|
||||
|
||||
private fun tryTransformSuspendFunction(element: IrElement) =
|
||||
|
||||
|
||||
@@ -323,8 +323,8 @@ class IrInterpreter(private val irBuiltIns: IrBuiltIns, private val bodyMap: Map
|
||||
}
|
||||
|
||||
private fun IrFunction.trySubstituteFunctionBody(): ExecutionResult? {
|
||||
if (!this.symbol.isPublicApi) return null
|
||||
val body = bodyMap[this.symbol.signature]
|
||||
val signature = this.symbol.signature ?: return null
|
||||
val body = bodyMap[signature]
|
||||
|
||||
return body?.let {
|
||||
try {
|
||||
|
||||
@@ -33,11 +33,11 @@ interface IrSymbol {
|
||||
val isBound: Boolean
|
||||
|
||||
val signature: IdSignature?
|
||||
|
||||
val isPublicApi: Boolean
|
||||
get() = signature != null
|
||||
}
|
||||
|
||||
val IrSymbol.isPublicApi: Boolean
|
||||
get() = signature != null
|
||||
|
||||
interface IrBindableSymbol<out D : DeclarationDescriptor, B : IrSymbolOwner> : IrSymbol {
|
||||
override val owner: B
|
||||
|
||||
|
||||
-3
@@ -19,9 +19,6 @@ class DescriptorlessExternalPackageFragmentSymbol : IrExternalPackageFragmentSym
|
||||
private var _owner: IrExternalPackageFragment? = null
|
||||
override val owner get() = _owner!!
|
||||
|
||||
override val isPublicApi: Boolean
|
||||
get() = TODO("Not yet implemented")
|
||||
|
||||
override val signature: IdSignature?
|
||||
get() = TODO("Not yet implemented")
|
||||
|
||||
|
||||
@@ -98,8 +98,8 @@ fun IrType.isCollection(): Boolean = isNotNullClassType(IdSignatureValues.collec
|
||||
fun IrType.isNothing(): Boolean = isNotNullClassType(IdSignatureValues.nothing)
|
||||
|
||||
fun IrType.isPrimitiveType(hasQuestionMark: Boolean = false): Boolean =
|
||||
(this is IrSimpleType && hasQuestionMark == this.hasQuestionMark) &&
|
||||
classOrNull?.takeIf(IrClassSymbol::isPublicApi)?.signature in idSignatureToPrimitiveType
|
||||
(this is IrSimpleType && hasQuestionMark == this.hasQuestionMark) &&
|
||||
classOrNull?.signature in idSignatureToPrimitiveType
|
||||
|
||||
fun IrType.isNullablePrimitiveType(): Boolean = isPrimitiveType(true)
|
||||
|
||||
|
||||
@@ -1112,8 +1112,8 @@ fun SymbolTable.noUnboundLeft(message: String) {
|
||||
val unbound = this.allUnbound
|
||||
assert(unbound.isEmpty()) {
|
||||
"$message\n" +
|
||||
unbound.map {
|
||||
"$it ${if (it.isPublicApi) it.signature.toString() else "NON-PUBLIC API $it"}"
|
||||
}.joinToString("\n")
|
||||
unbound.joinToString("\n") {
|
||||
"$it ${it.signature?.toString() ?: "NON-PUBLIC API $it"}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
-4
@@ -29,13 +29,16 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrPropertySymbolImpl
|
||||
import org.jetbrains.kotlin.ir.types.getClass
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
|
||||
class FakeOverrideGlobalDeclarationTable(signatureSerializer: IdSignatureSerializer)
|
||||
: GlobalDeclarationTable(signatureSerializer, signatureSerializer.mangler) {
|
||||
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
|
||||
class FakeOverrideGlobalDeclarationTable(
|
||||
signatureSerializer: IdSignatureSerializer
|
||||
) : GlobalDeclarationTable(signatureSerializer, signatureSerializer.mangler) {
|
||||
fun clear() = table.clear()
|
||||
}
|
||||
|
||||
class FakeOverrideDeclarationTable(
|
||||
signatureSerializer: IdSignatureSerializer,
|
||||
globalTable: FakeOverrideGlobalDeclarationTable = FakeOverrideGlobalDeclarationTable(signatureSerializer)
|
||||
|
||||
+3
-3
@@ -61,15 +61,15 @@ import org.jetbrains.kotlin.backend.common.serialization.proto.IrDynamicOperator
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrDynamicType as ProtoDynamicType
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrEnumConstructorCall as ProtoEnumConstructorCall
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrEnumEntry as ProtoEnumEntry
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorCallExpression as ProtoErrorCallExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorDeclaration as ProtoErrorDeclaration
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorExpression as ProtoErrorExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorType as ProtoErrorType
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrExpression as ProtoExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrField as ProtoField
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrFunction as ProtoFunction
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrFunctionBase as ProtoFunctionBase
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrFunctionExpression as ProtoFunctionExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorExpression as ProtoErrorExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorCallExpression as ProtoErrorCallExpression
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrErrorDeclaration as ProtoErrorDeclaration
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrFunctionReference as ProtoFunctionReference
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrGetClass as ProtoGetClass
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrGetEnumValue as ProtoGetEnumValue
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.ir.descriptors.IrAbstractFunctionFactory
|
||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.isPublicApi
|
||||
import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator
|
||||
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
@@ -167,4 +168,4 @@ class JvmIrLinker(
|
||||
override val moduleDependencies: Collection<IrModuleDeserializer> = dependencies
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user