IR: move UniqId to ir.tree module
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
package org.jetbrains.kotlin.ir.util
|
||||||
|
|
||||||
|
// This is an abstract uniqIdIndex any serialized IR declarations gets.
|
||||||
|
// It is either isLocal and then just gets and ordinary number within its module.
|
||||||
|
// Or is visible across modules and then gets a hash of mangled name as its index.
|
||||||
|
|
||||||
|
inline class UniqId(val index: Long) {
|
||||||
|
val isPublic: Boolean get() = (index and (1L shl 63)) != 0L
|
||||||
|
val isLocal: Boolean get() = (index and (1L shl 63)) == 0L
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
val NONE = UniqId(0x7fffffffL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
|||||||
import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyDeclarationBase
|
import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyDeclarationBase
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
||||||
|
import org.jetbrains.kotlin.ir.util.UniqId
|
||||||
|
|
||||||
class DescriptorTable {
|
class DescriptorTable {
|
||||||
private val descriptors = mutableMapOf<DeclarationDescriptor, Long>()
|
private val descriptors = mutableMapOf<DeclarationDescriptor, Long>()
|
||||||
|
|||||||
+1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.descriptors.*
|
|||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
||||||
|
import org.jetbrains.kotlin.ir.util.UniqId
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|||||||
-9
@@ -10,15 +10,6 @@ import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf
|
|||||||
import org.jetbrains.kotlin.protobuf.GeneratedMessageLite
|
import org.jetbrains.kotlin.protobuf.GeneratedMessageLite
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.*
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.*
|
||||||
|
|
||||||
// This is an abstract uniqIdIndex any serialized IR declarations gets.
|
|
||||||
// It is either isLocal and then just gets and ordinary number within its module.
|
|
||||||
// Or is visible across modules and then gets a hash of mangled name as its index.
|
|
||||||
|
|
||||||
inline class UniqId(val index: Long) {
|
|
||||||
val isPublic: Boolean get() = (index and (1L shl 63)) != 0L
|
|
||||||
val isLocal: Boolean get() = (index and (1L shl 63)) == 0L
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <T, M : GeneratedMessageLite.ExtendableMessage<M>> M.tryGetExtension(extension: GeneratedMessageLite.GeneratedExtension<M, T>) =
|
fun <T, M : GeneratedMessageLite.ExtendableMessage<M>> M.tryGetExtension(extension: GeneratedMessageLite.GeneratedExtension<M, T>) =
|
||||||
if (this.hasExtension(extension)) this.getExtension<T>(extension) else null
|
if (this.hasExtension(extension)) this.getExtension<T>(extension) else null
|
||||||
|
|
||||||
|
|||||||
+1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
|
import org.jetbrains.kotlin.ir.util.UniqId
|
||||||
import org.jetbrains.kotlin.ir.util.render
|
import org.jetbrains.kotlin.ir.util.render
|
||||||
|
|
||||||
class JsUniqIdClashTracker : UniqIdClashTracker {
|
class JsUniqIdClashTracker : UniqIdClashTracker {
|
||||||
|
|||||||
+1
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.descriptors.konan.kotlinLibrary
|
|||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
import org.jetbrains.kotlin.ir.util.KotlinMangler
|
||||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||||
|
import org.jetbrains.kotlin.ir.util.UniqId
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isPublishedApi
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isPublishedApi
|
||||||
|
|
||||||
class JsIrLinker(
|
class JsIrLinker(
|
||||||
|
|||||||
Reference in New Issue
Block a user