Move KmModuleFragment to an internal.common package
because it is klib-related and can be read only with KotlinCommonMetadata.
This commit is contained in:
committed by
Space Team
parent
c3d363d1b8
commit
0cfe2b04f5
+1
@@ -6,6 +6,7 @@ package org.jetbrains.kotlin.native.interop.gen
|
|||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.klib.*
|
import kotlinx.metadata.klib.*
|
||||||
|
import kotlinx.metadata.internal.common.*
|
||||||
import org.jetbrains.kotlin.metadata.serialization.Interner
|
import org.jetbrains.kotlin.metadata.serialization.Interner
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
package org.jetbrains.kotlin.native.interop.gen.jvm
|
package org.jetbrains.kotlin.native.interop.gen.jvm
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.KlibModuleFragmentWriteStrategy
|
import kotlinx.metadata.klib.KlibModuleFragmentWriteStrategy
|
||||||
import kotlinx.metadata.klib.KlibModuleMetadata
|
import kotlinx.metadata.klib.KlibModuleMetadata
|
||||||
import kotlinx.metadata.klib.className
|
import kotlinx.metadata.klib.className
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ package org.jetbrains.kotlin.native.interop.gen
|
|||||||
|
|
||||||
import kotlinx.metadata.KmAnnotationArgument
|
import kotlinx.metadata.KmAnnotationArgument
|
||||||
import kotlinx.metadata.KmClassifier
|
import kotlinx.metadata.KmClassifier
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.compileTimeValue
|
import kotlinx.metadata.klib.compileTimeValue
|
||||||
import org.jetbrains.kotlin.native.interop.indexer.FunctionDecl
|
import org.jetbrains.kotlin.native.interop.indexer.FunctionDecl
|
||||||
import org.jetbrains.kotlin.native.interop.indexer.IntegerConstantDef
|
import org.jetbrains.kotlin.native.interop.indexer.IntegerConstantDef
|
||||||
|
|||||||
@@ -682,30 +682,6 @@ public abstract class kotlinx/metadata/KmLambdaVisitor {
|
|||||||
public fun visitFunction (ILjava/lang/String;)Lkotlinx/metadata/KmFunctionVisitor;
|
public fun visitFunction (ILjava/lang/String;)Lkotlinx/metadata/KmFunctionVisitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class kotlinx/metadata/KmModuleFragment : kotlinx/metadata/KmModuleFragmentVisitor {
|
|
||||||
public fun <init> ()V
|
|
||||||
public final fun accept (Lkotlinx/metadata/KmModuleFragmentVisitor;)V
|
|
||||||
public final fun getClasses ()Ljava/util/List;
|
|
||||||
public final fun getPkg ()Lkotlinx/metadata/KmPackage;
|
|
||||||
public final fun setPkg (Lkotlinx/metadata/KmPackage;)V
|
|
||||||
public fun visitClass ()Lkotlinx/metadata/KmClassVisitor;
|
|
||||||
public fun visitExtensions (Lkotlinx/metadata/KmExtensionType;)Lkotlinx/metadata/KmModuleFragmentExtensionVisitor;
|
|
||||||
public fun visitPackage ()Lkotlinx/metadata/KmPackageVisitor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract interface class kotlinx/metadata/KmModuleFragmentExtensionVisitor : kotlinx/metadata/KmExtensionVisitor {
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class kotlinx/metadata/KmModuleFragmentVisitor {
|
|
||||||
public fun <init> ()V
|
|
||||||
public fun <init> (Lkotlinx/metadata/KmModuleFragmentVisitor;)V
|
|
||||||
public synthetic fun <init> (Lkotlinx/metadata/KmModuleFragmentVisitor;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
|
||||||
public fun visitClass ()Lkotlinx/metadata/KmClassVisitor;
|
|
||||||
public fun visitEnd ()V
|
|
||||||
public fun visitExtensions (Lkotlinx/metadata/KmExtensionType;)Lkotlinx/metadata/KmModuleFragmentExtensionVisitor;
|
|
||||||
public fun visitPackage ()Lkotlinx/metadata/KmPackageVisitor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class kotlinx/metadata/KmPackage : kotlinx/metadata/KmPackageVisitor, kotlinx/metadata/KmDeclarationContainer {
|
public final class kotlinx/metadata/KmPackage : kotlinx/metadata/KmPackageVisitor, kotlinx/metadata/KmDeclarationContainer {
|
||||||
public fun <init> ()V
|
public fun <init> ()V
|
||||||
public final fun accept (Lkotlinx/metadata/KmPackageVisitor;)V
|
public final fun accept (Lkotlinx/metadata/KmPackageVisitor;)V
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ abstract class KmModuleVisitor(private val delegate: KmModuleVisitor? = null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a Kotlin JVM module file.
|
* Represents a Kotlin JVM module file (`.kotlin_module` extension).
|
||||||
*/
|
*/
|
||||||
@UnstableMetadataApi
|
@UnstableMetadataApi
|
||||||
class KmModule : KmModuleVisitor() {
|
class KmModule : KmModuleVisitor() {
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package kotlinx.metadata.jvm.internal
|
|||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.internal.*
|
import kotlinx.metadata.internal.*
|
||||||
|
import kotlinx.metadata.internal.common.*
|
||||||
import kotlinx.metadata.internal.extensions.*
|
import kotlinx.metadata.internal.extensions.*
|
||||||
import kotlinx.metadata.jvm.*
|
import kotlinx.metadata.jvm.*
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
|
|||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package kotlinx.metadata.klib
|
package kotlinx.metadata.klib
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
|
|
||||||
class ChunkedKlibModuleFragmentWriteStrategy(
|
class ChunkedKlibModuleFragmentWriteStrategy(
|
||||||
private val topLevelClassifierDeclarationsPerFile: Int = 64,
|
private val topLevelClassifierDeclarationsPerFile: Int = 64,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
package kotlinx.metadata.klib
|
package kotlinx.metadata.klib
|
||||||
|
|
||||||
import kotlinx.metadata.KmAnnotation
|
import kotlinx.metadata.KmAnnotation
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.internal.*
|
import kotlinx.metadata.internal.*
|
||||||
import kotlinx.metadata.klib.impl.*
|
import kotlinx.metadata.klib.impl.*
|
||||||
import org.jetbrains.kotlin.library.metadata.parseModuleHeader
|
import org.jetbrains.kotlin.library.metadata.parseModuleHeader
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
package kotlinx.metadata.klib.impl
|
package kotlinx.metadata.klib.impl
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragmentExtensionVisitor
|
||||||
import kotlinx.metadata.internal.extensions.*
|
import kotlinx.metadata.internal.extensions.*
|
||||||
import kotlinx.metadata.klib.*
|
import kotlinx.metadata.klib.*
|
||||||
|
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package kotlinx.metadata.klib.impl
|
|||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.internal.*
|
import kotlinx.metadata.internal.*
|
||||||
|
import kotlinx.metadata.internal.common.*
|
||||||
import kotlinx.metadata.internal.extensions.*
|
import kotlinx.metadata.internal.extensions.*
|
||||||
import kotlinx.metadata.klib.*
|
import kotlinx.metadata.klib.*
|
||||||
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf
|
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
package kotlinx.metadata.klib
|
package kotlinx.metadata.klib
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.impl.klibExtensions
|
import kotlinx.metadata.klib.impl.klibExtensions
|
||||||
|
|
||||||
val KmFunction.annotations: MutableList<KmAnnotation>
|
val KmFunction.annotations: MutableList<KmAnnotation>
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@
|
|||||||
package kotlinx.metadata.klib
|
package kotlinx.metadata.klib
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragmentExtensionVisitor
|
||||||
|
|
||||||
abstract class KlibFunctionExtensionVisitor : KmFunctionExtensionVisitor {
|
abstract class KlibFunctionExtensionVisitor : KmFunctionExtensionVisitor {
|
||||||
|
|
||||||
|
|||||||
@@ -69,12 +69,6 @@ interface KmClassExtensionVisitor : KmDeclarationContainerExtensionVisitor
|
|||||||
@Deprecated(VISITOR_API_MESSAGE)
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
interface KmPackageExtensionVisitor : KmDeclarationContainerExtensionVisitor
|
interface KmPackageExtensionVisitor : KmDeclarationContainerExtensionVisitor
|
||||||
|
|
||||||
/**
|
|
||||||
* A visitor to visit platform-specific extensions for a module fragment.
|
|
||||||
*/
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
interface KmModuleFragmentExtensionVisitor : KmExtensionVisitor
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A visitor to visit platform-specific extensions for a function.
|
* A visitor to visit platform-specific extensions for a function.
|
||||||
*/
|
*/
|
||||||
|
|||||||
+105
-3
@@ -6,15 +6,22 @@
|
|||||||
|
|
||||||
package kotlinx.metadata.internal.common
|
package kotlinx.metadata.internal.common
|
||||||
|
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.KmModuleFragmentVisitor
|
import kotlinx.metadata.VISITOR_API_MESSAGE
|
||||||
import kotlinx.metadata.internal.accept
|
import kotlinx.metadata.internal.accept
|
||||||
|
import kotlinx.metadata.internal.extensions.KmModuleFragmentExtension
|
||||||
|
import kotlinx.metadata.internal.extensions.MetadataExtensions
|
||||||
|
import kotlinx.metadata.internal.extensions.singleOfType
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.builtins.readBuiltinsPackageFragment
|
import org.jetbrains.kotlin.metadata.builtins.readBuiltinsPackageFragment
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl
|
import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl
|
||||||
import java.io.ByteArrayInputStream
|
import java.io.ByteArrayInputStream
|
||||||
|
|
||||||
// TODO: stabilize
|
/**
|
||||||
|
* Reads metadata that is not from annotation nor from `.kotlin_module` file.
|
||||||
|
* Usually such metadata comes from serialized klibs. However, special `kotlin_builtins` file from standard library
|
||||||
|
* distribution can also be read with this reader.
|
||||||
|
*/
|
||||||
class KotlinCommonMetadata private constructor(private val proto: ProtoBuf.PackageFragment) {
|
class KotlinCommonMetadata private constructor(private val proto: ProtoBuf.PackageFragment) {
|
||||||
fun toKmModuleFragment(): KmModuleFragment =
|
fun toKmModuleFragment(): KmModuleFragment =
|
||||||
KmModuleFragment().apply(this::accept)
|
KmModuleFragment().apply(this::accept)
|
||||||
@@ -44,3 +51,98 @@ class KotlinCommonMetadata private constructor(private val proto: ProtoBuf.Packa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Kotlin module fragment.
|
||||||
|
*
|
||||||
|
* Do not confuse with `KmModule`: while KmModule represents JVM-specific `.kotlin_module` file, KmModuleFragment is not platform-specific.
|
||||||
|
* It usually represents metadata serialized to klib or part of klib,
|
||||||
|
* but also may represent a special `.kotlin_builtins` file that can be encountered only in standard library.
|
||||||
|
*
|
||||||
|
* Can be read with [KotlinCommonMetadata.read].
|
||||||
|
*/
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
class KmModuleFragment : KmModuleFragmentVisitor() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Top-level functions, type aliases and properties in the module fragment.
|
||||||
|
*/
|
||||||
|
var pkg: KmPackage? = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Classes in the module fragment.
|
||||||
|
*/
|
||||||
|
val classes: MutableList<KmClass> = ArrayList()
|
||||||
|
|
||||||
|
private val extensions: List<KmModuleFragmentExtension> =
|
||||||
|
MetadataExtensions.INSTANCES.map(MetadataExtensions::createModuleFragmentExtensions)
|
||||||
|
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
override fun visitPackage(): KmPackageVisitor? =
|
||||||
|
KmPackage().also { pkg = it }
|
||||||
|
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
override fun visitExtensions(type: KmExtensionType): KmModuleFragmentExtensionVisitor? =
|
||||||
|
extensions.singleOfType(type)
|
||||||
|
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
override fun visitClass(): KmClassVisitor? =
|
||||||
|
KmClass().addTo(classes)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Populates the given visitor with data in this module fragment.
|
||||||
|
*
|
||||||
|
* @param visitor the visitor which will visit data in the module fragment.
|
||||||
|
*/
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
fun accept(visitor: KmModuleFragmentVisitor) {
|
||||||
|
pkg?.let { visitor.visitPackage()?.let(it::accept) }
|
||||||
|
classes.forEach { visitor.visitClass()?.let(it::accept) }
|
||||||
|
extensions.forEach { visitor.visitExtensions(it.type)?.let(it::accept) }
|
||||||
|
visitor.visitEnd()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A visitor to visit module fragments. The module fragment can have no more than one package, and any number of classes,
|
||||||
|
* and must have at least one declaration.
|
||||||
|
*
|
||||||
|
* When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods.
|
||||||
|
*/
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
abstract class KmModuleFragmentVisitor @JvmOverloads constructor(private val delegate: KmModuleFragmentVisitor? = null) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visits a package within the module fragment.
|
||||||
|
*/
|
||||||
|
open fun visitPackage(): KmPackageVisitor? =
|
||||||
|
delegate?.visitPackage()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visits a class within the module fragment.
|
||||||
|
*/
|
||||||
|
open fun visitClass(): KmClassVisitor? =
|
||||||
|
delegate?.visitClass()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visits the extensions of the given type on the module fragment.
|
||||||
|
*
|
||||||
|
* @param type the type of extension visitor to be returned.
|
||||||
|
*/
|
||||||
|
open fun visitExtensions(type: KmExtensionType): KmModuleFragmentExtensionVisitor? =
|
||||||
|
delegate?.visitExtensions(type)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visits the end of the module fragment.
|
||||||
|
*/
|
||||||
|
open fun visitEnd() {
|
||||||
|
delegate?.visitEnd()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A visitor to visit platform-specific extensions for a module fragment.
|
||||||
|
*/
|
||||||
|
@Deprecated(VISITOR_API_MESSAGE)
|
||||||
|
interface KmModuleFragmentExtensionVisitor : KmExtensionVisitor
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package kotlinx.metadata.internal.extensions
|
|||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.internal.*
|
import kotlinx.metadata.internal.*
|
||||||
|
import kotlinx.metadata.internal.common.*
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
package kotlinx.metadata.internal.extensions
|
package kotlinx.metadata.internal.extensions
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragmentExtensionVisitor
|
||||||
|
|
||||||
interface KmExtension<V : KmExtensionVisitor> : KmExtensionVisitor {
|
interface KmExtension<V : KmExtensionVisitor> : KmExtensionVisitor {
|
||||||
fun accept(visitor: V)
|
fun accept(visitor: V)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ package kotlinx.metadata.internal
|
|||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.Flags // Don't remove this import. See KT-45553
|
import kotlinx.metadata.Flags // Don't remove this import. See KT-45553
|
||||||
import kotlinx.metadata.internal.extensions.MetadataExtensions
|
import kotlinx.metadata.internal.extensions.MetadataExtensions
|
||||||
import kotlinx.metadata.internal.IgnoreInApiDump
|
import kotlinx.metadata.internal.common.KmModuleFragmentVisitor
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.*
|
import org.jetbrains.kotlin.metadata.deserialization.*
|
||||||
import kotlin.contracts.ExperimentalContracts
|
import kotlin.contracts.ExperimentalContracts
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
package kotlinx.metadata.internal
|
package kotlinx.metadata.internal
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragmentExtensionVisitor
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragmentVisitor
|
||||||
import kotlinx.metadata.internal.extensions.applySingleExtension
|
import kotlinx.metadata.internal.extensions.applySingleExtension
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
|
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
|
||||||
|
|||||||
@@ -220,7 +220,9 @@ class KmClass : KmClassVisitor(), KmDeclarationContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a Kotlin package fragment, including single file facades and multi-file class parts.
|
* Represents a Kotlin package fragment that contains top-level functions, properties and type aliases.
|
||||||
|
* Package fragments are produced from single file facades and multi-file class parts.
|
||||||
|
* Note that a package fragment does not contain any classes, as classes are not a part of file facades and have their own metadata.
|
||||||
*/
|
*/
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
class KmPackage : KmPackageVisitor(), KmDeclarationContainer {
|
class KmPackage : KmPackageVisitor(), KmDeclarationContainer {
|
||||||
@@ -273,51 +275,6 @@ class KmPackage : KmPackageVisitor(), KmDeclarationContainer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a Kotlin module fragment. This is used to represent metadata of a part of a module on platforms other than JVM.
|
|
||||||
*/
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
class KmModuleFragment : KmModuleFragmentVisitor() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Top-level functions, type aliases and properties in the module fragment.
|
|
||||||
*/
|
|
||||||
var pkg: KmPackage? = null
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Classes in the module fragment.
|
|
||||||
*/
|
|
||||||
val classes: MutableList<KmClass> = ArrayList()
|
|
||||||
|
|
||||||
private val extensions: List<KmModuleFragmentExtension> =
|
|
||||||
MetadataExtensions.INSTANCES.map(MetadataExtensions::createModuleFragmentExtensions)
|
|
||||||
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
override fun visitPackage(): KmPackageVisitor? =
|
|
||||||
KmPackage().also { pkg = it }
|
|
||||||
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
override fun visitExtensions(type: KmExtensionType): KmModuleFragmentExtensionVisitor? =
|
|
||||||
extensions.singleOfType(type)
|
|
||||||
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
override fun visitClass(): KmClassVisitor? =
|
|
||||||
KmClass().addTo(classes)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Populates the given visitor with data in this module fragment.
|
|
||||||
*
|
|
||||||
* @param visitor the visitor which will visit data in the module fragment.
|
|
||||||
*/
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
fun accept(visitor: KmModuleFragmentVisitor) {
|
|
||||||
pkg?.let { visitor.visitPackage()?.let(it::accept) }
|
|
||||||
classes.forEach { visitor.visitClass()?.let(it::accept) }
|
|
||||||
extensions.forEach { visitor.visitExtensions(it.type)?.let(it::accept) }
|
|
||||||
visitor.visitEnd()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a synthetic class generated for a Kotlin lambda.
|
* Represents a synthetic class generated for a Kotlin lambda.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -216,44 +216,6 @@ abstract class KmPackageVisitor @JvmOverloads constructor(delegate: KmPackageVis
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A visitor to visit module fragments. The module fragment can have no more than one package, and any number of classes,
|
|
||||||
* and must have at least one declaration.
|
|
||||||
*
|
|
||||||
* When using this class, [visitEnd] must be called exactly once and after calls to all other visit* methods.
|
|
||||||
*/
|
|
||||||
@Deprecated(VISITOR_API_MESSAGE)
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
abstract class KmModuleFragmentVisitor @JvmOverloads constructor(private val delegate: KmModuleFragmentVisitor? = null) {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Visits a package within the module fragment.
|
|
||||||
*/
|
|
||||||
open fun visitPackage(): KmPackageVisitor? =
|
|
||||||
delegate?.visitPackage()
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Visits a class within the module fragment.
|
|
||||||
*/
|
|
||||||
open fun visitClass(): KmClassVisitor? =
|
|
||||||
delegate?.visitClass()
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Visits the extensions of the given type on the module fragment.
|
|
||||||
*
|
|
||||||
* @param type the type of extension visitor to be returned.
|
|
||||||
*/
|
|
||||||
open fun visitExtensions(type: KmExtensionType): KmModuleFragmentExtensionVisitor? =
|
|
||||||
delegate?.visitExtensions(type)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Visits the end of the module fragment.
|
|
||||||
*/
|
|
||||||
open fun visitEnd() {
|
|
||||||
delegate?.visitEnd()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A visitor to visit the metadata of a synthetic class generated for a Kotlin lambda.
|
* A visitor to visit the metadata of a synthetic class generated for a Kotlin lambda.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.commonizer.metadata
|
package org.jetbrains.kotlin.commonizer.metadata
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.*
|
import kotlinx.metadata.klib.*
|
||||||
import org.jetbrains.kotlin.backend.common.serialization.metadata.DynamicTypeDeserializer
|
|
||||||
import org.jetbrains.kotlin.commonizer.cir.*
|
import org.jetbrains.kotlin.commonizer.cir.*
|
||||||
import org.jetbrains.kotlin.commonizer.metadata.TypeAliasExpansion.*
|
import org.jetbrains.kotlin.commonizer.metadata.TypeAliasExpansion.*
|
||||||
import org.jetbrains.kotlin.commonizer.utils.DEFAULT_SETTER_VALUE_NAME
|
import org.jetbrains.kotlin.commonizer.utils.DEFAULT_SETTER_VALUE_NAME
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.commonizer.metadata
|
package org.jetbrains.kotlin.commonizer.metadata
|
||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.KlibModuleMetadata
|
import kotlinx.metadata.klib.KlibModuleMetadata
|
||||||
import org.jetbrains.kotlin.commonizer.cir.*
|
import org.jetbrains.kotlin.commonizer.cir.*
|
||||||
import org.jetbrains.kotlin.commonizer.mergedtree.*
|
import org.jetbrains.kotlin.commonizer.mergedtree.*
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.commonizer.metadata.utils
|
|||||||
|
|
||||||
import com.intellij.util.containers.FactoryMap
|
import com.intellij.util.containers.FactoryMap
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.*
|
import kotlinx.metadata.klib.*
|
||||||
import org.jetbrains.kotlin.commonizer.metadata.utils.MetadataDeclarationsComparator.EntityKind.*
|
import org.jetbrains.kotlin.commonizer.metadata.utils.MetadataDeclarationsComparator.EntityKind.*
|
||||||
import org.jetbrains.kotlin.commonizer.metadata.utils.MetadataDeclarationsComparator.Mismatch
|
import org.jetbrains.kotlin.commonizer.metadata.utils.MetadataDeclarationsComparator.Mismatch
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.commonizer.tree.deserializer
|
package org.jetbrains.kotlin.commonizer.tree.deserializer
|
||||||
|
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.KlibModuleMetadata
|
import kotlinx.metadata.klib.KlibModuleMetadata
|
||||||
import kotlinx.metadata.klib.fqName
|
import kotlinx.metadata.klib.fqName
|
||||||
import org.jetbrains.kotlin.commonizer.cir.CirModule
|
import org.jetbrains.kotlin.commonizer.cir.CirModule
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.commonizer.tree.deserializer
|
package org.jetbrains.kotlin.commonizer.tree.deserializer
|
||||||
|
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import org.jetbrains.kotlin.commonizer.cir.CirPackage
|
import org.jetbrains.kotlin.commonizer.cir.CirPackage
|
||||||
import org.jetbrains.kotlin.commonizer.cir.CirPackageName
|
import org.jetbrains.kotlin.commonizer.cir.CirPackageName
|
||||||
import org.jetbrains.kotlin.commonizer.metadata.CirTypeResolver
|
import org.jetbrains.kotlin.commonizer.metadata.CirTypeResolver
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import com.intellij.util.containers.FactoryMap
|
|||||||
import kotlinx.metadata.Flag
|
import kotlinx.metadata.Flag
|
||||||
import kotlinx.metadata.KmAnnotation
|
import kotlinx.metadata.KmAnnotation
|
||||||
import kotlinx.metadata.KmClass
|
import kotlinx.metadata.KmClass
|
||||||
import kotlinx.metadata.KmModuleFragment
|
import kotlinx.metadata.internal.common.KmModuleFragment
|
||||||
import kotlinx.metadata.klib.klibEnumEntries
|
import kotlinx.metadata.klib.klibEnumEntries
|
||||||
import org.jetbrains.kotlin.commonizer.cir.CirEntityId
|
import org.jetbrains.kotlin.commonizer.cir.CirEntityId
|
||||||
import org.jetbrains.kotlin.commonizer.cir.CirName
|
import org.jetbrains.kotlin.commonizer.cir.CirName
|
||||||
|
|||||||
Reference in New Issue
Block a user