diff --git a/CHANGELOG.md b/CHANGELOG.md index 223128527d..45adb851ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ * None. ### Enhancements -* None. +* Add support for persisting custom types using Realm type adapters. (Issue [#587](https://github.com/realm/realm-kotlin/issues/587)) ### Fixed * None. diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/Configuration.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/Configuration.kt index daf8e6a42f..1df547a9ed 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/Configuration.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/Configuration.kt @@ -25,6 +25,7 @@ import io.realm.kotlin.log.LogLevel import io.realm.kotlin.log.RealmLog import io.realm.kotlin.log.RealmLogger import io.realm.kotlin.types.BaseRealmObject +import io.realm.kotlin.types.RealmTypeAdapter import kotlinx.coroutines.CoroutineDispatcher import kotlin.reflect.KClass @@ -49,6 +50,16 @@ public fun interface CompactOnLaunchCallback { public fun shouldCompact(totalBytes: Long, usedBytes: Long): Boolean } +/** + * Builder for setting up any runtime type adapters. + */ +public class TypeAdapterBuilder { + internal val typeAdapters: MutableList> = mutableListOf() + public fun add(adapter: RealmTypeAdapter<*, *>) { + typeAdapters.add(adapter) + } +} + /** * This interface is used to write data to a Realm file when the file is first created. * It will be used in a way similar to using [Realm.writeBlocking]. @@ -196,6 +207,11 @@ public interface Configuration { */ public val initialRealmFileConfiguration: InitialRealmFileConfiguration? + /** + * List of types adapters that would be available in runtime. + */ + public val typeAdapters: List> + /** * Base class for configuration builders that holds properties available to both * [RealmConfiguration] and [SyncConfiguration]. @@ -238,6 +254,7 @@ public interface Configuration { protected var initialDataCallback: InitialDataCallback? = null protected var inMemory: Boolean = false protected var initialRealmFileConfiguration: InitialRealmFileConfiguration? = null + protected var typeAdapters: List> = listOf() /** * Sets the filename of the realm file. diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/RealmConfiguration.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/RealmConfiguration.kt index 4b46f62364..65fe6a270b 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/RealmConfiguration.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/RealmConfiguration.kt @@ -89,6 +89,14 @@ public interface RealmConfiguration : Configuration { public fun directory(directoryPath: String): Builder = apply { this.directory = directoryPath } + /** + * Sets the type adapters that would be available in runtime. + */ + public fun typeAdapters(block: TypeAdapterBuilder.() -> Unit): Builder = + apply { + this.typeAdapters = TypeAdapterBuilder().apply(block).typeAdapters + } + /** * Setting this will change the behavior of how migration exceptions are handled. Instead of * throwing an exception the on-disc Realm will be cleared and recreated with the new Realm @@ -192,7 +200,8 @@ public interface RealmConfiguration : Configuration { initialDataCallback, inMemory, initialRealmFileConfiguration, - realmLogger + realmLogger, + typeAdapters, ) } } diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/ConfigurationImpl.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/ConfigurationImpl.kt index 1c5fae2b73..e0b5f6b152 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/ConfigurationImpl.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/ConfigurationImpl.kt @@ -45,6 +45,7 @@ import io.realm.kotlin.internal.util.CoroutineDispatcherFactory import io.realm.kotlin.migration.AutomaticSchemaMigration import io.realm.kotlin.migration.RealmMigration import io.realm.kotlin.types.BaseRealmObject +import io.realm.kotlin.types.RealmTypeAdapter import kotlin.reflect.KClass // TODO Public due to being accessed from `library-sync` @@ -67,7 +68,8 @@ public open class ConfigurationImpl( override val isFlexibleSyncConfiguration: Boolean, inMemory: Boolean, initialRealmFileConfiguration: InitialRealmFileConfiguration?, - logger: ContextLogger + logger: ContextLogger, + override val typeAdapters: List>, ) : InternalConfiguration { override val path: String @@ -102,6 +104,7 @@ public open class ConfigurationImpl( override val initialDataCallback: InitialDataCallback? override val inMemory: Boolean override val initialRealmFileConfiguration: InitialRealmFileConfiguration? + override val typeAdapterMap: Map, RealmTypeAdapter<*, *>> override fun createNativeConfiguration(): RealmConfigurationPointer { val nativeConfig: RealmConfigurationPointer = RealmInterop.realm_config_new() @@ -148,6 +151,7 @@ public open class ConfigurationImpl( this.initialDataCallback = initialDataCallback this.inMemory = inMemory this.initialRealmFileConfiguration = initialRealmFileConfiguration + this.typeAdapterMap = typeAdapters.associateBy { it::class } // We need to freeze `compactOnLaunchCallback` reference on initial thread for Kotlin Native val compactCallback = compactOnLaunchCallback?.let { callback -> diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/Converters.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/Converters.kt index 7100685660..e6194ef8bb 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/Converters.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/Converters.kt @@ -36,6 +36,7 @@ import io.realm.kotlin.types.ObjectId import io.realm.kotlin.types.RealmAny import io.realm.kotlin.types.RealmInstant import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmTypeAdapter import io.realm.kotlin.types.RealmUUID import io.realm.kotlin.types.geo.GeoBox import io.realm.kotlin.types.geo.GeoCircle @@ -259,6 +260,29 @@ internal object IntConverter : CoreIntConverter, CompositeConverter() public inline fun intToLong(value: Int?): Long? = value?.toLong() public inline fun longToInt(value: Long?): Int? = value?.toInt() +public fun getTypeAdapter( + obj: RealmObjectReference, + adapterClass: KClass<*>, +): RealmTypeAdapter = + obj.owner.owner + .configuration + .typeAdapterMap.let { adapters -> + require(adapters.contains(adapterClass)) { "User provided adaptes don't contains adapter ${adapterClass.simpleName}" } + adapters[adapterClass] as RealmTypeAdapter + } + +public inline fun toRealm( + obj: RealmObjectReference, + adapterClass: KClass<*>, + userValue: Any?, +): Any? = getTypeAdapter(obj, adapterClass).toRealm(userValue) + +public inline fun fromRealm( + obj: RealmObjectReference, + adapterClass: KClass<*>, + realmValue: Any, +): Any? = getTypeAdapter(obj, adapterClass).toPublic(realmValue) + internal object RealmInstantConverter : PassThroughPublicConverter() { override inline fun fromRealmValue(realmValue: RealmValue): RealmInstant? = if (realmValue.isNull()) null else realmValueToRealmInstant(realmValue) diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/InternalConfiguration.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/InternalConfiguration.kt index 34c29c49bc..db5b75156e 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/InternalConfiguration.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/InternalConfiguration.kt @@ -21,6 +21,7 @@ import io.realm.kotlin.internal.interop.RealmConfigurationPointer import io.realm.kotlin.internal.interop.SchemaMode import io.realm.kotlin.internal.util.CoroutineDispatcherFactory import io.realm.kotlin.types.BaseRealmObject +import io.realm.kotlin.types.RealmTypeAdapter import kotlin.reflect.KClass /** @@ -36,6 +37,7 @@ public interface InternalConfiguration : Configuration { public val writeDispatcherFactory: CoroutineDispatcherFactory public val schemaMode: SchemaMode public val logger: ContextLogger + public val typeAdapterMap: Map, RealmTypeAdapter<*, *>> // Temporary work-around for https://github.com/realm/realm-kotlin/issues/724 public val isFlexibleSyncConfiguration: Boolean diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmConfigurationImpl.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmConfigurationImpl.kt index 8b0e620e2d..339b606e87 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmConfigurationImpl.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmConfigurationImpl.kt @@ -25,6 +25,7 @@ import io.realm.kotlin.internal.interop.SchemaMode import io.realm.kotlin.internal.util.CoroutineDispatcherFactory import io.realm.kotlin.migration.RealmMigration import io.realm.kotlin.types.BaseRealmObject +import io.realm.kotlin.types.RealmTypeAdapter import kotlin.reflect.KClass public const val REALM_FILE_EXTENSION: String = ".realm" @@ -47,7 +48,8 @@ internal class RealmConfigurationImpl( initialDataCallback: InitialDataCallback?, inMemory: Boolean, override val initialRealmFileConfiguration: InitialRealmFileConfiguration?, - logger: ContextLogger + logger: ContextLogger, + typeAdapters: List> ) : ConfigurationImpl( directory, name, @@ -69,6 +71,7 @@ internal class RealmConfigurationImpl( false, inMemory, initialRealmFileConfiguration, - logger + logger, + typeAdapters, ), RealmConfiguration diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmListInternal.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmListInternal.kt index 8f1e60a0a7..9a0b0e5c3b 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmListInternal.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmListInternal.kt @@ -41,6 +41,7 @@ import io.realm.kotlin.notifications.internal.UpdatedListImpl import io.realm.kotlin.query.RealmQuery import io.realm.kotlin.types.BaseRealmObject import io.realm.kotlin.types.RealmList +import io.realm.kotlin.types.RealmTypeAdapter import kotlinx.coroutines.channels.ProducerScope import kotlinx.coroutines.flow.Flow import kotlin.reflect.KClass @@ -249,6 +250,37 @@ internal interface ListOperator : CollectionOperator { fun copy(realmReference: RealmReference, nativePointer: RealmListPointer): ListOperator } +internal class TypeAdaptedListOperator( + private val listOperator: ListOperator, + private val typeAdapter: RealmTypeAdapter +) : ListOperator { + override val nativePointer: RealmListPointer by listOperator::nativePointer + override val mediator: Mediator by listOperator::mediator + override val realmReference: RealmReference by listOperator::realmReference + override val valueConverter: RealmValueConverter by lazy { throw IllegalStateException("TypeAdaptedListOperator does not have a valueConverter") } + + override fun get(index: Int): E = typeAdapter.toPublic(listOperator.get(index)) + + override fun copy( + realmReference: RealmReference, + nativePointer: RealmListPointer, + ): ListOperator = TypeAdaptedListOperator(listOperator.copy(realmReference, nativePointer), typeAdapter) + + override fun set( + index: Int, + element: E, + updatePolicy: UpdatePolicy, + cache: UnmanagedToManagedObjectCache, + ): E = typeAdapter.toPublic(listOperator.set(index, typeAdapter.toRealm(element), updatePolicy, cache)) + + override fun insert( + index: Int, + element: E, + updatePolicy: UpdatePolicy, + cache: UnmanagedToManagedObjectCache, + ) = listOperator.insert(index, typeAdapter.toRealm(element), updatePolicy, cache) +} + internal class PrimitiveListOperator( override val mediator: Mediator, override val realmReference: RealmReference, diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmMapInternal.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmMapInternal.kt index b6c8ff5b47..62343039d9 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmMapInternal.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmMapInternal.kt @@ -51,6 +51,7 @@ import io.realm.kotlin.types.BaseRealmObject import io.realm.kotlin.types.RealmAny import io.realm.kotlin.types.RealmDictionary import io.realm.kotlin.types.RealmMap +import io.realm.kotlin.types.RealmTypeAdapter import kotlinx.coroutines.channels.ProducerScope import kotlinx.coroutines.flow.Flow import kotlin.reflect.KClass @@ -286,6 +287,55 @@ internal interface MapOperator : CollectionOperator { fun copy(realmReference: RealmReference, nativePointer: RealmMapPointer): MapOperator } +internal class TypeAdaptedMapOperator( + val mapOperator: MapOperator, + val typeAdapter: RealmTypeAdapter +) : MapOperator { + override var modCount: Int by mapOperator::modCount + override val keyConverter: RealmValueConverter by mapOperator::keyConverter + override val nativePointer: RealmMapPointer by mapOperator::nativePointer + + override fun getEntryInternal(position: Int): Pair = mapOperator + .getEntryInternal(position) + .run { + Pair(first, typeAdapter.toPublic(second)) + } + + override fun copy( + realmReference: RealmReference, + nativePointer: RealmMapPointer, + ): MapOperator = TypeAdaptedMapOperator(mapOperator.copy(realmReference, nativePointer), typeAdapter) + + override fun areValuesEqual(expected: E?, actual: E?): Boolean = mapOperator.areValuesEqual( + expected?.let { typeAdapter.toRealm(it) }, actual?.let { typeAdapter.toRealm(it) } + ) + + override fun containsValueInternal(value: E): Boolean = mapOperator.containsValueInternal(typeAdapter.toRealm(value)) + + override fun getInternal(key: K): E? = mapOperator.getInternal(key) + ?.let { typeAdapter.toPublic(it) } + + override fun eraseInternal(key: K): Pair = mapOperator.eraseInternal(key).run { + Pair(first?.let { typeAdapter.toPublic(it) }, second) + } + + override fun insertInternal( + key: K, + value: E?, + updatePolicy: UpdatePolicy, + cache: UnmanagedToManagedObjectCache, + ): Pair = mapOperator.insertInternal( + key, + value?.let { typeAdapter.toRealm(it) }, updatePolicy, cache + ).run { + Pair(first?.let { typeAdapter.toPublic(it) }, second) + } + + override val mediator: Mediator by mapOperator::mediator + override val realmReference: RealmReference by mapOperator::realmReference + override val valueConverter: RealmValueConverter by lazy { throw IllegalStateException("TypeAdaptedMapOperator does not have a valueConverter") } +} + internal open class PrimitiveMapOperator constructor( override val mediator: Mediator, override val realmReference: RealmReference, diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmObjectHelper.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmObjectHelper.kt index 8351ee4be2..56e1fb9bc1 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmObjectHelper.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmObjectHelper.kt @@ -63,6 +63,7 @@ import io.realm.kotlin.types.RealmInstant import io.realm.kotlin.types.RealmList import io.realm.kotlin.types.RealmObject import io.realm.kotlin.types.RealmSet +import io.realm.kotlin.types.RealmTypeAdapter import io.realm.kotlin.types.RealmUUID import io.realm.kotlin.types.TypedRealmObject import org.mongodb.kbson.BsonObjectId @@ -364,25 +365,31 @@ internal object RealmObjectHelper { // Return type should be RealmList but causes compilation errors for native @Suppress("unused") // Called from generated code - internal inline fun getList( + internal inline fun getList( obj: RealmObjectReference, - propertyName: String - ): ManagedRealmList { - val elementType: KClass = R::class - val realmObjectCompanion = elementType.realmObjectCompanionOrNull() - val operatorType = if (realmObjectCompanion == null) { - if (elementType == RealmAny::class) { - CollectionOperatorType.REALM_ANY - } else { - CollectionOperatorType.PRIMITIVE + propertyName: String, + typeAdapter: RealmTypeAdapter? = null, + ): ManagedRealmList { + val storeType: KClass = S::class + + val realmObjectCompanion = storeType.realmObjectCompanionOrNull() + val operatorType = when { + realmObjectCompanion == null -> { + if (storeType == RealmAny::class) { + CollectionOperatorType.REALM_ANY + } else { + CollectionOperatorType.PRIMITIVE + } + } + realmObjectCompanion.io_realm_kotlin_classKind == RealmClassKind.EMBEDDED -> { + CollectionOperatorType.EMBEDDED_OBJECT + } + else -> { + CollectionOperatorType.REALM_OBJECT } - } else if (realmObjectCompanion.io_realm_kotlin_classKind == RealmClassKind.EMBEDDED) { - CollectionOperatorType.EMBEDDED_OBJECT - } else { - CollectionOperatorType.REALM_OBJECT } val propertyMetadata = obj.propertyInfoOrThrow(propertyName) - return getListByKey(obj, propertyMetadata, elementType, operatorType) + return getListByKey(obj, propertyMetadata, storeType, operatorType, typeAdapter) } @Suppress("unused") // Called from generated code @@ -397,25 +404,33 @@ internal object RealmObjectHelper { } @Suppress("LongParameterList") - internal fun getListByKey( + internal fun getListByKey( obj: RealmObjectReference, propertyMetadata: PropertyMetadata, - elementType: KClass, + storeType: KClass, operatorType: CollectionOperatorType, + typeAdapter: RealmTypeAdapter?, issueDynamicObject: Boolean = false, - issueDynamicMutableObject: Boolean = false - ): ManagedRealmList { + issueDynamicMutableObject: Boolean = false, + ): ManagedRealmList { val listPtr = RealmInterop.realm_get_list(obj.objectPointer, propertyMetadata.key) - val operator = createListOperator( - listPtr, - elementType, - propertyMetadata, - obj.mediator, - obj.owner, - operatorType, - issueDynamicObject, - issueDynamicMutableObject + + val storageOperator = createListOperator( + listPtr = listPtr, + clazz = storeType, + propertyMetadata = propertyMetadata, + mediator = obj.mediator, + realm = obj.owner, + operatorType = operatorType, + issueDynamicObject = issueDynamicObject, + issueDynamicMutableObject = issueDynamicMutableObject ) + + val operator = when (typeAdapter) { + null -> storageOperator as ListOperator + else -> TypeAdaptedListOperator(storageOperator, typeAdapter) + } + return ManagedRealmList(obj, listPtr, operator) } @@ -428,7 +443,7 @@ internal object RealmObjectHelper { realm: RealmReference, operatorType: CollectionOperatorType, issueDynamicObject: Boolean, - issueDynamicMutableObject: Boolean + issueDynamicMutableObject: Boolean, ): ListOperator { return when (operatorType) { CollectionOperatorType.PRIMITIVE -> PrimitiveListOperator( @@ -468,14 +483,15 @@ internal object RealmObjectHelper { } } - internal inline fun getSet( + internal inline fun getSet( obj: RealmObjectReference, - propertyName: String - ): ManagedRealmSet { - val elementType = R::class - val realmObjectCompanion = elementType.realmObjectCompanionOrNull() + propertyName: String, + typeAdapter: RealmTypeAdapter? = null, + ): ManagedRealmSet { + val storeType = S::class + val realmObjectCompanion = storeType.realmObjectCompanionOrNull() val operatorType = if (realmObjectCompanion == null) { - if (elementType == RealmAny::class) { + if (storeType == RealmAny::class) { CollectionOperatorType.REALM_ANY } else { CollectionOperatorType.PRIMITIVE @@ -484,20 +500,21 @@ internal object RealmObjectHelper { CollectionOperatorType.REALM_OBJECT } val propertyMetadata = obj.propertyInfoOrThrow(propertyName) - return getSetByKey(obj, propertyMetadata, elementType, operatorType) + return getSetByKey(obj, propertyMetadata, storeType, operatorType, typeAdapter) } @Suppress("LongParameterList") - internal fun getSetByKey( + internal fun getSetByKey( obj: RealmObjectReference, propertyMetadata: PropertyMetadata, - elementType: KClass, + elementType: KClass, operatorType: CollectionOperatorType, + typeAdapter: RealmTypeAdapter?, issueDynamicObject: Boolean = false, - issueDynamicMutableObject: Boolean = false - ): ManagedRealmSet { + issueDynamicMutableObject: Boolean = false, + ): ManagedRealmSet { val setPtr = RealmInterop.realm_get_set(obj.objectPointer, propertyMetadata.key) - val operator = createSetOperator( + val storageOperator = createSetOperator( setPtr, elementType, propertyMetadata, @@ -507,6 +524,10 @@ internal object RealmObjectHelper { issueDynamicObject, issueDynamicMutableObject, ) + val operator = when (typeAdapter) { + null -> storageOperator as SetOperator + else -> TypeAdaptedSetOperator(storageOperator, typeAdapter) + } return ManagedRealmSet(obj, setPtr, operator) } @@ -550,15 +571,16 @@ internal object RealmObjectHelper { } } - internal inline fun getDictionary( + internal inline fun getDictionary( obj: RealmObjectReference, - propertyName: String - ): ManagedRealmDictionary { - val elementType = R::class - val realmObjectCompanion = elementType.realmObjectCompanionOrNull() + propertyName: String, + typeAdapter: RealmTypeAdapter? = null, + ): ManagedRealmDictionary { + val storageType = S::class + val realmObjectCompanion = storageType.realmObjectCompanionOrNull() val propertyMetadata = obj.propertyInfoOrThrow(propertyName) val operatorType = if (realmObjectCompanion == null) { - if (elementType == RealmAny::class) { + if (storageType == RealmAny::class) { CollectionOperatorType.REALM_ANY } else { CollectionOperatorType.PRIMITIVE @@ -568,21 +590,22 @@ internal object RealmObjectHelper { } else { CollectionOperatorType.EMBEDDED_OBJECT } - return getDictionaryByKey(obj, propertyMetadata, elementType, operatorType) + return getDictionaryByKey(obj, propertyMetadata, storageType, operatorType, typeAdapter) } @Suppress("LongParameterList") - internal fun getDictionaryByKey( + internal fun getDictionaryByKey( obj: RealmObjectReference, propertyMetadata: PropertyMetadata, - elementType: KClass, + elementType: KClass, operatorType: CollectionOperatorType, + typeAdapter: RealmTypeAdapter?, issueDynamicObject: Boolean = false, issueDynamicMutableObject: Boolean = false - ): ManagedRealmDictionary { + ): ManagedRealmDictionary { val dictionaryPtr = RealmInterop.realm_get_dictionary(obj.objectPointer, propertyMetadata.key) - val operator = createDictionaryOperator( + val storageOperator = createDictionaryOperator( dictionaryPtr, elementType, propertyMetadata, @@ -592,6 +615,12 @@ internal object RealmObjectHelper { issueDynamicObject, issueDynamicMutableObject, ) + + val operator = when (typeAdapter) { + null -> storageOperator as MapOperator + else -> TypeAdaptedMapOperator(storageOperator, typeAdapter) + } + return ManagedRealmDictionary(obj, dictionaryPtr, operator) } @@ -661,15 +690,16 @@ internal object RealmObjectHelper { RealmInterop.realm_set_value(obj.objectPointer, key, transport, false) } - @Suppress("unused") // Called from generated code - internal inline fun setList( + @Suppress("unused", "LongParameterList") // Called from generated code + internal inline fun setList( obj: RealmObjectReference, col: String, - list: RealmList, + list: RealmList, + typeAdapter: RealmTypeAdapter? = null, updatePolicy: UpdatePolicy = UpdatePolicy.ALL, - cache: UnmanagedToManagedObjectCache = mutableMapOf() + cache: UnmanagedToManagedObjectCache = mutableMapOf(), ) { - val existingList = getList(obj, col) + val existingList = getList(obj, col, typeAdapter) if (list !is ManagedRealmList || !RealmInterop.realm_equals( existingList.nativePointer, list.nativePointer @@ -682,14 +712,16 @@ internal object RealmObjectHelper { } } - internal inline fun setSet( + @Suppress("LongParameterList") + internal inline fun setSet( obj: RealmObjectReference, col: String, - set: RealmSet, + set: RealmSet, + typeAdapter: RealmTypeAdapter? = null, updatePolicy: UpdatePolicy = UpdatePolicy.ALL, cache: UnmanagedToManagedObjectCache = mutableMapOf() ) { - val existingSet = getSet(obj, col) + val existingSet = getSet(obj, col, typeAdapter) if (set !is ManagedRealmSet || !RealmInterop.realm_equals( existingSet.nativePointer, set.nativePointer @@ -702,15 +734,17 @@ internal object RealmObjectHelper { } } - internal inline fun setDictionary( + @Suppress("LongParameterList") + internal inline fun setDictionary( obj: RealmObjectReference, col: String, - dictionary: RealmDictionary, + dictionary: RealmDictionary, + typeAdapter: RealmTypeAdapter? = null, updatePolicy: UpdatePolicy = UpdatePolicy.ALL, cache: UnmanagedToManagedObjectCache = mutableMapOf() ) { - val existingDictionary = getDictionary(obj, col) - if (dictionary !is ManagedRealmDictionary || !RealmInterop.realm_equals( + val existingDictionary = getDictionary(obj, col, typeAdapter) + if (dictionary !is ManagedRealmDictionary || !RealmInterop.realm_equals( existingDictionary.nativePointer, dictionary.nativePointer ) @@ -760,6 +794,7 @@ internal object RealmObjectHelper { return@forEach // Property is only visible on disk, ignore. } accessor as KMutableProperty1 + when (property.collectionType) { CollectionType.RLM_COLLECTION_TYPE_NONE -> when (property.type) { PropertyType.RLM_PROPERTY_TYPE_OBJECT -> { @@ -785,44 +820,72 @@ internal object RealmObjectHelper { ) } } + else -> { val getterValue = accessor.get(source) accessor.set(target, getterValue) } } + CollectionType.RLM_COLLECTION_TYPE_LIST -> { - // We cannot use setList as that requires the type, so we need to retrieve the - // existing list, wipe it and insert new elements - @Suppress("UNCHECKED_CAST") - (accessor.get(target) as ManagedRealmList) - .run { - clear() - val elements = accessor.get(source) as RealmList<*> - operator.insertAll(size, elements, updatePolicy, cache) + when (val managedList = accessor.get(target)) { + // We cannot use setList as that requires the type, so we need to retrieve the + // existing list, wipe it and insert new elements + is ManagedRealmList<*> -> { + managedList.clear() + val elements = accessor.get(source) as RealmList + managedList.operator.insertAll( + managedList.size, + elements, + updatePolicy, + cache + ) } + + else -> { + // Passthrough values when a property uses a custom type adapter, values will be converted automatically. + val getterValue = accessor.get(source) + accessor.set(target, getterValue) + } + } } + CollectionType.RLM_COLLECTION_TYPE_SET -> { - // We cannot use setSet as that requires the type, so we need to retrieve the - // existing set, wipe it and insert new elements - @Suppress("UNCHECKED_CAST") - (accessor.get(target) as ManagedRealmSet) - .run { - clear() - val elements = accessor.get(source) as RealmSet<*> - operator.addAll(elements, updatePolicy, cache) + when (val managedSet = accessor.get(target)) { + // We cannot use setSet as that requires the type, so we need to retrieve the + // existing set, wipe it and insert new elements + is ManagedRealmSet<*> -> { + managedSet.clear() + val elements = accessor.get(source) as RealmSet + managedSet.operator.addAll(elements, updatePolicy, cache) } + + else -> { + // Passthrough values when a property uses a custom type adapter, values will be converted automatically. + val getterValue = accessor.get(source) + accessor.set(target, getterValue) + } + } } + CollectionType.RLM_COLLECTION_TYPE_DICTIONARY -> { - // We cannot use setDictionary as that requires the type, so we need to retrieve - // the existing dictionary, wipe it and insert new elements - @Suppress("UNCHECKED_CAST") - (accessor.get(target) as ManagedRealmDictionary) - .run { - clear() - val elements = accessor.get(source) as RealmDictionary<*> - operator.putAll(elements, updatePolicy, cache) + when (val managedDictionary = accessor.get(target)) { + // We cannot use setDictionary as that requires the type, so we need to retrieve + // the existing dictionary, wipe it and insert new elements + is ManagedRealmDictionary<*> -> { + managedDictionary.clear() + val elements = accessor.get(source) as RealmDictionary + managedDictionary.operator.putAll(elements, updatePolicy, cache) + } + + else -> { + // Passthrough values when a property uses a custom type adapter, values will be converted automatically. + val getterValue = accessor.get(source) + accessor.set(target, getterValue) } + } } + else -> TODO("Collection type ${property.collectionType} is not supported") } } @@ -944,13 +1007,14 @@ internal object RealmObjectHelper { else -> CollectionOperatorType.EMBEDDED_OBJECT } @Suppress("UNCHECKED_CAST") - return getListByKey( - obj, - propertyMetadata, - clazz, - operatorType, - true, - issueDynamicMutableObject + return getListByKey( + obj = obj, + propertyMetadata = propertyMetadata, + storeType = clazz, + operatorType = operatorType, + typeAdapter = null, + issueDynamicObject = true, + issueDynamicMutableObject = issueDynamicMutableObject ) as RealmList } @@ -979,11 +1043,12 @@ internal object RealmObjectHelper { else -> throw IllegalStateException("RealmSets do not support Embedded Objects.") } @Suppress("UNCHECKED_CAST") - return getSetByKey( + return getSetByKey( obj, propertyMetadata, clazz, operatorType, + null, true, issueDynamicMutableObject ) as RealmSet @@ -1014,11 +1079,12 @@ internal object RealmObjectHelper { else -> CollectionOperatorType.EMBEDDED_OBJECT } @Suppress("UNCHECKED_CAST") - return getDictionaryByKey( + return getDictionaryByKey( obj, propertyMetadata, clazz, operatorType, + null, true, issueDynamicMutableObject ) as RealmDictionary diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmSetInternal.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmSetInternal.kt index 57337a8973..d3fcc3e753 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmSetInternal.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/RealmSetInternal.kt @@ -41,6 +41,7 @@ import io.realm.kotlin.notifications.internal.UpdatedSetImpl import io.realm.kotlin.query.RealmQuery import io.realm.kotlin.types.BaseRealmObject import io.realm.kotlin.types.RealmSet +import io.realm.kotlin.types.RealmTypeAdapter import kotlinx.coroutines.channels.ProducerScope import kotlinx.coroutines.flow.Flow import kotlin.reflect.KClass @@ -303,6 +304,33 @@ internal interface SetOperator : CollectionOperator { fun copy(realmReference: RealmReference, nativePointer: RealmSetPointer): SetOperator } +internal class TypeAdaptedSetOperator( + private val setOperator: SetOperator, + private val typeAdapter: RealmTypeAdapter, +) : SetOperator { + override var modCount: Int by setOperator::modCount + override val nativePointer: RealmSetPointer by setOperator::nativePointer + + override val mediator: Mediator by setOperator::mediator + override val realmReference: RealmReference by setOperator::realmReference + override val valueConverter: RealmValueConverter by lazy { throw IllegalStateException("TypeAdaptedSetOperator does not have a valueConverter") } + + override fun get(index: Int): E = typeAdapter.toPublic(setOperator.get(index)) + + override fun copy( + realmReference: RealmReference, + nativePointer: RealmSetPointer, + ): SetOperator = TypeAdaptedSetOperator(setOperator.copy(realmReference, nativePointer), typeAdapter) + + override fun contains(element: E): Boolean = setOperator.contains(typeAdapter.toRealm(element)) + + override fun addInternal( + element: E, + updatePolicy: UpdatePolicy, + cache: UnmanagedToManagedObjectCache, + ): Boolean = setOperator.addInternal(typeAdapter.toRealm(element), updatePolicy, cache) +} + internal class PrimitiveSetOperator( override val mediator: Mediator, override val realmReference: RealmReference, diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/schema/CachedClassKeyMap.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/schema/CachedClassKeyMap.kt index 7da918259f..a1ae2d6d0d 100644 --- a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/schema/CachedClassKeyMap.kt +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/internal/schema/CachedClassKeyMap.kt @@ -146,8 +146,8 @@ public class CachedClassMetadata( ).let { interopProperties -> properties = interopProperties.map { propertyInfo: PropertyInfo -> CachedPropertyMetadata( - propertyInfo, - companion?.io_realm_kotlin_fields?.get(propertyInfo.name) + propertyInfo = propertyInfo, + accessor = companion?.io_realm_kotlin_fields?.get(propertyInfo.name), ) } } @@ -168,7 +168,7 @@ public class CachedClassMetadata( public class CachedPropertyMetadata( propertyInfo: PropertyInfo, - override val accessor: KProperty1? = null + override val accessor: KProperty1? = null, ) : PropertyMetadata { override val name: String = propertyInfo.name override val publicName: String = propertyInfo.publicName diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/RealmTypeAdapter.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/RealmTypeAdapter.kt new file mode 100644 index 0000000000..9492e30889 --- /dev/null +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/RealmTypeAdapter.kt @@ -0,0 +1,94 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.realm.kotlin.types + +import io.realm.kotlin.RealmConfiguration +import io.realm.kotlin.types.annotations.TypeAdapter + +/** + * Interface that defines how to translate from a persisted Realm type to a user-defined one. + * + * In conjunction with the [TypeAdapter] annotation allows using non Realm types in Realm + * models. It takes to type parameters, the Realm type [R] that is the type that Realm + * would use to persist the data, and the public type [P] that would be adapted. + * + * Defining a type adapter with an invalid [R] Realm type would throw at compilation time. + * + * The type adapter resolution depending if the type adapter has been defined as a class or an + * object. When defined as an object the type adapter is resolved in compile time, whereas if defined + * as a class it will be resolved in runtime requiring the RealmConfiguration to hold an instance of + * the type adapter, see [RealmConfiguration.Builder.typeAdapters]. + * + * Example of a compile time adapter: + * + * ``` + * object RealmInstantDateAdapter: RealmTypeAdapter { + * override fun fromRealm(realmValue: RealmInstant): Date = TODO() + * + * override fun toRealm(value: Date): RealmInstant = TODO() + * } + * + * class MyObject: RealmObject { + * @TypeAdapter(RealmInstantDateAdapter::class) + * var date: Date = Date() + * } + * ``` + * + * Example of a runtime adapter: + * + * ``` + * class EncryptedStringAdapter( + * val encryptionKey: String, + * ) : RealmTypeAdapter { + * override fun fromRealm(realmValue: ByteArray): String = TODO() + * + * override fun toRealm(value: String): ByteArray = TODO() + * } + * + * class MyObject : RealmObject { + * @TypeAdapter(EncryptedStringAdapter::class) + * var secureString: String = "some content" + * } + * + * fun createRealmConfig() = + * RealmConfiguration + * .Builder(setOf(MyObject::class)) + * .typeAdapters { + * add(EncryptedStringAdapter("my encryption key")) + * } + * .build() + * ``` + * + * @param R Realm type. + * @param P Public type. + */ +public interface RealmTypeAdapter { // where S is a supported realm type + + /** + * Converts a value from Realm to the public type. + * + * @param value value to convert + */ + public fun toPublic(value: R): P + + /** + * Converts a value from a public type to Realm. + * + * @param value value to convert + */ + public fun toRealm(value: P): R +} diff --git a/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/annotations/TypeAdapter.kt b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/annotations/TypeAdapter.kt new file mode 100644 index 0000000000..e2828dbe0b --- /dev/null +++ b/packages/library-base/src/commonMain/kotlin/io/realm/kotlin/types/annotations/TypeAdapter.kt @@ -0,0 +1,71 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.realm.kotlin.types.annotations + +import io.realm.kotlin.types.RealmTypeAdapter +import kotlin.reflect.KClass + +@Retention(AnnotationRetention.SOURCE) +@Target(AnnotationTarget.PROPERTY, AnnotationTarget.CLASS, AnnotationTarget.TYPE) +@MustBeDocumented +/** + * Annotations marking a field to use a type adapter. + * + * [RealmTypeAdapter] allows using non Realm types in Realm schema models. Data would automatically be + * converted in and out using the type adapter defined by this annotation. + * + * Example of a compile time adapter: + * + * ``` + * object RealmInstantDateAdapter: RealmTypeAdapter { + * override fun fromRealm(realmValue: RealmInstant): Date = TODO() + * + * override fun toRealm(value: Date): RealmInstant = TODO() + * } + * + * class MyObject: RealmObject { + * @TypeAdapter(RealmInstantDateAdapter::class) + * var date: Date = Date() + * } + * ``` + * + * Example of a runtime adapter: + * + * ``` + * class EncryptedStringAdapter( + * val encryptionKey: String, + * ) : RealmTypeAdapter { + * override fun fromRealm(realmValue: ByteArray): String = TODO() + * + * override fun toRealm(value: String): ByteArray = TODO() + * } + * + * class MyObject : RealmObject { + * @TypeAdapter(EncryptedStringAdapter::class) + * var secureString: String = "some content" + * } + * + * fun createRealmConfig() = + * RealmConfiguration + * .Builder(setOf(MyObject::class)) + * .typeAdapters { + * add(EncryptedStringAdapter("my encryption key")) + * } + * .build() + * ``` + */ +public annotation class TypeAdapter(val adapter: KClass>) diff --git a/packages/library-sync/src/commonMain/kotlin/io/realm/kotlin/mongodb/sync/SyncConfiguration.kt b/packages/library-sync/src/commonMain/kotlin/io/realm/kotlin/mongodb/sync/SyncConfiguration.kt index 675fbf08a2..9566dae375 100644 --- a/packages/library-sync/src/commonMain/kotlin/io/realm/kotlin/mongodb/sync/SyncConfiguration.kt +++ b/packages/library-sync/src/commonMain/kotlin/io/realm/kotlin/mongodb/sync/SyncConfiguration.kt @@ -572,7 +572,8 @@ public interface SyncConfiguration : Configuration { partitionValue == null, inMemory, initialRealmFileConfiguration, - realmLogger + realmLogger, + typeAdapters, ) return SyncConfigurationImpl( diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/AccessorModifierIrGeneration.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/AccessorModifierIrGeneration.kt index ddf3f025f8..4d08c62a58 100644 --- a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/AccessorModifierIrGeneration.kt +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/AccessorModifierIrGeneration.kt @@ -16,51 +16,17 @@ package io.realm.kotlin.compiler -import io.realm.kotlin.compiler.ClassIds.ASYMMETRIC_OBJECT_INTERFACE -import io.realm.kotlin.compiler.ClassIds.EMBEDDED_OBJECT_INTERFACE import io.realm.kotlin.compiler.ClassIds.IGNORE_ANNOTATION -import io.realm.kotlin.compiler.ClassIds.KBSON_DECIMAL128 -import io.realm.kotlin.compiler.ClassIds.KBSON_OBJECT_ID -import io.realm.kotlin.compiler.ClassIds.REALM_ANY -import io.realm.kotlin.compiler.ClassIds.REALM_BACKLINKS -import io.realm.kotlin.compiler.ClassIds.REALM_DICTIONARY -import io.realm.kotlin.compiler.ClassIds.REALM_EMBEDDED_BACKLINKS -import io.realm.kotlin.compiler.ClassIds.REALM_INSTANT -import io.realm.kotlin.compiler.ClassIds.REALM_LIST -import io.realm.kotlin.compiler.ClassIds.REALM_MUTABLE_INTEGER -import io.realm.kotlin.compiler.ClassIds.REALM_OBJECT_HELPER -import io.realm.kotlin.compiler.ClassIds.REALM_OBJECT_ID -import io.realm.kotlin.compiler.ClassIds.REALM_OBJECT_INTERFACE -import io.realm.kotlin.compiler.ClassIds.REALM_SET -import io.realm.kotlin.compiler.ClassIds.REALM_UUID import io.realm.kotlin.compiler.ClassIds.TRANSIENT_ANNOTATION +import io.realm.kotlin.compiler.ClassIds.TYPE_ADAPTER_ANNOTATION import io.realm.kotlin.compiler.Names.OBJECT_REFERENCE -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_BOOLEAN -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_BYTE_ARRAY -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_DECIMAL128 -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_DOUBLE -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_FLOAT -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_INSTANT -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_LONG -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_OBJECT_ID -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_REALM_ANY -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_STRING -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_GET_UUID -import io.realm.kotlin.compiler.Names.REALM_ACCESSOR_HELPER_SET_VALUE -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_GET_DICTIONARY -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_GET_LIST -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_GET_MUTABLE_INT -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_GET_OBJECT -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_GET_SET -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_SET_DICTIONARY -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_SET_EMBEDDED_REALM_OBJECT -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_SET_LIST -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_SET_OBJECT -import io.realm.kotlin.compiler.Names.REALM_OBJECT_HELPER_SET_SET import io.realm.kotlin.compiler.Names.REALM_SYNTHETIC_PROPERTY_PREFIX -import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import io.realm.kotlin.compiler.Names.REALM_TYPE_ADAPTER_TO_PUBLIC +import io.realm.kotlin.compiler.Names.REALM_TYPE_ADAPTER_TO_REALM +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.IrBlockBuilder +import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope import org.jetbrains.kotlin.ir.builders.Scope import org.jetbrains.kotlin.ir.builders.irBlockBody import org.jetbrains.kotlin.ir.builders.irCall @@ -75,16 +41,25 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrProperty import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.declarations.IrValueParameter -import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor import org.jetbrains.kotlin.ir.descriptors.toIrBasedKotlinType import org.jetbrains.kotlin.ir.expressions.IrCall +import org.jetbrains.kotlin.ir.expressions.IrClassReference +import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrDeclarationReference +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrFunctionAccessExpression +import org.jetbrains.kotlin.ir.expressions.IrGetValue import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.expressions.impl.IrSetFieldImpl +import org.jetbrains.kotlin.ir.interpreter.getAnnotation import org.jetbrains.kotlin.ir.types.IrSimpleType +import org.jetbrains.kotlin.ir.types.IrStarProjection import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrTypeArgument +import org.jetbrains.kotlin.ir.types.classFqName +import org.jetbrains.kotlin.ir.types.getClass import org.jetbrains.kotlin.ir.types.impl.IrAbstractSimpleType +import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.ir.types.isBoolean import org.jetbrains.kotlin.ir.types.isByte import org.jetbrains.kotlin.ir.types.isByteArray @@ -98,120 +73,51 @@ import org.jetbrains.kotlin.ir.types.isShort import org.jetbrains.kotlin.ir.types.isString import org.jetbrains.kotlin.ir.types.isSubtypeOfClass import org.jetbrains.kotlin.ir.types.makeNotNull -import org.jetbrains.kotlin.ir.util.classId +import org.jetbrains.kotlin.ir.types.superTypes +import org.jetbrains.kotlin.ir.types.typeOrNull import org.jetbrains.kotlin.ir.util.defaultType +import org.jetbrains.kotlin.ir.util.findAnnotation import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid -import org.jetbrains.kotlin.name.CallableId -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.descriptorUtil.classId -import org.jetbrains.kotlin.types.KotlinType -import org.jetbrains.kotlin.types.StarProjectionImpl -import org.jetbrains.kotlin.types.isNullable -import org.jetbrains.kotlin.types.typeUtil.supertypes +import kotlin.IllegalStateException import kotlin.collections.set /** * Modifies the IR tree to transform getter/setter to call the C-Interop layer to retrieve read the managed values from the Realm * It also collect the schema information while processing the class properties. */ -class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { - - private val realmObjectHelper: IrClass = pluginContext.lookupClassOrThrow(REALM_OBJECT_HELPER) - private val realmListClass: IrClass = pluginContext.lookupClassOrThrow(REALM_LIST) - private val realmSetClass: IrClass = pluginContext.lookupClassOrThrow(REALM_SET) - private val realmDictionaryClass: IrClass = pluginContext.lookupClassOrThrow(REALM_DICTIONARY) - private val realmInstantClass: IrClass = pluginContext.lookupClassOrThrow(REALM_INSTANT) - private val realmBacklinksClass: IrClass = pluginContext.lookupClassOrThrow(REALM_BACKLINKS) - private val realmEmbeddedBacklinksClass: IrClass = pluginContext.lookupClassOrThrow(REALM_EMBEDDED_BACKLINKS) - private val realmObjectInterface = pluginContext.lookupClassOrThrow(REALM_OBJECT_INTERFACE).symbol - private val embeddedRealmObjectInterface = pluginContext.lookupClassOrThrow(EMBEDDED_OBJECT_INTERFACE).symbol - - private val objectIdClass: IrClass = pluginContext.lookupClassOrThrow(KBSON_OBJECT_ID) - private val decimal128Class: IrClass = pluginContext.lookupClassOrThrow(KBSON_DECIMAL128) - private val realmObjectIdClass: IrClass = pluginContext.lookupClassOrThrow(REALM_OBJECT_ID) - private val realmUUIDClass: IrClass = pluginContext.lookupClassOrThrow(REALM_UUID) - private val mutableRealmIntegerClass: IrClass = pluginContext.lookupClassOrThrow(REALM_MUTABLE_INTEGER) - private val realmAnyClass: IrClass = pluginContext.lookupClassOrThrow(REALM_ANY) - - // Primitive (Core) type getters - private val getString: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_STRING) - private val getLong: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_LONG) - private val getBoolean: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_BOOLEAN) - private val getFloat: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_FLOAT) - private val getDouble: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_DOUBLE) - private val getDecimal128: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_DECIMAL128) - private val getInstant: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_INSTANT) - private val getObjectId: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_OBJECT_ID) - private val getUUID: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_UUID) - private val getByteArray: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_BYTE_ARRAY) - private val getMutableInt: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_GET_MUTABLE_INT) - private val getRealmAny: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_GET_REALM_ANY) - private val getObject: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_GET_OBJECT) - - // Primitive (Core) type setters - private val setValue: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_ACCESSOR_HELPER_SET_VALUE) - private val setObject: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_SET_OBJECT) - private val setEmbeddedRealmObject: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_SET_EMBEDDED_REALM_OBJECT) - - // Getters and setters for collections - private val getList: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_GET_LIST) - private val setList: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_SET_LIST) - private val getSet: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_GET_SET) - private val setSet: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_SET_SET) - private val getDictionary: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_GET_DICTIONARY) - private val setDictionary: IrSimpleFunction = - realmObjectHelper.lookupFunction(REALM_OBJECT_HELPER_SET_DICTIONARY) - - // Top level SDK->Core converters - private val byteToLong: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("byteToLong"))).first().owner - private val charToLong: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("charToLong"))).first().owner - private val shortToLong: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("shortToLong"))).first().owner - private val intToLong: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("intToLong"))).first().owner - - // Top level Core->SDK converters - private val longToByte: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToByte"))).first().owner - private val longToChar: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToChar"))).first().owner - private val longToShort: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToShort"))).first().owner - private val longToInt: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToInt"))).first().owner - private val objectIdToRealmObjectId: IrSimpleFunction = - pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("objectIdToRealmObjectId"))).first().owner +class AccessorModifierIrGeneration(realmPluginContext: RealmPluginContext) : RealmPluginContext by realmPluginContext { private lateinit var objectReferenceProperty: IrProperty private lateinit var objectReferenceType: IrType + data class TypeAdapterMethodReferences( + val propertyType: IrType, + val toPublic: (IrBuilderWithScope.(IrGetValue, IrFunctionAccessExpression) -> IrDeclarationReference), + val fromPublic: (IrBuilderWithScope.(IrGetValue, IrGetValue) -> IrDeclarationReference), + ) + + fun IrConstructorCall.getTypeAdapterInfo(): Triple = + (getValueArgument(0)!! as IrClassReference).let { adapterClassReference -> + adapterClassReference.symbol + .superTypes() + .first { + it.classId == ClassIds.REALM_TYPE_ADAPTER_INTERFACE + } + .let { + it as IrSimpleType + } + .arguments + .let { arguments -> + Triple( + adapterClassReference, + arguments[0].typeOrNull!!, + arguments[1].typeOrNull!! + ) + } + } + fun modifyPropertiesAndCollectSchema(irClass: IrClass) { logDebug("Processing class ${irClass.name}") val fields = SchemaCollector.properties @@ -222,11 +128,6 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { objectReferenceProperty = irClass.lookupProperty(OBJECT_REFERENCE) objectReferenceType = objectReferenceProperty.backingField!!.type - // Attempt to find the interface for asymmetric objects. - // The class will normally only be on the classpath for library-sync builds, not - // library-base builds. - val asymmetricRealmObjectInterface: IrClass? = pluginContext.referenceClass(ASYMMETRIC_OBJECT_INTERFACE)?.owner - irClass.transformChildrenVoid(object : IrElementTransformerVoid() { @Suppress("LongMethod") override fun visitProperty(declaration: IrProperty): IrStatement { @@ -244,9 +145,9 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { return declaration } - val propertyTypeRaw = declaration.backingField!!.type - val propertyType = propertyTypeRaw.makeNotNull() - val nullable = propertyTypeRaw.isNullable() + var propertyTypeRaw = declaration.backingField!!.type + var propertyType = propertyTypeRaw.makeNotNull() + var nullable = propertyTypeRaw.isNullable() val excludeProperty = declaration.hasAnnotation(IGNORE_ANNOTATION) || declaration.hasAnnotation(TRANSIENT_ANNOTATION) || @@ -270,6 +171,81 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { } } + val typeAdapterMethodReferences = if (declaration.hasAnnotation(TYPE_ADAPTER_ANNOTATION)) { + logDebug("Object property named ${declaration.name} is an adapted type.") + + if (declaration.isDelegated) { + logError("Type adapters do not support delegated properties") + } + + val (adapterClassReference, realmType, userType) = declaration + .getAnnotation(TYPE_ADAPTER_ANNOTATION.asSingleFqName()) + .getTypeAdapterInfo() + + val adapterClass: IrClass = adapterClassReference.classType.getClass()!! + + if (propertyType.classId != userType.classId) { + logError("Type adapter public type does not match the property type.") + } + + // Replace the property type with the one from the type adapter + propertyTypeRaw = realmType + propertyType = realmType.makeNotNull() + nullable = realmType.isNullable() + + // Generate the conversion calls based on whether the adapter is singleton or not. + when (adapterClass.kind) { + ClassKind.CLASS -> { + TypeAdapterMethodReferences( + propertyType = propertyType, + toPublic = { objReference, realmValue -> + irCall(callee = providedAdapterFromRealm).apply { + // pass the class from the annotation + putValueArgument(0, objReference) + putValueArgument(1, adapterClassReference) + putValueArgument(2, realmValue) + } + }, + fromPublic = { objReference, publicValue -> + irCall(callee = providedAdapterToRealm).apply { + // pass the class from the annotation + putValueArgument(0, objReference) + putValueArgument(1, adapterClassReference) + putValueArgument(2, publicValue) + } + } + ) + } + + ClassKind.OBJECT -> { + val fromRealm = + adapterClass.lookupFunction(REALM_TYPE_ADAPTER_TO_PUBLIC) + val toRealm = + adapterClass.lookupFunction(REALM_TYPE_ADAPTER_TO_REALM) + + TypeAdapterMethodReferences( + propertyType = propertyType, + toPublic = { _, realmValue -> + irCall(callee = fromRealm).apply { + putValueArgument(0, realmValue) + dispatchReceiver = irGetObject(adapterClass.symbol) + } + }, + fromPublic = { _, publicValue -> + irCall(callee = toRealm).apply { + putValueArgument(0, publicValue) + dispatchReceiver = irGetObject(adapterClass.symbol) + } + } + ) + } + + else -> throw IllegalStateException("Unsupported type") + } + } else { + null + } + when { excludeProperty -> { logDebug("Property named ${declaration.name} ignored") @@ -279,6 +255,7 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty @@ -290,11 +267,12 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { // the managed object to which the fields belongs. modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getMutableInt, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -308,17 +286,19 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { } val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_MIXED, + computedType = propertyTypeRaw, declaration = declaration, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getRealmAny, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -328,16 +308,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_BINARY, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getByteArray, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -346,16 +328,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_STRING, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getString, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -364,16 +348,22 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getLong, fromRealmValue = longToByte, toPublic = null, setFunction = setValue, - fromPublic = byteToLong, + fromPublic = { _, value -> + irCall(callee = byteToLong).apply { + putValueArgument(0, value) + } + }, toRealmValue = null ) } @@ -382,16 +372,22 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getLong, fromRealmValue = longToChar, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = charToLong, + fromPublic = { _, value -> + irCall(callee = charToLong).apply { + putValueArgument(0, value) + } + }, toRealmValue = null ) } @@ -400,16 +396,22 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getLong, fromRealmValue = longToShort, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = shortToLong, + fromPublic = { _, value -> + irCall(callee = shortToLong).apply { + putValueArgument(0, value) + } + }, toRealmValue = null ) } @@ -418,16 +420,22 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getLong, fromRealmValue = longToInt, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = intToLong, + fromPublic = { _, value -> + irCall(callee = intToLong).apply { + putValueArgument(0, value) + } + }, toRealmValue = null ) } @@ -436,16 +444,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_INT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getLong, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -454,16 +464,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_BOOL, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getBoolean, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -472,16 +484,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_FLOAT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getFloat, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -490,16 +504,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_DOUBLE, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getDouble, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -508,16 +524,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_DECIMAL128, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getDecimal128, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -551,6 +569,7 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { fields[name] = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_LINKING_OBJECTS, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.LIST, coreGenericTypes = listOf( CoreType( @@ -566,16 +585,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_TIMESTAMP, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getInstant, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -584,16 +605,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getObjectId, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -602,16 +625,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { var schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getObjectId, fromRealmValue = objectIdToRealmObjectId, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -620,46 +645,50 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_UUID, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getUUID, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setValue, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null, ) } propertyType.isRealmList() -> { logDebug("RealmList property named ${declaration.name} is ${if (nullable) "" else "not "}nullable") - processCollectionField(CollectionType.LIST, fields, name, declaration) + processCollectionField(CollectionType.LIST, fields, name, declaration, propertyTypeRaw, typeAdapterMethodReferences) } propertyType.isRealmSet() -> { logDebug("RealmSet property named ${declaration.name} is ${if (nullable) "" else "not "}nullable") - processCollectionField(CollectionType.SET, fields, name, declaration) + processCollectionField(CollectionType.SET, fields, name, declaration, propertyTypeRaw, typeAdapterMethodReferences) } propertyType.isRealmDictionary() -> { logDebug("RealmDictionary property named ${declaration.name} is ${if (nullable) "" else "not "}nullable") - processCollectionField(CollectionType.DICTIONARY, fields, name, declaration) + processCollectionField(CollectionType.DICTIONARY, fields, name, declaration, propertyTypeRaw, typeAdapterMethodReferences) } propertyType.isSubtypeOfClass(embeddedRealmObjectInterface) -> { logDebug("Object property named ${declaration.name} is embedded and ${if (nullable) "" else "not "}nullable") val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_OBJECT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty modifyAccessor( - schemaProperty, + property = schemaProperty, + type = propertyType, getFunction = getObject, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setEmbeddedRealmObject, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -672,6 +701,7 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_OBJECT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty @@ -681,6 +711,7 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val schemaProperty = SchemaProperty( propertyType = PropertyType.RLM_PROPERTY_TYPE_OBJECT, declaration = declaration, + computedType = propertyTypeRaw, collectionType = CollectionType.NONE ) fields[name] = schemaProperty @@ -688,11 +719,12 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { // conversion so bypass any converters in accessors modifyAccessor( property = schemaProperty, + type = propertyType, getFunction = getObject, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = setObject, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null ) } @@ -706,34 +738,88 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { }) } + @Suppress("LongParameterList", "LongMethod", "ComplexMethod") private fun processCollectionField( collectionType: CollectionType, fields: MutableMap, name: String, - declaration: IrProperty + declaration: IrProperty, + propertyTypeRaw: IrType, + typeAdapterMethodReferences: TypeAdapterMethodReferences?, ) { - val type: KotlinType = declaration.symbol.owner.toIrBasedDescriptor().type - if (type.arguments[0] is StarProjectionImpl) { + val collectionTypeArgument = (propertyTypeRaw as IrSimpleTypeImpl).arguments[0] + + if (collectionTypeArgument is IrStarProjection) { logError( "Error in field ${declaration.name} - ${collectionType.description} cannot use a '*' projection.", declaration.locationOf() ) return } - val collectionGenericType = type.arguments[0].type - val coreGenericTypes = getCollectionGenericCoreType(collectionType, declaration) + + var collectionIrType = collectionTypeArgument.typeOrNull!! + + // if not null the type would need to be adapted + val typeAdapterAnnotation = collectionIrType + .annotations + .findAnnotation(TYPE_ADAPTER_ANNOTATION.asSingleFqName()) + + var collectionAdapterExpression: (IrBuilderWithScope.(IrGetValue) -> IrExpression)? = null + + typeAdapterAnnotation?.let { + val typeAdapterInfo = it.getTypeAdapterInfo() + val (classReference, realmType, userType) = typeAdapterInfo + + if (collectionIrType.classId != userType.classId) { + // TODO improve messaging + logError("Not matching types ${collectionIrType.classFqName} ${userType.classFqName}") + } + + // Replace the property type with the one from the type adapter + collectionIrType = realmType + val adapterClass: IrClass = classReference.classType.getClass()!! + + collectionAdapterExpression = { objectReference -> + // retrieve the actual type adapter + when (adapterClass.kind) { + ClassKind.CLASS -> { + irCall( + callee = getTypeAdapter, + origin = IrStatementOrigin.INVOKE + ).apply { + // pass obj reference + putValueArgument(0, objectReference) + // pass class reference + putValueArgument(1, classReference) + } + } + ClassKind.OBJECT -> { + irGetObject(adapterClass.symbol) + } + else -> throw IllegalStateException("Unsupported type") + } + } + } + + val coreGenericTypes = getCollectionGenericCoreType( + collectionType = collectionType, + declaration = declaration, + descriptorType = propertyTypeRaw, + collectionGenericType = collectionIrType, + ) // Only process field if we got valid generics if (coreGenericTypes != null) { - val genericPropertyType = getPropertyTypeFromKotlinType(collectionGenericType) + val genericPropertyType = getPropertyTypeFromKotlinType(collectionIrType.makeNotNull()) // Only process if (genericPropertyType != null) { val schemaProperty = SchemaProperty( propertyType = genericPropertyType, declaration = declaration, + computedType = propertyTypeRaw, collectionType = collectionType, - coreGenericTypes = listOf(coreGenericTypes) + coreGenericTypes = listOf(coreGenericTypes), ) fields[name] = schemaProperty // TODO OPTIMIZE consider synthetic property generation for lists to cache @@ -751,6 +837,7 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { // getCollection/setCollection gets/sets raw collections so it bypasses any converters in accessors modifyAccessor( property = schemaProperty, + type = propertyTypeRaw, getFunction = when (collectionType) { CollectionType.LIST -> getList CollectionType.SET -> getSet @@ -758,38 +845,44 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { else -> throw UnsupportedOperationException("Only collections or dictionaries are supposed to modify the getter for '$name'") }, fromRealmValue = null, - toPublic = null, + toPublic = typeAdapterMethodReferences?.toPublic, setFunction = when (collectionType) { CollectionType.LIST -> setList CollectionType.SET -> setSet CollectionType.DICTIONARY -> setDictionary else -> throw UnsupportedOperationException("Only collections or dictionaries are supposed to modify the setter for '$name'") }, - fromPublic = null, + fromPublic = typeAdapterMethodReferences?.fromPublic, toRealmValue = null, - collectionType = collectionType + collectionType = collectionType, + collectionStoreType = collectionIrType, + collectionAdapterValue = collectionAdapterExpression, ) } } } - @Suppress("LongParameterList", "LongMethod", "ComplexMethod") + @Suppress("LongParameterList", "LongMethod", "ComplexMethod", "MagicNumber") private fun modifyAccessor( property: SchemaProperty, + type: IrType, getFunction: IrSimpleFunction, fromRealmValue: IrSimpleFunction? = null, - toPublic: IrSimpleFunction? = null, + toPublic: (IrBuilderWithScope.(IrGetValue, IrFunctionAccessExpression) -> IrDeclarationReference)? = null, setFunction: IrSimpleFunction? = null, - fromPublic: IrSimpleFunction? = null, + fromPublic: (IrBuilderWithScope.(IrGetValue, IrGetValue) -> IrDeclarationReference)? = null, toRealmValue: IrSimpleFunction? = null, - collectionType: CollectionType = CollectionType.NONE + collectionType: CollectionType = CollectionType.NONE, + collectionStoreType: IrType? = null, + collectionAdapterValue: (IrBuilderWithScope.(IrGetValue) -> IrExpression)? = null, ) { + // TODO check this backing field if required val backingField = property.declaration.backingField!! val type: IrType? = when (collectionType) { - CollectionType.NONE -> backingField.type + CollectionType.NONE -> type CollectionType.LIST, CollectionType.SET, - CollectionType.DICTIONARY -> getCollectionElementType(backingField.type) + CollectionType.DICTIONARY -> getCollectionElementType(type) } val getter = property.declaration.getter val setter = property.declaration.setter @@ -842,8 +935,15 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { if (typeArgumentsCount > 0) { putTypeArgument(0, type) } - putValueArgument(0, irGet(objectReferenceType, valueSymbol)) + if (typeArgumentsCount > 1) { + putTypeArgument(1, collectionStoreType) + } + val objectReference = irGet(objectReferenceType, valueSymbol) + putValueArgument(0, objectReference) putValueArgument(1, irString(property.persistedName)) + collectionAdapterValue?.let { + putValueArgument(2, it(objectReference)) + } } val storageValue = fromRealmValue?.let { irCall(callee = it).apply { @@ -853,11 +953,11 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { putValueArgument(0, managedObjectGetValueCall) } } ?: managedObjectGetValueCall - val publicValue = toPublic?.let { - irCall(callee = toPublic).apply { - putValueArgument(0, storageValue) - } - } ?: storageValue + val publicValue = toPublic?.invoke( + this, + irGet(objectReferenceType, valueSymbol), + storageValue + ) ?: storageValue irIfNull( type = getter.returnType, subject = irGet(objectReferenceType, valueSymbol), @@ -908,11 +1008,12 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { nameHint = "objectReference", irType = objectReferenceType, ) { valueSymbol -> - val storageValue: IrDeclarationReference = fromPublic?.let { - irCall(callee = it).apply { - putValueArgument(0, irGet(setter.valueParameters.first())) - } - } ?: irGet(setter.valueParameters.first()) + val storageValue = + fromPublic?.invoke( + this, + irGet(objectReferenceType, valueSymbol), + irGet(setter.valueParameters.first()) + ) ?: irGet(setter.valueParameters.first()) val realmValue: IrDeclarationReference = toRealmValue?.let { irCall(callee = it).apply { if (typeArgumentsCount > 0) { @@ -924,15 +1025,21 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { val cinteropCall = irCall( callee = setFunction, origin = IrStatementOrigin.GET_PROPERTY - ).also { - it.dispatchReceiver = irGetObject(realmObjectHelper.symbol) - }.apply { + ).apply { + dispatchReceiver = irGetObject(realmObjectHelper.symbol) if (typeArgumentsCount > 0) { putTypeArgument(0, type) } - putValueArgument(0, irGet(objectReferenceType, valueSymbol)) + if (typeArgumentsCount > 1) { + putTypeArgument(1, collectionStoreType) + } + val objectReference = irGet(objectReferenceType, valueSymbol) + putValueArgument(0, objectReference) putValueArgument(1, irString(property.persistedName)) putValueArgument(2, realmValue) + collectionAdapterValue?.let { + putValueArgument(3, it(objectReference)) + } } irIfNull( @@ -956,97 +1063,18 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { } } - private fun IrType.isRealmList(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmListClassId: ClassId? = realmListClass.classId - return propertyClassId == realmListClassId - } - - private fun IrType.isRealmSet(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmSetClassId: ClassId? = realmSetClass.classId - return propertyClassId == realmSetClassId - } - - private fun IrType.isRealmDictionary(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmDictionaryClassId: ClassId? = realmDictionaryClass.classId - return propertyClassId == realmDictionaryClassId - } - - private fun IrType.isRealmInstant(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmInstantClassId: ClassId? = realmInstantClass.classId - return propertyClassId == realmInstantClassId - } - - private fun IrType.isLinkingObject(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmBacklinksClassId: ClassId? = realmBacklinksClass.classId - return propertyClassId == realmBacklinksClassId - } - - private fun IrType.isEmbeddedLinkingObject(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmEmbeddedBacklinksClassId: ClassId? = realmEmbeddedBacklinksClass.classId - return propertyClassId == realmEmbeddedBacklinksClassId - } - - private fun IrType.isDecimal128(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val objectIdClassId: ClassId? = decimal128Class.classId - return propertyClassId == objectIdClassId - } - - private fun IrType.isObjectId(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val objectIdClassId: ClassId? = objectIdClass.classId - return propertyClassId == objectIdClassId - } - - private fun IrType.isRealmObjectId(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val objectIdClassId: ClassId? = realmObjectIdClass.classId - return propertyClassId == objectIdClassId - } - - private fun IrType.hasSameClassId(other: IrType): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val otherClassId = other.classIdOrFail() - return propertyClassId == otherClassId - } - - private fun IrType.isRealmUUID(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val realmUUIDClassId: ClassId? = realmUUIDClass.classId - return propertyClassId == realmUUIDClassId - } - - fun IrType.isMutableRealmInteger(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val mutableRealmIntegerClassId: ClassId? = mutableRealmIntegerClass.classId - return propertyClassId == mutableRealmIntegerClassId - } - - fun IrType.isRealmAny(): Boolean { - val propertyClassId: ClassId = this.classIdOrFail() - val mutableRealmIntegerClassId: ClassId? = realmAnyClass.classId - return propertyClassId == mutableRealmIntegerClassId - } - @Suppress("ReturnCount", "LongMethod") private fun getCollectionGenericCoreType( collectionType: CollectionType, - declaration: IrProperty + declaration: IrProperty, + descriptorType: IrType, + collectionGenericType: IrType, ): CoreType? { // Check first if the generic is a subclass of RealmObject - val descriptorType: KotlinType = declaration.toIrBasedDescriptor().type - val collectionGenericType: KotlinType = descriptorType.arguments[0].type - - val supertypes = collectionGenericType.constructor.supertypes - val isEmbedded = inheritsFromRealmObject(supertypes, RealmObjectType.EMBEDDED) + val isRealmObject = collectionGenericType.isSubtypeOfClass(realmObjectInterface) + val isEmbedded = collectionGenericType.isSubtypeOfClass(embeddedRealmObjectInterface) - if (inheritsFromRealmObject(supertypes)) { + if (isRealmObject || isEmbedded) { // No embedded objects for sets if (collectionType == CollectionType.SET && isEmbedded) { logError( @@ -1091,18 +1119,17 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { // If not a RealmObject, check whether the collection itself is nullable - if so, throw error if (descriptorType.isNullable()) { logError( - "Error in field ${declaration.name} - a ${collectionType.description} field cannot be marked as nullable.", + "Error in field ${declaration.name} - a ${collectionType.description} field cannot be marked as nullable. ${descriptorType.classFqName}", declaration.locationOf() ) return null } // Otherwise just return the matching core type present in the declaration - val genericPropertyType: PropertyType? = getPropertyTypeFromKotlinType(collectionGenericType) + val genericPropertyType: PropertyType? = getPropertyTypeFromKotlinType(collectionGenericType.makeNotNull()) return if (genericPropertyType == null) { logError( - "Unsupported type for ${collectionType.description}: '${collectionGenericType.getKotlinTypeFqNameCompat(true) - }'", + "Unsupported type for ${collectionType.description}: '${collectionGenericType.classFqName}'", declaration.locationOf() ) null @@ -1122,51 +1149,32 @@ class AccessorModifierIrGeneration(private val pluginContext: IrPluginContext) { // TODO do the lookup only once @Suppress("ComplexMethod") - private fun getPropertyTypeFromKotlinType(type: KotlinType): PropertyType? { - return type.constructor.declarationDescriptor - ?.name - ?.let { identifier -> - when (identifier.toString()) { - "Byte" -> PropertyType.RLM_PROPERTY_TYPE_INT - "Char" -> PropertyType.RLM_PROPERTY_TYPE_INT - "Short" -> PropertyType.RLM_PROPERTY_TYPE_INT - "Int" -> PropertyType.RLM_PROPERTY_TYPE_INT - "Long" -> PropertyType.RLM_PROPERTY_TYPE_INT - "Boolean" -> PropertyType.RLM_PROPERTY_TYPE_BOOL - "Float" -> PropertyType.RLM_PROPERTY_TYPE_FLOAT - "Double" -> PropertyType.RLM_PROPERTY_TYPE_DOUBLE - "String" -> PropertyType.RLM_PROPERTY_TYPE_STRING - "RealmInstant" -> PropertyType.RLM_PROPERTY_TYPE_TIMESTAMP - "ObjectId" -> PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID - "BsonObjectId" -> PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID - "BsonDecimal128" -> PropertyType.RLM_PROPERTY_TYPE_DECIMAL128 - "RealmUUID" -> PropertyType.RLM_PROPERTY_TYPE_UUID - "ByteArray" -> PropertyType.RLM_PROPERTY_TYPE_BINARY - "RealmAny" -> PropertyType.RLM_PROPERTY_TYPE_MIXED - else -> - if (inheritsFromRealmObject(type.supertypes())) { - PropertyType.RLM_PROPERTY_TYPE_OBJECT - } else { - null - } + private fun getPropertyTypeFromKotlinType(type: IrType): PropertyType? = + when { + type.isByte() -> PropertyType.RLM_PROPERTY_TYPE_INT + type.isChar() -> PropertyType.RLM_PROPERTY_TYPE_INT + type.isShort() -> PropertyType.RLM_PROPERTY_TYPE_INT + type.isInt() -> PropertyType.RLM_PROPERTY_TYPE_INT + type.isLong() -> PropertyType.RLM_PROPERTY_TYPE_INT + type.isBoolean() -> PropertyType.RLM_PROPERTY_TYPE_BOOL + type.isFloat() -> PropertyType.RLM_PROPERTY_TYPE_FLOAT + type.isDouble() -> PropertyType.RLM_PROPERTY_TYPE_DOUBLE + type.isString() -> PropertyType.RLM_PROPERTY_TYPE_STRING + type.isRealmInstant() -> PropertyType.RLM_PROPERTY_TYPE_TIMESTAMP + type.isObjectId() -> PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID + type.isRealmObjectId() -> PropertyType.RLM_PROPERTY_TYPE_OBJECT_ID + type.isDecimal128() -> PropertyType.RLM_PROPERTY_TYPE_DECIMAL128 + type.isRealmUUID() -> PropertyType.RLM_PROPERTY_TYPE_UUID + type.isByteArray() -> PropertyType.RLM_PROPERTY_TYPE_BINARY + type.isRealmAny() -> PropertyType.RLM_PROPERTY_TYPE_MIXED + else -> + if ( + type.isSubtypeOfClass(realmObjectInterface) || + type.isSubtypeOfClass(embeddedRealmObjectInterface) + ) { + PropertyType.RLM_PROPERTY_TYPE_OBJECT + } else { + null } - } - } - - // Check if the class in question inherits from RealmObject, EmbeddedRealmObject or either - private fun inheritsFromRealmObject( - supertypes: Collection, - objectType: RealmObjectType = RealmObjectType.EITHER - ): Boolean = supertypes.any { - val objectFqNames: Set = when (objectType) { - RealmObjectType.OBJECT -> realmObjectInterfaceFqNames - RealmObjectType.EMBEDDED -> realmEmbeddedObjectInterfaceFqNames - RealmObjectType.EITHER -> realmObjectInterfaceFqNames + realmEmbeddedObjectInterfaceFqNames } - it.constructor.declarationDescriptor?.classId in objectFqNames - } -} - -private enum class RealmObjectType { - OBJECT, EMBEDDED, EITHER } diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/Identifiers.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/Identifiers.kt index ce6afd3774..87f3e34722 100644 --- a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/Identifiers.kt +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/Identifiers.kt @@ -69,6 +69,9 @@ internal object Names { val REALM_OBJECT_HELPER_SET_OBJECT = Name.identifier("setObject") val REALM_OBJECT_HELPER_SET_EMBEDDED_REALM_OBJECT = Name.identifier("setEmbeddedRealmObject") + val REALM_TYPE_ADAPTER_TO_PUBLIC = Name.identifier("toPublic") + val REALM_TYPE_ADAPTER_TO_REALM = Name.identifier("toRealm") + // C-interop methods val REALM_OBJECT_HELPER_GET_LIST = Name.identifier("getList") val REALM_OBJECT_HELPER_SET_LIST = Name.identifier("setList") @@ -121,11 +124,13 @@ object ClassIds { val TYPED_REALM_OBJECT_INTERFACE = ClassId(FqNames.PACKAGE_TYPES, Name.identifier("TypedRealmObject")) val EMBEDDED_OBJECT_INTERFACE = ClassId(FqNames.PACKAGE_TYPES, Name.identifier("EmbeddedRealmObject")) val ASYMMETRIC_OBJECT_INTERFACE = ClassId(FqNames.PACKAGE_TYPES, Name.identifier("AsymmetricRealmObject")) + val REALM_TYPE_ADAPTER_INTERFACE = ClassId(FqNames.PACKAGE_TYPES, Name.identifier("RealmTypeAdapter")) val CLASS_APP_CONFIGURATION = ClassId(FqNames.PACKAGE_MONGODB, Name.identifier("AppConfiguration")) // External visible interface of Realm objects val KOTLIN_COLLECTIONS_SET = ClassId(FqNames.PACKAGE_KOTLIN_COLLECTIONS, Name.identifier("Set")) + val KOTLIN_COLLECTIONS_SETOF = CallableId(FqNames.PACKAGE_KOTLIN_COLLECTIONS, Name.identifier("setOf")) val KOTLIN_COLLECTIONS_LIST = ClassId(FqNames.PACKAGE_KOTLIN_COLLECTIONS, Name.identifier("List")) val KOTLIN_COLLECTIONS_LISTOF = CallableId(FqNames.PACKAGE_KOTLIN_COLLECTIONS, Name.identifier("listOf")) val KOTLIN_COLLECTIONS_MAP = ClassId(FqNames.PACKAGE_KOTLIN_COLLECTIONS, Name.identifier("Map")) @@ -146,6 +151,7 @@ object ClassIds { val PERSISTED_NAME_ANNOTATION = ClassId(FqNames.PACKAGE_ANNOTATIONS, Name.identifier("PersistedName")) val TRANSIENT_ANNOTATION = ClassId(FqName("kotlin.jvm"), Name.identifier("Transient")) val MODEL_OBJECT_ANNOTATION = ClassId(FqName("io.realm.kotlin.internal.platform"), Name.identifier("ModelObject")) + val TYPE_ADAPTER_ANNOTATION = ClassId(FqNames.PACKAGE_ANNOTATIONS, Name.identifier("TypeAdapter")) val PROPERTY_INFO_CREATE = CallableId(FqName("io.realm.kotlin.internal.schema"), Name.identifier("createPropertyInfo")) val CLASS_KIND_TYPE = ClassId(FqName("io.realm.kotlin.schema"), Name.identifier("RealmClassKind")) diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/IrUtils.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/IrUtils.kt index 01953e72c7..5f7b8f7f51 100644 --- a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/IrUtils.kt +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/IrUtils.kt @@ -22,6 +22,7 @@ import io.realm.kotlin.compiler.ClassIds.EMBEDDED_OBJECT_INTERFACE import io.realm.kotlin.compiler.ClassIds.KOTLIN_COLLECTIONS_LISTOF import io.realm.kotlin.compiler.ClassIds.PERSISTED_NAME_ANNOTATION import io.realm.kotlin.compiler.ClassIds.REALM_OBJECT_INTERFACE +import io.realm.kotlin.compiler.ClassIds.REALM_TYPE_ADAPTER_INTERFACE import io.realm.kotlin.compiler.FqNames.PACKAGE_TYPES import io.realm.kotlin.compiler.Names.ASYMMETRIC_REALM_OBJECT import io.realm.kotlin.compiler.Names.EMBEDDED_REALM_OBJECT @@ -138,7 +139,7 @@ inline fun IrProperty.addSetter(builder: IrFunctionBuilder.() -> Unit = {}): IrS fun IrPluginContext.blockBody( symbol: IrSymbol, - block: IrBlockBodyBuilder.() -> Unit + block: IrBlockBodyBuilder.() -> Unit, ): IrBlockBody = DeclarationIrBuilder(this, symbol).irBlockBody { block() } @@ -148,9 +149,11 @@ val ClassDescriptor.isRealmObjectCompanion val realmObjectInterfaceFqNames = setOf(REALM_OBJECT_INTERFACE) val realmEmbeddedObjectInterfaceFqNames = setOf(EMBEDDED_OBJECT_INTERFACE) val realmAsymmetricObjectInterfaceFqNames = setOf(ASYMMETRIC_OBJECT_INTERFACE) -val anyRealmObjectInterfacesFqNames = realmObjectInterfaceFqNames + realmEmbeddedObjectInterfaceFqNames + realmAsymmetricObjectInterfaceFqNames +val anyRealmObjectInterfacesFqNames = + realmObjectInterfaceFqNames + realmEmbeddedObjectInterfaceFqNames + realmAsymmetricObjectInterfaceFqNames -fun IrType.classIdOrFail(): ClassId = getClass()?.classId ?: error("Can't get classId of ${render()}") +fun IrType.classIdOrFail(): ClassId = + getClass()?.classId ?: error("Can't get classId of ${render()}") inline fun PsiElement.hasInterface(interfaces: Set): Boolean { var hasRealmObjectAsSuperType = false @@ -179,6 +182,7 @@ inline fun PsiElement.hasInterface(interfaces: Set): Boolean { return hasRealmObjectAsSuperType } + inline fun ClassDescriptor.hasInterfacePsi(interfaces: Set): Boolean { // Using PSI to find super types to avoid cyclic reference (see https://github.com/realm/realm-kotlin/issues/339) return this.findPsi()?.hasInterface(interfaces) ?: false @@ -190,17 +194,24 @@ inline fun ClassDescriptor.hasInterfacePsi(interfaces: Set): Boolean { // type. Fortunately that is visible in the PSI as `RealmObject()` (Java, abstract class) vs. // `RealmObject` (Kotlin, interface). val realmObjectPsiNames = setOf("RealmObject", "io.realm.kotlin.types.RealmObject") -val embeddedRealmObjectPsiNames = setOf("EmbeddedRealmObject", "io.realm.kotlin.types.EmbeddedRealmObject") -val asymmetricRealmObjectPsiNames = setOf("AsymmetricRealmObject", "io.realm.kotlin.types.AsymmetricRealmObject") +val embeddedRealmObjectPsiNames = + setOf("EmbeddedRealmObject", "io.realm.kotlin.types.EmbeddedRealmObject") +val asymmetricRealmObjectPsiNames = + setOf("AsymmetricRealmObject", "io.realm.kotlin.types.AsymmetricRealmObject") val realmJavaObjectPsiNames = setOf("io.realm.RealmObject()", "RealmObject()") val ClassDescriptor.isRealmObject: Boolean - get() = this.hasInterfacePsi(realmObjectPsiNames) && !this.hasInterfacePsi(realmJavaObjectPsiNames) + get() = this.hasInterfacePsi(realmObjectPsiNames) && !this.hasInterfacePsi( + realmJavaObjectPsiNames + ) val ClassDescriptor.isEmbeddedRealmObject: Boolean get() = this.hasInterfacePsi(embeddedRealmObjectPsiNames) val ClassDescriptor.isBaseRealmObject: Boolean - get() = this.hasInterfacePsi(realmObjectPsiNames + embeddedRealmObjectPsiNames + asymmetricRealmObjectPsiNames) && !this.hasInterfacePsi(realmJavaObjectPsiNames) + get() = this.hasInterfacePsi(realmObjectPsiNames + embeddedRealmObjectPsiNames + asymmetricRealmObjectPsiNames) && !this.hasInterfacePsi( + realmJavaObjectPsiNames + ) -val realmObjectTypes: Set = setOf(REALM_OBJECT, EMBEDDED_REALM_OBJECT, ASYMMETRIC_REALM_OBJECT) +val realmObjectTypes: Set = + setOf(REALM_OBJECT, EMBEDDED_REALM_OBJECT, ASYMMETRIC_REALM_OBJECT) val realmObjectClassIds = realmObjectTypes.map { name -> ClassId(PACKAGE_TYPES, name) } // This is the K2 equivalent of our PSI hack to determine if a symbol has a RealmObject base class. @@ -251,6 +262,9 @@ val IrClass.isEmbeddedRealmObject: Boolean val IrClass.isAsymmetricRealmObject: Boolean get() = superTypes.any { it.classId == ASYMMETRIC_OBJECT_INTERFACE } +val IrClass.isRealmTypeAdapter: Boolean + get() = superTypes.any { it.classId == REALM_TYPE_ADAPTER_INTERFACE } + val IrType.classId: ClassId? get() = this.getClass()?.classId @@ -275,7 +289,10 @@ internal fun IrPropertyBuilder.at(startOffset: Int, endOffset: Int) = also { this.endOffset = endOffset } -internal fun IrClass.lookupFunction(name: Name, predicate: Predicate? = null): IrSimpleFunction { +internal fun IrClass.lookupFunction( + name: Name, + predicate: Predicate? = null, +): IrSimpleFunction { return functions.firstOrNull { it.name == name && predicate?.test(it) ?: true } ?: throw AssertionError("Function '$name' not found in class '${this.name}'") } @@ -287,7 +304,7 @@ internal fun IrClass.lookupProperty(name: Name): IrProperty { internal fun IrPluginContext.lookupFunctionInClass( clazz: ClassId, - function: String + function: String, ): IrSimpleFunction { return lookupClassOrThrow(clazz).functions.first { it.name == Name.identifier(function) @@ -301,7 +318,7 @@ internal fun IrPluginContext.lookupClassOrThrow(name: ClassId): IrClass { internal fun IrPluginContext.lookupConstructorInClass( clazz: ClassId, - filter: (ctor: IrConstructorSymbol) -> Boolean = { true } + filter: (ctor: IrConstructorSymbol) -> Boolean = { true }, ): IrConstructorSymbol { return referenceConstructors(clazz).first { filter(it) @@ -309,7 +326,7 @@ internal fun IrPluginContext.lookupConstructorInClass( } internal fun IrClass.lookupCompanionDeclaration( - name: Name + name: Name, ): T { return this.companionObject()?.declarations?.first { it is IrDeclarationWithName && it.name == name @@ -324,12 +341,20 @@ internal fun KotlinType.getKotlinTypeFqNameCompat(printTypeArguments: Boolean): "declarationDescriptor is null for constructor = $constructor with ${constructor.javaClass}" } if (declaration is TypeParameterDescriptor) { - return StringUtil.join(declaration.upperBounds, { type -> type.getKotlinTypeFqNameCompat(printTypeArguments) }, "&") + return StringUtil.join( + declaration.upperBounds, + { type -> type.getKotlinTypeFqNameCompat(printTypeArguments) }, + "&" + ) } val typeArguments = arguments val typeArgumentsAsString = if (printTypeArguments && !typeArguments.isEmpty()) { - val joinedTypeArguments = StringUtil.join(typeArguments, { projection -> projection.type.getKotlinTypeFqNameCompat(false) }, ", ") + val joinedTypeArguments = StringUtil.join( + typeArguments, + { projection -> projection.type.getKotlinTypeFqNameCompat(false) }, + ", " + ) "<$joinedTypeArguments>" } else { @@ -376,26 +401,30 @@ enum class PropertyType { data class CoreType( val propertyType: PropertyType, - val nullable: Boolean + val nullable: Boolean, ) private const val NO_ALIAS = "" + // FIXME use PropertyType instead of "type: String", consider using a common/shared type when implementing public schema // see (https://github.com/realm/realm-kotlin/issues/238) data class SchemaProperty( val propertyType: PropertyType, val declaration: IrProperty, + val computedType: IrType, val collectionType: CollectionType = CollectionType.NONE, val coreGenericTypes: List? = null ) { val isComputed = propertyType == PropertyType.RLM_PROPERTY_TYPE_LINKING_OBJECTS - val hasPersistedNameAnnotation = declaration.backingField != null && declaration.hasAnnotation(PERSISTED_NAME_ANNOTATION) + val hasPersistedNameAnnotation = + declaration.backingField != null && declaration.hasAnnotation(PERSISTED_NAME_ANNOTATION) val persistedName: String val publicName: String init { val declarationName = declaration.name.identifier - val persistedAnnotationName: String? = if (hasPersistedNameAnnotation) getPersistedName(declaration) else null + val persistedAnnotationName: String? = + if (hasPersistedNameAnnotation) getPersistedName(declaration) else null // We only set the public name if the persisted and public names are different // because core would otherwise detect it as a duplicated name and fail. @@ -420,7 +449,10 @@ data class SchemaProperty( companion object { fun getPersistedName(declaration: IrProperty): String { @Suppress("UNCHECKED_CAST") - return (declaration.getAnnotation(PERSISTED_NAME_ANNOTATION.asSingleFqName()).getValueArgument(0)!! as IrConstImpl).value + return ( + declaration.getAnnotation(PERSISTED_NAME_ANNOTATION.asSingleFqName()) + .getValueArgument(0)!! as IrConstImpl + ).value } } } @@ -435,7 +467,7 @@ internal fun buildOf( function: IrSimpleFunctionSymbol, containerType: IrClass, elementType: IrType, - args: List + args: List, ): IrExpression { return IrCallImpl( startOffset = startOffset, endOffset = endOffset, @@ -465,9 +497,14 @@ internal fun buildSetOf( startOffset: Int, endOffset: Int, elementType: IrType, - args: List + args: List, ): IrExpression { - val setOf = context.referenceFunctions(CallableId(FqName("kotlin.collections"), Name.identifier("setOf"))) + val setOf = context.referenceFunctions( + CallableId( + FqName("kotlin.collections"), + Name.identifier("setOf") + ) + ) .first { val parameters = it.owner.valueParameters parameters.size == 1 && parameters.first().isVararg @@ -481,7 +518,7 @@ internal fun buildListOf( startOffset: Int, endOffset: Int, elementType: IrType, - args: List + args: List, ): IrExpression { val listOf = context.referenceFunctions(KOTLIN_COLLECTIONS_LISTOF) .first { @@ -497,7 +534,7 @@ fun IrClass.addValueProperty( superClass: IrClass, propertyName: Name, propertyType: IrType, - initExpression: (startOffset: Int, endOffset: Int) -> IrExpression + initExpression: (startOffset: Int, endOffset: Int) -> IrExpression, ): IrProperty { // PROPERTY name:realmPointer visibility:public modality:OPEN [var] val property = addProperty { @@ -678,7 +715,10 @@ fun getLinkingObjectPropertyName(backingField: IrField): String { fun getSchemaClassName(clazz: IrClass): String { return if (clazz.hasAnnotation(PERSISTED_NAME_ANNOTATION)) { @Suppress("UNCHECKED_CAST") - return (clazz.getAnnotation(PERSISTED_NAME_ANNOTATION.asSingleFqName()).getValueArgument(0)!! as IrConstImpl).value + return ( + clazz.getAnnotation(PERSISTED_NAME_ANNOTATION.asSingleFqName()) + .getValueArgument(0)!! as IrConstImpl + ).value } else { clazz.name.identifier } @@ -701,7 +741,11 @@ fun IrDeclaration.locationOf(): CompilerMessageSourceLocation { } /** Wrapper method to overcome API differences from Kotlin 1.7.20-1.8.20 */ -fun IrBuilderWithScope.irGetFieldWrapper(receiver: IrGetValueImpl, field: IrField, type: IrType = field.type): IrExpression = +fun IrBuilderWithScope.irGetFieldWrapper( + receiver: IrGetValueImpl, + field: IrField, + type: IrType = field.type, +): IrExpression = IrGetFieldImpl(startOffset, endOffset, field.symbol, type, receiver) /** diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelLoweringExtension.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelLoweringExtension.kt index 7aac109667..71823e1c5f 100644 --- a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelLoweringExtension.kt +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelLoweringExtension.kt @@ -19,6 +19,7 @@ package io.realm.kotlin.compiler import io.realm.kotlin.compiler.ClassIds.MODEL_OBJECT_ANNOTATION import io.realm.kotlin.compiler.ClassIds.REALM_MODEL_COMPANION import io.realm.kotlin.compiler.ClassIds.REALM_OBJECT_INTERNAL_INTERFACE +import io.realm.kotlin.compiler.ClassIds.REALM_TYPE_ADAPTER_INTERFACE import org.jetbrains.kotlin.backend.common.ClassLoweringPass import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext @@ -31,8 +32,15 @@ import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.expressions.impl.IrClassReferenceImpl import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.types.IrSimpleType +import org.jetbrains.kotlin.ir.types.IrStarProjection +import org.jetbrains.kotlin.ir.types.classFqName import org.jetbrains.kotlin.ir.types.defaultType +import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl +import org.jetbrains.kotlin.ir.types.makeNotNull import org.jetbrains.kotlin.ir.types.starProjectedType +import org.jetbrains.kotlin.ir.types.superTypes +import org.jetbrains.kotlin.ir.types.typeOrNull import org.jetbrains.kotlin.ir.util.companionObject import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.util.isAnonymousObject @@ -58,7 +66,48 @@ private class RealmModelLowering(private val pluginContext: IrPluginContext) : C override fun lower(irFile: IrFile) = runOnFilePostfix(irFile) + @Suppress("LongMethod", "ComplexMethod", "NestedBlockDepth") override fun lower(irClass: IrClass) { + val realmPluginContext by lazy { RealmPluginContextImpl(pluginContext) } + + if (irClass.isRealmTypeAdapter) { + with(realmPluginContext) { + // Validate that the R type parameter on a RealmTypeAdapter is a valid persisted type + val realmType = irClass.symbol + .superTypes() + .first { + it.classId == REALM_TYPE_ADAPTER_INTERFACE + } + .let { + it as IrSimpleType + } + .arguments + .let { arguments -> + arguments[0].typeOrNull!! + } + + val type = + if (realmType.isRealmList() || realmType.isRealmSet() || realmType.isRealmDictionary()) { + val typeArgument = (realmType as IrSimpleTypeImpl).arguments[0] + if (typeArgument is IrStarProjection) { + logError( + "Error in class ${irClass.name} - ${realmType.classFqName?.shortName()} cannot use a '*' projection.", + irClass.locationOf() + ) + return + } + + typeArgument.typeOrNull!! + } else { + realmType + } + + if (!type.makeNotNull().isValidPersistedType()) { + logError("Invalid adapter persisted type '${realmType.classFqName}', only Realm persistable types are supported.") + } + } + } + if (irClass.isBaseRealmObject) { // Throw error with classes that we do not support if (irClass.isData) { @@ -105,7 +154,7 @@ private class RealmModelLowering(private val pluginContext: IrPluginContext) : C generator.addRealmObjectInternalProperties(irClass) // Modify properties accessor to generate custom getter/setter - AccessorModifierIrGeneration(pluginContext).modifyPropertiesAndCollectSchema(irClass) + AccessorModifierIrGeneration(realmPluginContext).modifyPropertiesAndCollectSchema(irClass) // Add custom toString, equals and hashCode methods val methodGenerator = RealmModelDefaultMethodGeneration(pluginContext) diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelSyntheticPropertiesGeneration.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelSyntheticPropertiesGeneration.kt index db43326fcf..f2fe995f7f 100644 --- a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelSyntheticPropertiesGeneration.kt +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmModelSyntheticPropertiesGeneration.kt @@ -106,7 +106,6 @@ import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.util.functions import org.jetbrains.kotlin.ir.util.getPropertyGetter import org.jetbrains.kotlin.ir.util.getPropertySetter -import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.ir.util.isVararg import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.name.Name @@ -174,6 +173,7 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi val parameters = it.owner.valueParameters parameters.size == 1 && parameters.first().isVararg } + private val companionFieldsType = mapClass.typeWith( pluginContext.irBuiltIns.stringType, realmObjectMutablePropertyType @@ -500,24 +500,24 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi buildListOf( pluginContext, startOffset, endOffset, propertyClass.defaultType, fields.map { entry -> - val value = entry.value + val schemaProperty = entry.value // Extract type based on whether the field is a: // 1 - primitive type, in which case it is extracted as is // 2 - collection type, in which case the collection type(s) // specified in value.genericTypes should be used as type - val type: IrEnumEntry = when (val primitiveType = getType(value.propertyType)) { + val type: IrEnumEntry = when (val primitiveType = getType(schemaProperty.propertyType)) { null -> // Primitive type is null for collections - when (value.collectionType) { + when (schemaProperty.collectionType) { CollectionType.LIST, CollectionType.SET -> // Extract generic type as mentioned - getType(getCollectionType(value.coreGenericTypes)) - ?: error("Unknown type ${value.propertyType} - should be a valid type for collections.") + getType(getCollectionType(schemaProperty.coreGenericTypes)) + ?: error("Unknown type ${schemaProperty.propertyType} - should be a valid type for collections.") CollectionType.DICTIONARY -> error("Dictionaries not available yet.") else -> - error("Unknown type ${value.propertyType}.") + error("Unknown type ${schemaProperty.propertyType}.") } else -> // Primitive type is non-null primitiveType @@ -525,40 +525,40 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi val objectType: IrEnumEntry = propertyTypes.firstOrNull { it.name == PROPERTY_TYPE_OBJECT - } ?: error("Unknown type ${value.propertyType}") + } ?: error("Unknown type ${schemaProperty.propertyType}") val linkingObjectType: IrEnumEntry = propertyTypes.firstOrNull { it.name == PROPERTY_TYPE_LINKING_OBJECTS - } ?: error("Unknown type ${value.propertyType}") + } ?: error("Unknown type ${schemaProperty.propertyType}") - val property: IrProperty = value.declaration + val property: IrProperty = schemaProperty.declaration val backingField: IrField = property.backingField ?: fatalError("Property without backing field or type.") // Nullability applies to the generic type in collections - val nullable = if (value.collectionType == CollectionType.NONE) { - backingField.type.isNullable() + val nullable = if (schemaProperty.collectionType == CollectionType.NONE) { + schemaProperty.computedType.isNullable() } else { - value.coreGenericTypes?.get(0)?.nullable + schemaProperty.coreGenericTypes?.get(0)?.nullable ?: fatalError("Missing generic type while processing a collection field.") } val primaryKey = backingField.hasAnnotation(PRIMARY_KEY_ANNOTATION) - if (primaryKey && validPrimaryKeyTypes.find { it.classFqName == backingField.type.classFqName } == null) { + if (primaryKey && validPrimaryKeyTypes.find { it.classFqName == schemaProperty.computedType.classFqName } == null) { logError( - "Primary key ${property.name} is of type ${backingField.type.classId?.shortClassName} but must be of type ${validPrimaryKeyTypes.map { it.classId?.shortClassName }}", + "Primary key ${property.name} is of type ${schemaProperty.computedType.classId?.shortClassName} but must be of type ${validPrimaryKeyTypes.map { it.classId?.shortClassName }}", property.locationOf() ) } val isIndexed = backingField.hasAnnotation(INDEX_ANNOTATION) - if (isIndexed && indexableTypes.find { it.classFqName == backingField.type.classFqName } == null) { + if (isIndexed && indexableTypes.find { it.classFqName == schemaProperty.computedType.classFqName } == null) { logError( - "Indexed key ${property.name} is of type ${backingField.type.classId?.shortClassName} but must be of type ${indexableTypes.map { it.classId?.shortClassName }}", + "Indexed key ${property.name} is of type ${schemaProperty.computedType.classId?.shortClassName} but must be of type ${indexableTypes.map { it.classId?.shortClassName }}", property.locationOf() ) } val isFullTextIndexed = backingField.hasAnnotation(FULLTEXT_ANNOTATION) - if (isFullTextIndexed && fullTextIndexableTypes.find { it.classFqName == backingField.type.classFqName } == null) { + if (isFullTextIndexed && fullTextIndexableTypes.find { it.classFqName == schemaProperty.computedType.classFqName } == null) { logError( - "Full-text key ${property.name} is of type ${backingField.type.classId?.shortClassName} but must be of type ${fullTextIndexableTypes.map { it.classId?.shortClassName }}", + "Full-text key ${property.name} is of type ${schemaProperty.computedType.classId?.shortClassName} but must be of type ${fullTextIndexableTypes.map { it.classId?.shortClassName }}", property.locationOf() ) } @@ -578,8 +578,8 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi } val location = property.locationOf() - val persistedName = value.persistedName - val publicName = value.publicName + val persistedName = schemaProperty.persistedName + val publicName = schemaProperty.publicName // Ensure that the names are valid and do not conflict with prior persisted or public names ensureValidName(persistedName, persistedAndPublicNameToLocation, location) @@ -596,15 +596,15 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi when (type) { objectType -> { // Collections of type RealmObject require the type parameter be retrieved from the generic argument - when (value.collectionType) { + when (schemaProperty.collectionType) { CollectionType.NONE -> { - backingField.type + schemaProperty.computedType } CollectionType.LIST, CollectionType.SET, CollectionType.DICTIONARY -> { - getCollectionElementType(backingField.type) - ?: error("Could not get collection type from ${backingField.type}") + getCollectionElementType(schemaProperty.computedType) + ?: error("Could not get collection type from ${schemaProperty.computedType}") } } } @@ -632,7 +632,7 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi // Collection type: remember to specify it correctly here - the // type of the contents itself is specified as "type" above! - val collectionTypeSymbol = when (value.collectionType) { + val collectionTypeSymbol = when (schemaProperty.collectionType) { CollectionType.NONE -> PROPERTY_COLLECTION_TYPE_NONE CollectionType.LIST -> PROPERTY_COLLECTION_TYPE_LIST CollectionType.SET -> PROPERTY_COLLECTION_TYPE_SET @@ -655,12 +655,12 @@ class RealmModelSyntheticPropertiesGeneration(private val pluginContext: IrPlugi // Collections of type RealmObject require the type parameter be retrieved from the generic argument when (collectionTypeSymbol) { PROPERTY_COLLECTION_TYPE_NONE -> - backingField.type + schemaProperty.computedType PROPERTY_COLLECTION_TYPE_LIST, PROPERTY_COLLECTION_TYPE_SET, PROPERTY_COLLECTION_TYPE_DICTIONARY -> - getCollectionElementType(backingField.type) - ?: error("Could not get collection type from ${backingField.type}") + getCollectionElementType(schemaProperty.computedType) + ?: error("Could not get collection type from ${schemaProperty.computedType}") else -> error("Unsupported collection type '$collectionTypeSymbol' for field ${entry.key}") } diff --git a/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmPluginContext.kt b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmPluginContext.kt new file mode 100644 index 0000000000..47b4d1cc4e --- /dev/null +++ b/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/RealmPluginContext.kt @@ -0,0 +1,336 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.realm.kotlin.compiler + +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.types.isBoolean +import org.jetbrains.kotlin.ir.types.isByteArray +import org.jetbrains.kotlin.ir.types.isDouble +import org.jetbrains.kotlin.ir.types.isFloat +import org.jetbrains.kotlin.ir.types.isLong +import org.jetbrains.kotlin.ir.types.isString +import org.jetbrains.kotlin.ir.types.isSubtypeOfClass +import org.jetbrains.kotlin.ir.util.classId +import org.jetbrains.kotlin.name.CallableId +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.Name + +interface RealmPluginContext { + val pluginContext: IrPluginContext + val realmObjectHelper: IrClass + val realmListClass: IrClass + val realmSetClass: IrClass + val realmDictionaryClass: IrClass + val realmInstantClass: IrClass + val realmBacklinksClass: IrClass + val realmEmbeddedBacklinksClass: IrClass + val realmObjectInterface: IrClassSymbol + val embeddedRealmObjectInterface: IrClassSymbol + + // Attempt to find the interface for asymmetric objects. + // The class will normally only be on the classpath for library-sync builds, not + // library-base builds. + val asymmetricRealmObjectInterface: IrClass? + + val objectIdClass: IrClass + val decimal128Class: IrClass + val realmObjectIdClass: IrClass + val realmUUIDClass: IrClass + val mutableRealmIntegerClass: IrClass + val realmAnyClass: IrClass + + // Primitive (Core) type getters + val getString: IrSimpleFunction + val getLong: IrSimpleFunction + val getBoolean: IrSimpleFunction + val getFloat: IrSimpleFunction + val getDouble: IrSimpleFunction + val getDecimal128: IrSimpleFunction + val getInstant: IrSimpleFunction + val getObjectId: IrSimpleFunction + val getUUID: IrSimpleFunction + val getByteArray: IrSimpleFunction + val getMutableInt: IrSimpleFunction + val getRealmAny: IrSimpleFunction + val getObject: IrSimpleFunction + + // Primitive (Core) type setters + val setValue: IrSimpleFunction + val setObject: IrSimpleFunction + val setEmbeddedRealmObject: IrSimpleFunction + + // Getters and setters for collections + val getList: IrSimpleFunction + val setList: IrSimpleFunction + val getSet: IrSimpleFunction + val setSet: IrSimpleFunction + val getDictionary: IrSimpleFunction + val setDictionary: IrSimpleFunction + + // Top level SDK->Core converters + val byteToLong: IrSimpleFunction + val charToLong: IrSimpleFunction + val shortToLong: IrSimpleFunction + val intToLong: IrSimpleFunction + + // Top level Core->SDK converters + val longToByte: IrSimpleFunction + val longToChar: IrSimpleFunction + val longToShort: IrSimpleFunction + val longToInt: IrSimpleFunction + val objectIdToRealmObjectId: IrSimpleFunction + + val providedAdapterFromRealm: IrSimpleFunction + val providedAdapterToRealm: IrSimpleFunction + + val getTypeAdapter: IrSimpleFunction + + fun IrType.isRealmList(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmListClassId: ClassId? = realmListClass.classId + return propertyClassId == realmListClassId + } + + fun IrType.isRealmSet(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmSetClassId: ClassId? = realmSetClass.classId + return propertyClassId == realmSetClassId + } + + fun IrType.isRealmDictionary(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmDictionaryClassId: ClassId? = realmDictionaryClass.classId + return propertyClassId == realmDictionaryClassId + } + + fun IrType.isRealmInstant(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmInstantClassId: ClassId? = realmInstantClass.classId + return propertyClassId == realmInstantClassId + } + + fun IrType.isLinkingObject(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmBacklinksClassId: ClassId? = realmBacklinksClass.classId + return propertyClassId == realmBacklinksClassId + } + + fun IrType.isEmbeddedLinkingObject(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmEmbeddedBacklinksClassId: ClassId? = realmEmbeddedBacklinksClass.classId + return propertyClassId == realmEmbeddedBacklinksClassId + } + + fun IrType.isDecimal128(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val objectIdClassId: ClassId? = decimal128Class.classId + return propertyClassId == objectIdClassId + } + + fun IrType.isObjectId(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val objectIdClassId: ClassId? = objectIdClass.classId + return propertyClassId == objectIdClassId + } + + fun IrType.isRealmObjectId(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val objectIdClassId: ClassId? = realmObjectIdClass.classId + return propertyClassId == objectIdClassId + } + + fun IrType.hasSameClassId(other: IrType): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val otherClassId = other.classIdOrFail() + return propertyClassId == otherClassId + } + + fun IrType.isRealmUUID(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val realmUUIDClassId: ClassId? = realmUUIDClass.classId + return propertyClassId == realmUUIDClassId + } + + fun IrType.isMutableRealmInteger(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val mutableRealmIntegerClassId: ClassId? = mutableRealmIntegerClass.classId + return propertyClassId == mutableRealmIntegerClassId + } + + fun IrType.isRealmAny(): Boolean { + val propertyClassId: ClassId = this.classIdOrFail() + val mutableRealmIntegerClassId: ClassId? = realmAnyClass.classId + return propertyClassId == mutableRealmIntegerClassId + } + + @Suppress("ComplexMethod") + fun IrType.isValidPersistedType(): Boolean = isRealmAny() || + isByteArray() || + isString() || + isLong() || + isBoolean() || + isFloat() || + isDouble() || + isDecimal128() || + isRealmList() || + isRealmSet() || + isRealmDictionary() || + isRealmInstant() || + isObjectId() || + isRealmObjectId() || + isRealmUUID() || + isRealmList() || + isRealmSet() || + isRealmDictionary() || + isSubtypeOfClass(embeddedRealmObjectInterface) || + asymmetricRealmObjectInterface?.let { isSubtypeOfClass(it.symbol) } ?: false || + isSubtypeOfClass(realmObjectInterface) +} + +class RealmPluginContextImpl(override val pluginContext: IrPluginContext) : RealmPluginContext { + override val realmObjectHelper: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_OBJECT_HELPER) + override val realmListClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_LIST) + override val realmSetClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_SET) + override val realmDictionaryClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_DICTIONARY) + override val realmInstantClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_INSTANT) + override val realmBacklinksClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_BACKLINKS) + override val realmEmbeddedBacklinksClass: IrClass = + pluginContext.lookupClassOrThrow(ClassIds.REALM_EMBEDDED_BACKLINKS) + override val realmObjectInterface = + pluginContext.lookupClassOrThrow(ClassIds.REALM_OBJECT_INTERFACE).symbol + override val embeddedRealmObjectInterface = + pluginContext.lookupClassOrThrow(ClassIds.EMBEDDED_OBJECT_INTERFACE).symbol + + // Attempt to find the interface for asymmetric objects. + // The class will normally only be on the classpath for library-sync builds, not + // library-base builds. + override val asymmetricRealmObjectInterface: IrClass? = + pluginContext.referenceClass(ClassIds.ASYMMETRIC_OBJECT_INTERFACE)?.owner + + override val objectIdClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.KBSON_OBJECT_ID) + override val decimal128Class: IrClass = pluginContext.lookupClassOrThrow(ClassIds.KBSON_DECIMAL128) + override val realmObjectIdClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_OBJECT_ID) + override val realmUUIDClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_UUID) + override val mutableRealmIntegerClass: IrClass = + pluginContext.lookupClassOrThrow(ClassIds.REALM_MUTABLE_INTEGER) + override val realmAnyClass: IrClass = pluginContext.lookupClassOrThrow(ClassIds.REALM_ANY) + + // Primitive (Core) type getters + override val getString: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_STRING) + override val getLong: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_LONG) + override val getBoolean: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_BOOLEAN) + override val getFloat: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_FLOAT) + override val getDouble: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_DOUBLE) + override val getDecimal128: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_DECIMAL128) + override val getInstant: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_INSTANT) + override val getObjectId: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_OBJECT_ID) + override val getUUID: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_UUID) + override val getByteArray: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_BYTE_ARRAY) + override val getMutableInt: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_GET_MUTABLE_INT) + override val getRealmAny: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_GET_REALM_ANY) + override val getObject: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_GET_OBJECT) + + // Primitive (Core) type setters + override val setValue: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_ACCESSOR_HELPER_SET_VALUE) + override val setObject: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_SET_OBJECT) + override val setEmbeddedRealmObject: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_SET_EMBEDDED_REALM_OBJECT) + + // Getters and setters for collections + override val getList: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_GET_LIST) + override val setList: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_SET_LIST) + override val getSet: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_GET_SET) + override val setSet: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_SET_SET) + override val getDictionary: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_GET_DICTIONARY) + override val setDictionary: IrSimpleFunction = + realmObjectHelper.lookupFunction(Names.REALM_OBJECT_HELPER_SET_DICTIONARY) + + // Top level SDK->Core converters + override val byteToLong: IrSimpleFunction = + pluginContext.referenceFunctions( + CallableId( + FqName("io.realm.kotlin.internal"), + Name.identifier("byteToLong") + ) + ).first().owner + override val charToLong: IrSimpleFunction = + pluginContext.referenceFunctions( + CallableId( + FqName("io.realm.kotlin.internal"), + Name.identifier("charToLong") + ) + ).first().owner + override val shortToLong: IrSimpleFunction = + pluginContext.referenceFunctions( + CallableId( + FqName("io.realm.kotlin.internal"), + Name.identifier("shortToLong") + ) + ).first().owner + override val intToLong: IrSimpleFunction = + pluginContext.referenceFunctions( + CallableId( + FqName("io.realm.kotlin.internal"), + Name.identifier("intToLong") + ) + ).first().owner + + // Top level Core->SDK converters + override val longToByte: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToByte"))).first().owner + override val longToChar: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToChar"))).first().owner + override val longToShort: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToShort"))).first().owner + override val longToInt: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("longToInt"))).first().owner + override val objectIdToRealmObjectId: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("objectIdToRealmObjectId"))).first().owner + + override val providedAdapterFromRealm: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("fromRealm"))).first().owner + + override val providedAdapterToRealm: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("toRealm"))).first().owner + + override val getTypeAdapter: IrSimpleFunction = + pluginContext.referenceFunctions(CallableId(FqName("io.realm.kotlin.internal"), Name.identifier("getTypeAdapter"))).first().owner +} diff --git a/packages/plugin-compiler/src/test/kotlin/io/realm/kotlin/compiler/GenerationExtensionTest.kt b/packages/plugin-compiler/src/test/kotlin/io/realm/kotlin/compiler/GenerationExtensionTest.kt index b6f0f9bd15..bf44b0d2c7 100644 --- a/packages/plugin-compiler/src/test/kotlin/io/realm/kotlin/compiler/GenerationExtensionTest.kt +++ b/packages/plugin-compiler/src/test/kotlin/io/realm/kotlin/compiler/GenerationExtensionTest.kt @@ -319,7 +319,11 @@ class GenerationExtensionTest { // @PersistedName annotated fields "persistedNameStringField" to PropertyType.RLM_PROPERTY_TYPE_STRING, "persistedNameChildField" to PropertyType.RLM_PROPERTY_TYPE_OBJECT, - "persistedNameLinkingObjectsField" to PropertyType.RLM_PROPERTY_TYPE_LINKING_OBJECTS + "persistedNameLinkingObjectsField" to PropertyType.RLM_PROPERTY_TYPE_LINKING_OBJECTS, + + // Adapted types + "singletonAdaptedRealmInstant" to PropertyType.RLM_PROPERTY_TYPE_TIMESTAMP, + "instancedAdaptedRealmInstant" to PropertyType.RLM_PROPERTY_TYPE_TIMESTAMP, ) assertEquals(expectedProperties.size, properties.size) properties.map { property -> diff --git a/packages/plugin-compiler/src/test/resources/sample/expected/01_AFTER.ValidateIrBeforeLowering.ir b/packages/plugin-compiler/src/test/resources/sample/expected/01_AFTER.ValidateIrBeforeLowering.ir index 3ca90d16e5..e057f83e2f 100644 --- a/packages/plugin-compiler/src/test/resources/sample/expected/01_AFTER.ValidateIrBeforeLowering.ir +++ b/packages/plugin-compiler/src/test/resources/sample/expected/01_AFTER.ValidateIrBeforeLowering.ir @@ -971,7 +971,7 @@ MODULE_FRAGMENT name:
BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'internal final fun getObject (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): kotlin.Any? [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Any? origin=GET_PROPERTY - : sample.input.Child? + : sample.input.Child : $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null @@ -1075,8 +1075,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="stringListField" @@ -1099,8 +1100,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="stringListField" @@ -1128,8 +1130,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="byteListField" @@ -1152,8 +1155,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="byteListField" @@ -1181,8 +1185,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="charListField" @@ -1205,8 +1210,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="charListField" @@ -1234,8 +1240,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="shortListField" @@ -1258,8 +1265,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="shortListField" @@ -1287,8 +1295,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="intListField" @@ -1311,8 +1320,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="intListField" @@ -1340,8 +1350,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="longListField" @@ -1364,8 +1375,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="longListField" @@ -1393,8 +1405,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="booleanListField" @@ -1417,8 +1430,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="booleanListField" @@ -1446,8 +1460,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="floatListField" @@ -1470,8 +1485,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="floatListField" @@ -1499,8 +1515,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="doubleListField" @@ -1523,8 +1540,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="doubleListField" @@ -1552,8 +1570,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="timestampListField" @@ -1576,8 +1595,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="timestampListField" @@ -1605,8 +1625,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="objectIdListField" @@ -1629,8 +1650,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="objectIdListField" @@ -1658,8 +1680,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="bsonObjectIdListField" @@ -1682,8 +1705,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="bsonObjectIdListField" @@ -1711,8 +1735,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="uuidListField" @@ -1735,8 +1760,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="uuidListField" @@ -1764,8 +1790,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="binaryListField" @@ -1788,8 +1815,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="binaryListField" @@ -1817,8 +1845,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="decimal128ListField" @@ -1841,8 +1870,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="decimal128ListField" @@ -1870,8 +1900,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : sample.input.Sample + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : sample.input.Sample + : sample.input.Sample $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="objectListField" @@ -1894,8 +1925,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : sample.input.Sample + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : sample.input.Sample + : sample.input.Sample $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="objectListField" @@ -1923,8 +1955,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : sample.input.EmbeddedChild + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : sample.input.EmbeddedChild + : sample.input.EmbeddedChild $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="embeddedRealmObjectListField" @@ -1947,8 +1980,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : sample.input.EmbeddedChild + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : sample.input.EmbeddedChild + : sample.input.EmbeddedChild $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="embeddedRealmObjectListField" @@ -1976,8 +2010,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableStringListField" @@ -2000,8 +2035,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableStringListField" @@ -2029,8 +2065,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableByteListField" @@ -2053,8 +2090,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableByteListField" @@ -2082,8 +2120,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableCharListField" @@ -2106,8 +2145,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableCharListField" @@ -2135,8 +2175,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableShortListField" @@ -2159,8 +2200,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableShortListField" @@ -2188,8 +2230,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableIntListField" @@ -2212,8 +2255,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableIntListField" @@ -2241,8 +2285,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableLongListField" @@ -2265,8 +2310,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableLongListField" @@ -2294,8 +2340,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBooleanListField" @@ -2318,8 +2365,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBooleanListField" @@ -2347,8 +2395,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableFloatListField" @@ -2371,8 +2420,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableFloatListField" @@ -2400,8 +2450,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDoubleListField" @@ -2424,8 +2475,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDoubleListField" @@ -2453,8 +2505,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableTimestampListField" @@ -2477,8 +2530,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableTimestampListField" @@ -2506,8 +2560,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableObjectIdListField" @@ -2530,8 +2585,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableObjectIdListField" @@ -2559,8 +2615,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBsonObjectIdListField" @@ -2583,8 +2640,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBsonObjectIdListField" @@ -2612,8 +2670,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableUUIDListField" @@ -2636,8 +2695,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableUUIDListField" @@ -2665,8 +2725,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBinaryListField" @@ -2689,8 +2750,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBinaryListField" @@ -2718,8 +2780,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDecimal128ListField" @@ -2742,8 +2805,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDecimal128ListField" @@ -2771,8 +2835,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun getList (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmList [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmList origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableRealmAnyListField" @@ -2795,8 +2860,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmList declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmList origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun setList (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, list: io.realm.kotlin.types.RealmList, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableRealmAnyListField" @@ -2824,8 +2890,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="stringSetField" @@ -2848,8 +2915,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="stringSetField" @@ -2877,8 +2945,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="byteSetField" @@ -2901,8 +2970,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="byteSetField" @@ -2930,8 +3000,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="charSetField" @@ -2954,8 +3025,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="charSetField" @@ -2983,8 +3055,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="shortSetField" @@ -3007,8 +3080,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="shortSetField" @@ -3036,8 +3110,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="intSetField" @@ -3060,8 +3135,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="intSetField" @@ -3089,8 +3165,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="longSetField" @@ -3113,8 +3190,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="longSetField" @@ -3142,8 +3220,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="booleanSetField" @@ -3166,8 +3245,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="booleanSetField" @@ -3195,8 +3275,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="floatSetField" @@ -3219,8 +3300,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="floatSetField" @@ -3248,8 +3330,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="doubleSetField" @@ -3272,8 +3355,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="doubleSetField" @@ -3301,8 +3385,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="timestampSetField" @@ -3325,8 +3410,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="timestampSetField" @@ -3354,8 +3440,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="objectIdSetField" @@ -3378,8 +3465,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="objectIdSetField" @@ -3407,8 +3495,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="bsonObjectIdSetField" @@ -3431,8 +3520,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="bsonObjectIdSetField" @@ -3460,8 +3550,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="uuidSetField" @@ -3484,8 +3575,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="uuidSetField" @@ -3513,8 +3605,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="binarySetField" @@ -3537,8 +3630,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="binarySetField" @@ -3566,8 +3660,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="decimal128SetField" @@ -3590,8 +3685,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="decimal128SetField" @@ -3619,8 +3715,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : sample.input.Sample + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : sample.input.Sample + : sample.input.Sample $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="objectSetField" @@ -3643,8 +3740,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : sample.input.Sample + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : sample.input.Sample + : sample.input.Sample $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="objectSetField" @@ -3672,8 +3770,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableStringSetField" @@ -3696,8 +3795,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableStringSetField" @@ -3725,8 +3825,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableByteSetField" @@ -3749,8 +3850,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableByteSetField" @@ -3778,8 +3880,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableCharSetField" @@ -3802,8 +3905,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableCharSetField" @@ -3831,8 +3935,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableShortSetField" @@ -3855,8 +3960,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableShortSetField" @@ -3884,8 +3990,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableIntSetField" @@ -3908,8 +4015,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableIntSetField" @@ -3937,8 +4045,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableLongSetField" @@ -3961,8 +4070,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableLongSetField" @@ -3990,8 +4100,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBooleanSetField" @@ -4014,8 +4125,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBooleanSetField" @@ -4043,8 +4155,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableFloatSetField" @@ -4067,8 +4180,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableFloatSetField" @@ -4096,8 +4210,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDoubleSetField" @@ -4120,8 +4235,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDoubleSetField" @@ -4149,8 +4265,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableTimestampSetField" @@ -4173,8 +4290,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableTimestampSetField" @@ -4202,8 +4320,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableObjectIdSetField" @@ -4226,8 +4345,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableObjectIdSetField" @@ -4255,8 +4375,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBsonObjectIdSetField" @@ -4279,8 +4400,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBsonObjectIdSetField" @@ -4308,8 +4430,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableUUIDSetField" @@ -4332,8 +4455,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableUUIDSetField" @@ -4361,8 +4485,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBinarySetField" @@ -4385,8 +4510,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBinarySetField" @@ -4414,8 +4540,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDecimal128SetField" @@ -4438,8 +4565,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDecimal128SetField" @@ -4467,8 +4595,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun getSet (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmSet [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmSet origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableRealmAnySetField" @@ -4491,8 +4620,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmSet declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmSet origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun setSet (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, set: io.realm.kotlin.types.RealmSet, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableRealmAnySetField" @@ -4520,8 +4650,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="stringDictionaryField" @@ -4544,8 +4675,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String + : kotlin.String $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="stringDictionaryField" @@ -4573,8 +4705,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="byteDictionaryField" @@ -4597,8 +4730,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte + : kotlin.Byte $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="byteDictionaryField" @@ -4626,8 +4760,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="charDictionaryField" @@ -4650,8 +4785,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char + : kotlin.Char $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="charDictionaryField" @@ -4679,8 +4815,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="shortDictionaryField" @@ -4703,8 +4840,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short + : kotlin.Short $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="shortDictionaryField" @@ -4732,8 +4870,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="intDictionaryField" @@ -4756,8 +4895,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int + : kotlin.Int $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="intDictionaryField" @@ -4785,8 +4925,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="longDictionaryField" @@ -4809,8 +4950,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long + : kotlin.Long $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="longDictionaryField" @@ -4838,8 +4980,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="booleanDictionaryField" @@ -4862,8 +5005,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean + : kotlin.Boolean $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="booleanDictionaryField" @@ -4891,8 +5035,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="floatDictionaryField" @@ -4915,8 +5060,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float + : kotlin.Float $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="floatDictionaryField" @@ -4944,8 +5090,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="doubleDictionaryField" @@ -4968,8 +5115,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double + : kotlin.Double $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="doubleDictionaryField" @@ -4997,8 +5145,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="timestampDictionaryField" @@ -5021,8 +5170,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant + : io.realm.kotlin.types.RealmInstant $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="timestampDictionaryField" @@ -5050,8 +5200,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="objectIdDictionaryField" @@ -5074,8 +5225,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId + : io.realm.kotlin.types.ObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="objectIdDictionaryField" @@ -5103,8 +5255,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="bsonObjectIdDictionaryField" @@ -5127,8 +5280,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId + : org.mongodb.kbson.BsonObjectId $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="bsonObjectIdDictionaryField" @@ -5156,8 +5310,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="uuidDictionaryField" @@ -5180,8 +5335,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID + : io.realm.kotlin.types.RealmUUID $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="uuidDictionaryField" @@ -5209,8 +5365,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="binaryDictionaryField" @@ -5233,8 +5390,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray + : kotlin.ByteArray $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="binaryDictionaryField" @@ -5262,8 +5420,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="decimal128DictionaryField" @@ -5286,8 +5445,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } + : org.mongodb.kbson.BsonDecimal128{ org.mongodb.kbson.Decimal128Kt.Decimal128 } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="decimal128DictionaryField" @@ -5315,8 +5475,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableStringDictionaryField" @@ -5339,8 +5500,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.String? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.String? + : kotlin.String? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableStringDictionaryField" @@ -5368,8 +5530,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableByteDictionaryField" @@ -5392,8 +5555,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Byte? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Byte? + : kotlin.Byte? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableByteDictionaryField" @@ -5421,8 +5585,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableCharDictionaryField" @@ -5445,8 +5610,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Char? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Char? + : kotlin.Char? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableCharDictionaryField" @@ -5474,8 +5640,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableShortDictionaryField" @@ -5498,8 +5665,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Short? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Short? + : kotlin.Short? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableShortDictionaryField" @@ -5527,8 +5695,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableIntDictionaryField" @@ -5551,8 +5720,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Int? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Int? + : kotlin.Int? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableIntDictionaryField" @@ -5580,8 +5750,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableLongDictionaryField" @@ -5604,8 +5775,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Long? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Long? + : kotlin.Long? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableLongDictionaryField" @@ -5633,8 +5805,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBooleanDictionaryField" @@ -5657,8 +5830,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Boolean? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Boolean? + : kotlin.Boolean? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBooleanDictionaryField" @@ -5686,8 +5860,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableFloatDictionaryField" @@ -5710,8 +5885,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Float? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Float? + : kotlin.Float? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableFloatDictionaryField" @@ -5739,8 +5915,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDoubleDictionaryField" @@ -5763,8 +5940,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.Double? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.Double? + : kotlin.Double? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDoubleDictionaryField" @@ -5792,8 +5970,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableTimestampDictionaryField" @@ -5816,8 +5995,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmInstant? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmInstant? + : io.realm.kotlin.types.RealmInstant? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableTimestampDictionaryField" @@ -5845,8 +6025,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableObjectIdDictionaryField" @@ -5869,8 +6050,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.ObjectId? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.ObjectId? + : io.realm.kotlin.types.ObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableObjectIdDictionaryField" @@ -5898,8 +6080,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBsonObjectIdDictionaryField" @@ -5922,8 +6105,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonObjectId? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonObjectId? + : org.mongodb.kbson.BsonObjectId? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBsonObjectIdDictionaryField" @@ -5951,8 +6135,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableUUIDDictionaryField" @@ -5975,8 +6160,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmUUID? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmUUID? + : io.realm.kotlin.types.RealmUUID? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableUUIDDictionaryField" @@ -6004,8 +6190,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableBinaryDictionaryField" @@ -6028,8 +6215,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : kotlin.ByteArray? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : kotlin.ByteArray? + : kotlin.ByteArray? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableBinaryDictionaryField" @@ -6057,8 +6245,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableDecimal128DictionaryField" @@ -6081,8 +6270,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } + : org.mongodb.kbson.BsonDecimal128?{ org.mongodb.kbson.Decimal128Kt.Decimal128? } $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableDecimal128DictionaryField" @@ -6110,8 +6300,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableRealmAnyDictionaryField" @@ -6134,8 +6325,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : io.realm.kotlin.types.RealmAny? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : io.realm.kotlin.types.RealmAny? + : io.realm.kotlin.types.RealmAny? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableRealmAnyDictionaryField" @@ -6163,8 +6355,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : sample.input.Sample? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : sample.input.Sample? + : sample.input.Sample? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableObjectDictionaryField" @@ -6187,8 +6380,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : sample.input.Sample? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : sample.input.Sample? + : sample.input.Sample? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableObjectDictionaryField" @@ -6216,8 +6410,9 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY - : sample.input.EmbeddedChild? + then: CALL 'internal final fun getDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?): io.realm.kotlin.internal.ManagedRealmDictionary [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.internal.ManagedRealmDictionary origin=GET_PROPERTY + : sample.input.EmbeddedChild? + : sample.input.EmbeddedChild? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null propertyName: CONST String type=kotlin.String value="nullableEmbeddedObjectDictionaryField" @@ -6240,8 +6435,9 @@ MODULE_FRAGMENT name:
value: GET_VAR ': io.realm.kotlin.types.RealmDictionary declared in sample.input.Sample.' type=io.realm.kotlin.types.RealmDictionary origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY - : sample.input.EmbeddedChild? + then: CALL 'internal final fun setDictionary (obj: io.realm.kotlin.internal.RealmObjectReference, col: kotlin.String, dictionary: io.realm.kotlin.types.RealmDictionary, typeAdapter: io.realm.kotlin.types.RealmTypeAdapter?, updatePolicy: io.realm.kotlin.UpdatePolicy, cache: kotlin.collections.MutableMap{ io.realm.kotlin.internal.RealmUtilsKt.UnmanagedToManagedObjectCache }): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + : sample.input.EmbeddedChild? + : sample.input.EmbeddedChild? $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null col: CONST String type=kotlin.String value="nullableEmbeddedObjectDictionaryField" @@ -6374,7 +6570,7 @@ MODULE_FRAGMENT name:
BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'internal final fun getObject (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): kotlin.Any? [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Any? origin=GET_PROPERTY - : sample.input.Child? + : sample.input.Child : $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null @@ -6422,6 +6618,120 @@ MODULE_FRAGMENT name:
receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null reference: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null targetProperty: PROPERTY_REFERENCE 'public final publicNameLinkingObjectsField: io.realm.kotlin.query.RealmResults [delegated,val]' field=null getter='public final fun (): io.realm.kotlin.query.RealmResults declared in sample.input.Sample' setter=null type=kotlin.reflect.KProperty1> origin=PROPERTY_REFERENCE_FOR_DELEGATE + PROPERTY name:singletonAdaptedRealmInstant visibility:public modality:FINAL [var] + annotations: + TypeAdapter(adapter = CLASS_REFERENCE 'CLASS OBJECT name:RealmInstantBsonDateTimeAdapterSingleton modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=kotlin.reflect.KClass) + FIELD PROPERTY_BACKING_FIELD name:singletonAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private + EXPRESSION_BODY + CONSTRUCTOR_CALL 'public constructor () declared in org.mongodb.kbson.BsonDateTime' type=org.mongodb.kbson.BsonDateTime origin=null + FUN name: visibility:public modality:FINAL <> ($this:sample.input.Sample) returnType:org.mongodb.kbson.BsonDateTime + correspondingProperty: PROPERTY name:singletonAdaptedRealmInstant visibility:public modality:FINAL [var] + $this: VALUE_PARAMETER name: type:sample.input.Sample + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): org.mongodb.kbson.BsonDateTime declared in sample.input.Sample' + BLOCK type=org.mongodb.kbson.BsonDateTime origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp0_objectReference type:io.realm.kotlin.internal.RealmObjectReference? [val] + CALL 'public open fun (): io.realm.kotlin.internal.RealmObjectReference? declared in sample.input.Sample' type=io.realm.kotlin.internal.RealmObjectReference? origin=GET_PROPERTY + $this: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + WHEN type=org.mongodb.kbson.BsonDateTime origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:singletonAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private' type=org.mongodb.kbson.BsonDateTime origin=null + receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun toPublic (value: io.realm.kotlin.types.RealmInstant): org.mongodb.kbson.BsonDateTime declared in sample.input.RealmInstantBsonDateTimeAdapterSingleton' type=org.mongodb.kbson.BsonDateTime origin=null + $this: GET_OBJECT 'CLASS OBJECT name:RealmInstantBsonDateTimeAdapterSingleton modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=sample.input.RealmInstantBsonDateTimeAdapterSingleton + value: CALL 'internal final fun getInstant (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.types.RealmInstant? [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.types.RealmInstant? origin=GET_PROPERTY + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + propertyName: CONST String type=kotlin.String value="singletonAdaptedRealmInstant" + FUN name: visibility:public modality:FINAL <> ($this:sample.input.Sample, :org.mongodb.kbson.BsonDateTime) returnType:kotlin.Unit + correspondingProperty: PROPERTY name:singletonAdaptedRealmInstant visibility:public modality:FINAL [var] + $this: VALUE_PARAMETER name: type:sample.input.Sample + VALUE_PARAMETER name: index:0 type:org.mongodb.kbson.BsonDateTime + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp0_objectReference type:io.realm.kotlin.internal.RealmObjectReference? [val] + CALL 'public open fun (): io.realm.kotlin.internal.RealmObjectReference? declared in sample.input.Sample' type=io.realm.kotlin.internal.RealmObjectReference? origin=GET_PROPERTY + $this: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:singletonAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private' type=kotlin.Unit origin=null + receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + value: GET_VAR ': org.mongodb.kbson.BsonDateTime declared in sample.input.Sample.' type=org.mongodb.kbson.BsonDateTime origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'internal final fun setValue (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, value: kotlin.Any?): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + propertyName: CONST String type=kotlin.String value="singletonAdaptedRealmInstant" + value: CALL 'public open fun toRealm (value: org.mongodb.kbson.BsonDateTime): io.realm.kotlin.types.RealmInstant declared in sample.input.RealmInstantBsonDateTimeAdapterSingleton' type=io.realm.kotlin.types.RealmInstant origin=null + $this: GET_OBJECT 'CLASS OBJECT name:RealmInstantBsonDateTimeAdapterSingleton modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=sample.input.RealmInstantBsonDateTimeAdapterSingleton + value: GET_VAR ': org.mongodb.kbson.BsonDateTime declared in sample.input.Sample.' type=org.mongodb.kbson.BsonDateTime origin=null + PROPERTY name:instancedAdaptedRealmInstant visibility:public modality:FINAL [var] + annotations: + TypeAdapter(adapter = CLASS_REFERENCE 'CLASS CLASS name:RealmInstantBsonDateTimeAdapterInstanced modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=kotlin.reflect.KClass) + FIELD PROPERTY_BACKING_FIELD name:instancedAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private + EXPRESSION_BODY + CONSTRUCTOR_CALL 'public constructor () declared in org.mongodb.kbson.BsonDateTime' type=org.mongodb.kbson.BsonDateTime origin=null + FUN name: visibility:public modality:FINAL <> ($this:sample.input.Sample) returnType:org.mongodb.kbson.BsonDateTime + correspondingProperty: PROPERTY name:instancedAdaptedRealmInstant visibility:public modality:FINAL [var] + $this: VALUE_PARAMETER name: type:sample.input.Sample + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): org.mongodb.kbson.BsonDateTime declared in sample.input.Sample' + BLOCK type=org.mongodb.kbson.BsonDateTime origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp0_objectReference type:io.realm.kotlin.internal.RealmObjectReference? [val] + CALL 'public open fun (): io.realm.kotlin.internal.RealmObjectReference? declared in sample.input.Sample' type=io.realm.kotlin.internal.RealmObjectReference? origin=GET_PROPERTY + $this: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + WHEN type=org.mongodb.kbson.BsonDateTime origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:instancedAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private' type=org.mongodb.kbson.BsonDateTime origin=null + receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun fromRealm (obj: io.realm.kotlin.internal.RealmObjectReference, adapterClass: kotlin.reflect.KClass<*>, realmValue: kotlin.Any): kotlin.Any? [inline] declared in io.realm.kotlin.internal.ConvertersKt' type=kotlin.Any? origin=null + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + adapterClass: CLASS_REFERENCE 'CLASS CLASS name:RealmInstantBsonDateTimeAdapterInstanced modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=kotlin.reflect.KClass + realmValue: CALL 'internal final fun getInstant (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): io.realm.kotlin.types.RealmInstant? [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=io.realm.kotlin.types.RealmInstant? origin=GET_PROPERTY + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + propertyName: CONST String type=kotlin.String value="instancedAdaptedRealmInstant" + FUN name: visibility:public modality:FINAL <> ($this:sample.input.Sample, :org.mongodb.kbson.BsonDateTime) returnType:kotlin.Unit + correspondingProperty: PROPERTY name:instancedAdaptedRealmInstant visibility:public modality:FINAL [var] + $this: VALUE_PARAMETER name: type:sample.input.Sample + VALUE_PARAMETER name: index:0 type:org.mongodb.kbson.BsonDateTime + BLOCK_BODY + BLOCK type=kotlin.Unit origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp0_objectReference type:io.realm.kotlin.internal.RealmObjectReference? [val] + CALL 'public open fun (): io.realm.kotlin.internal.RealmObjectReference? declared in sample.input.Sample' type=io.realm.kotlin.internal.RealmObjectReference? origin=GET_PROPERTY + $this: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:instancedAdaptedRealmInstant type:org.mongodb.kbson.BsonDateTime visibility:private' type=kotlin.Unit origin=null + receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null + value: GET_VAR ': org.mongodb.kbson.BsonDateTime declared in sample.input.Sample.' type=org.mongodb.kbson.BsonDateTime origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'internal final fun setValue (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String, value: kotlin.Any?): kotlin.Unit [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Unit origin=GET_PROPERTY + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + propertyName: CONST String type=kotlin.String value="instancedAdaptedRealmInstant" + value: CALL 'public final fun toRealm (obj: io.realm.kotlin.internal.RealmObjectReference, adapterClass: kotlin.reflect.KClass<*>, userValue: kotlin.Any?): kotlin.Any? [inline] declared in io.realm.kotlin.internal.ConvertersKt' type=kotlin.Any? origin=null + obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + adapterClass: CLASS_REFERENCE 'CLASS CLASS name:RealmInstantBsonDateTimeAdapterInstanced modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' type=kotlin.reflect.KClass + userValue: GET_VAR ': org.mongodb.kbson.BsonDateTime declared in sample.input.Sample.' type=org.mongodb.kbson.BsonDateTime origin=null FUN name:dumpSchema visibility:public modality:FINAL <> ($this:sample.input.Sample) returnType:kotlin.String $this: VALUE_PARAMETER name: type:sample.input.Sample BLOCK_BODY @@ -6459,7 +6769,7 @@ MODULE_FRAGMENT name:
$this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.interop.ClassInfo.Companion name: CONST String type=kotlin.String value="Sample" primaryKey: CONST String type=kotlin.String value="id" - numProperties: CONST Long type=kotlin.Long value=123 + numProperties: CONST Long type=kotlin.Long value=125 isEmbedded: CONST Boolean type=kotlin.Boolean value=false isAsymmetric: CONST Boolean type=kotlin.Boolean value=false cinteropProperties: CALL 'public final fun listOf (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List origin=null @@ -7818,6 +8128,28 @@ MODULE_FRAGMENT name:
isPrimaryKey: CONST Boolean type=kotlin.Boolean value=false isIndexed: CONST Boolean type=kotlin.Boolean value=false isFullTextIndexed: CONST Boolean type=kotlin.Boolean value=false + CALL 'internal final fun createPropertyInfo (name: kotlin.String, publicName: kotlin.String?, type: io.realm.kotlin.internal.interop.PropertyType, collectionType: io.realm.kotlin.internal.interop.CollectionType, linkTarget: kotlin.reflect.KClass?, linkOriginPropertyName: kotlin.String?, isNullable: kotlin.Boolean, isPrimaryKey: kotlin.Boolean, isIndexed: kotlin.Boolean, isFullTextIndexed: kotlin.Boolean): io.realm.kotlin.internal.interop.PropertyInfo declared in io.realm.kotlin.internal.schema.CompilerPluginBridgeUtilsKt' type=io.realm.kotlin.internal.interop.PropertyInfo origin=null + name: CONST String type=kotlin.String value="singletonAdaptedRealmInstant" + publicName: CONST String type=kotlin.String value="" + type: GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:RLM_PROPERTY_TYPE_TIMESTAMP' type=io.realm.kotlin.internal.interop.PropertyType + collectionType: GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:RLM_COLLECTION_TYPE_NONE' type=io.realm.kotlin.internal.interop.CollectionType + linkTarget: CONST Null type=kotlin.reflect.KClass? value=null + linkOriginPropertyName: CONST String type=kotlin.String value="" + isNullable: CONST Boolean type=kotlin.Boolean value=false + isPrimaryKey: CONST Boolean type=kotlin.Boolean value=false + isIndexed: CONST Boolean type=kotlin.Boolean value=false + isFullTextIndexed: CONST Boolean type=kotlin.Boolean value=false + CALL 'internal final fun createPropertyInfo (name: kotlin.String, publicName: kotlin.String?, type: io.realm.kotlin.internal.interop.PropertyType, collectionType: io.realm.kotlin.internal.interop.CollectionType, linkTarget: kotlin.reflect.KClass?, linkOriginPropertyName: kotlin.String?, isNullable: kotlin.Boolean, isPrimaryKey: kotlin.Boolean, isIndexed: kotlin.Boolean, isFullTextIndexed: kotlin.Boolean): io.realm.kotlin.internal.interop.PropertyInfo declared in io.realm.kotlin.internal.schema.CompilerPluginBridgeUtilsKt' type=io.realm.kotlin.internal.interop.PropertyInfo origin=null + name: CONST String type=kotlin.String value="instancedAdaptedRealmInstant" + publicName: CONST String type=kotlin.String value="" + type: GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:RLM_PROPERTY_TYPE_TIMESTAMP' type=io.realm.kotlin.internal.interop.PropertyType + collectionType: GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:RLM_COLLECTION_TYPE_NONE' type=io.realm.kotlin.internal.interop.CollectionType + linkTarget: CONST Null type=kotlin.reflect.KClass? value=null + linkOriginPropertyName: CONST String type=kotlin.String value="" + isNullable: CONST Boolean type=kotlin.Boolean value=false + isPrimaryKey: CONST Boolean type=kotlin.Boolean value=false + isIndexed: CONST Boolean type=kotlin.Boolean value=false + isFullTextIndexed: CONST Boolean type=kotlin.Boolean value=false FUN name:io_realm_kotlin_newInstance visibility:public modality:OPEN <> ($this:sample.input.Sample.Companion) returnType:kotlin.Any overridden: public abstract fun io_realm_kotlin_newInstance (): kotlin.Any declared in io.realm.kotlin.internal.RealmObjectCompanion @@ -8473,6 +8805,16 @@ MODULE_FRAGMENT name:
: kotlin.reflect.KProperty1 first: CONST String type=kotlin.String value="persistedNameLinkingObjectsField" second: PROPERTY_REFERENCE 'public final publicNameLinkingObjectsField: io.realm.kotlin.query.RealmResults [delegated,val]' field=null getter='public final fun (): io.realm.kotlin.query.RealmResults declared in sample.input.Sample' setter=null type=kotlin.reflect.KMutableProperty1 origin=null + CONSTRUCTOR_CALL 'public constructor (first: A of kotlin.Pair, second: B of kotlin.Pair) [primary] declared in kotlin.Pair' type=kotlin.Pair> origin=null + : kotlin.String + : kotlin.reflect.KMutableProperty1 + first: CONST String type=kotlin.String value="singletonAdaptedRealmInstant" + second: PROPERTY_REFERENCE 'public final singletonAdaptedRealmInstant: org.mongodb.kbson.BsonDateTime [var]' field=null getter='public final fun (): org.mongodb.kbson.BsonDateTime declared in sample.input.Sample' setter='public final fun (: org.mongodb.kbson.BsonDateTime): kotlin.Unit declared in sample.input.Sample' type=kotlin.reflect.KMutableProperty1 origin=null + CONSTRUCTOR_CALL 'public constructor (first: A of kotlin.Pair, second: B of kotlin.Pair) [primary] declared in kotlin.Pair' type=kotlin.Pair> origin=null + : kotlin.String + : kotlin.reflect.KMutableProperty1 + first: CONST String type=kotlin.String value="instancedAdaptedRealmInstant" + second: PROPERTY_REFERENCE 'public final instancedAdaptedRealmInstant: org.mongodb.kbson.BsonDateTime [var]' field=null getter='public final fun (): org.mongodb.kbson.BsonDateTime declared in sample.input.Sample' setter='public final fun (: org.mongodb.kbson.BsonDateTime): kotlin.Unit declared in sample.input.Sample' type=kotlin.reflect.KMutableProperty1 origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:sample.input.Sample.Companion) returnType:kotlin.collections.Map> correspondingProperty: PROPERTY name:io_realm_kotlin_fields visibility:public modality:FINAL [var] overridden: @@ -8560,6 +8902,80 @@ MODULE_FRAGMENT name:
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:io_realm_kotlin_objectReference type:io.realm.kotlin.internal.RealmObjectReference? visibility:private' type=kotlin.Unit origin=null receiver: GET_VAR ': sample.input.Sample declared in sample.input.Sample.' type=sample.input.Sample origin=null value: GET_VAR ': io.realm.kotlin.internal.RealmObjectReference? declared in sample.input.Sample.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null + CLASS OBJECT name:RealmInstantBsonDateTimeAdapterSingleton modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:sample.input.RealmInstantBsonDateTimeAdapterSingleton + CONSTRUCTOR visibility:private <> () returnType:sample.input.RealmInstantBsonDateTimeAdapterSingleton [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:RealmInstantBsonDateTimeAdapterSingleton modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' + FUN name:toPublic visibility:public modality:OPEN <> ($this:sample.input.RealmInstantBsonDateTimeAdapterSingleton, value:io.realm.kotlin.types.RealmInstant) returnType:org.mongodb.kbson.BsonDateTime + overridden: + public abstract fun toPublic (value: R of io.realm.kotlin.types.RealmTypeAdapter): P of io.realm.kotlin.types.RealmTypeAdapter declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:sample.input.RealmInstantBsonDateTimeAdapterSingleton + VALUE_PARAMETER name:value index:0 type:io.realm.kotlin.types.RealmInstant + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toPublic (value: io.realm.kotlin.types.RealmInstant): org.mongodb.kbson.BsonDateTime declared in sample.input.RealmInstantBsonDateTimeAdapterSingleton' + CONSTRUCTOR_CALL 'public constructor (value: kotlin.Long) [primary] declared in org.mongodb.kbson.BsonDateTime' type=org.mongodb.kbson.BsonDateTime origin=null + value: CONST Long type=kotlin.Long value=100 + FUN name:toRealm visibility:public modality:OPEN <> ($this:sample.input.RealmInstantBsonDateTimeAdapterSingleton, value:org.mongodb.kbson.BsonDateTime) returnType:io.realm.kotlin.types.RealmInstant + overridden: + public abstract fun toRealm (value: P of io.realm.kotlin.types.RealmTypeAdapter): R of io.realm.kotlin.types.RealmTypeAdapter declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:sample.input.RealmInstantBsonDateTimeAdapterSingleton + VALUE_PARAMETER name:value index:0 type:org.mongodb.kbson.BsonDateTime + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toRealm (value: org.mongodb.kbson.BsonDateTime): io.realm.kotlin.types.RealmInstant declared in sample.input.RealmInstantBsonDateTimeAdapterSingleton' + CALL 'public final fun now (): io.realm.kotlin.types.RealmInstant declared in io.realm.kotlin.types.RealmInstant.Companion' type=io.realm.kotlin.types.RealmInstant origin=null + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=io.realm.kotlin.types.RealmInstant.Companion + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int [fake_override] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String [fake_override] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:RealmInstantBsonDateTimeAdapterInstanced modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:sample.input.RealmInstantBsonDateTimeAdapterInstanced + CONSTRUCTOR visibility:public <> () returnType:sample.input.RealmInstantBsonDateTimeAdapterInstanced [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:RealmInstantBsonDateTimeAdapterInstanced modality:FINAL visibility:public superTypes:[io.realm.kotlin.types.RealmTypeAdapter]' + FUN name:toPublic visibility:public modality:OPEN <> ($this:sample.input.RealmInstantBsonDateTimeAdapterInstanced, value:io.realm.kotlin.types.RealmInstant) returnType:org.mongodb.kbson.BsonDateTime + overridden: + public abstract fun toPublic (value: R of io.realm.kotlin.types.RealmTypeAdapter): P of io.realm.kotlin.types.RealmTypeAdapter declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:sample.input.RealmInstantBsonDateTimeAdapterInstanced + VALUE_PARAMETER name:value index:0 type:io.realm.kotlin.types.RealmInstant + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toPublic (value: io.realm.kotlin.types.RealmInstant): org.mongodb.kbson.BsonDateTime declared in sample.input.RealmInstantBsonDateTimeAdapterInstanced' + CONSTRUCTOR_CALL 'public constructor (value: kotlin.Long) [primary] declared in org.mongodb.kbson.BsonDateTime' type=org.mongodb.kbson.BsonDateTime origin=null + value: CONST Long type=kotlin.Long value=100 + FUN name:toRealm visibility:public modality:OPEN <> ($this:sample.input.RealmInstantBsonDateTimeAdapterInstanced, value:org.mongodb.kbson.BsonDateTime) returnType:io.realm.kotlin.types.RealmInstant + overridden: + public abstract fun toRealm (value: P of io.realm.kotlin.types.RealmTypeAdapter): R of io.realm.kotlin.types.RealmTypeAdapter declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:sample.input.RealmInstantBsonDateTimeAdapterInstanced + VALUE_PARAMETER name:value index:0 type:org.mongodb.kbson.BsonDateTime + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toRealm (value: org.mongodb.kbson.BsonDateTime): io.realm.kotlin.types.RealmInstant declared in sample.input.RealmInstantBsonDateTimeAdapterInstanced' + CALL 'public final fun now (): io.realm.kotlin.types.RealmInstant declared in io.realm.kotlin.types.RealmInstant.Companion' type=io.realm.kotlin.types.RealmInstant origin=null + $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Companion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]' type=io.realm.kotlin.types.RealmInstant.Companion + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int [fake_override] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String [fake_override] declared in io.realm.kotlin.types.RealmTypeAdapter + $this: VALUE_PARAMETER name: type:kotlin.Any CLASS CLASS name:Child modality:OPEN visibility:public superTypes:[io.realm.kotlin.types.RealmObject; io.realm.kotlin.internal.RealmObjectInternal] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:sample.input.Child CONSTRUCTOR visibility:public <> () returnType:sample.input.Child [primary] @@ -8892,7 +9308,7 @@ MODULE_FRAGMENT name:
BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'internal final fun getObject (obj: io.realm.kotlin.internal.RealmObjectReference, propertyName: kotlin.String): kotlin.Any? [inline] declared in io.realm.kotlin.internal.RealmObjectHelper' type=kotlin.Any? origin=GET_PROPERTY - : sample.input.EmbeddedChild? + : sample.input.EmbeddedChild : $this: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:RealmObjectHelper modality:FINAL visibility:internal superTypes:[kotlin.Any]' type=io.realm.kotlin.internal.RealmObjectHelper obj: GET_VAR 'val tmp0_objectReference: io.realm.kotlin.internal.RealmObjectReference? [val] declared in sample.input.EmbeddedParent.' type=io.realm.kotlin.internal.RealmObjectReference? origin=null diff --git a/packages/plugin-compiler/src/test/resources/sample/input/Sample.kt b/packages/plugin-compiler/src/test/resources/sample/input/Sample.kt index 23018c2718..40dd472f33 100644 --- a/packages/plugin-compiler/src/test/resources/sample/input/Sample.kt +++ b/packages/plugin-compiler/src/test/resources/sample/input/Sample.kt @@ -30,10 +30,13 @@ import io.realm.kotlin.types.RealmList import io.realm.kotlin.types.RealmObject import io.realm.kotlin.types.RealmSet import io.realm.kotlin.types.RealmUUID +import io.realm.kotlin.types.RealmTypeAdapter import io.realm.kotlin.types.annotations.Ignore import io.realm.kotlin.types.annotations.Index import io.realm.kotlin.types.annotations.PrimaryKey import io.realm.kotlin.types.annotations.PersistedName +import io.realm.kotlin.types.annotations.TypeAdapter +import org.mongodb.kbson.BsonDateTime import org.mongodb.kbson.BsonObjectId import org.mongodb.kbson.Decimal128 import java.util.* @@ -201,9 +204,27 @@ class Sample : RealmObject { @PersistedName("persistedNameLinkingObjectsField") val publicNameLinkingObjectsField by backlinks(Sample::objectSetField) + @TypeAdapter(adapter = RealmInstantBsonDateTimeAdapterSingleton::class) + var singletonAdaptedRealmInstant: BsonDateTime = BsonDateTime() + + @TypeAdapter(adapter = RealmInstantBsonDateTimeAdapterInstanced::class) + var instancedAdaptedRealmInstant: BsonDateTime = BsonDateTime() + fun dumpSchema(): String = "${Sample.`io_realm_kotlin_schema`()}" } +object RealmInstantBsonDateTimeAdapterSingleton: RealmTypeAdapter { + override fun toPublic(value: RealmInstant): BsonDateTime = BsonDateTime(100) + + override fun toRealm(value: BsonDateTime): RealmInstant = RealmInstant.now() +} + +class RealmInstantBsonDateTimeAdapterInstanced: RealmTypeAdapter { + override fun toPublic(value: RealmInstant): BsonDateTime = BsonDateTime(100) + + override fun toRealm(value: BsonDateTime): RealmInstant = RealmInstant.now() +} + class Child : RealmObject { var name: String? = "Child-default" val linkingObjectsByObject by backlinks(Sample::child) diff --git a/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/AllTypes.kt b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/AllTypes.kt new file mode 100644 index 0000000000..66874558fe --- /dev/null +++ b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/AllTypes.kt @@ -0,0 +1,693 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.realm.kotlin.entities.adapters + +import io.realm.kotlin.ext.asBsonObjectId +import io.realm.kotlin.ext.asRealmObject +import io.realm.kotlin.ext.realmDictionaryOf +import io.realm.kotlin.ext.realmListOf +import io.realm.kotlin.ext.realmSetOf +import io.realm.kotlin.internal.interop.CollectionType +import io.realm.kotlin.test.util.TypeDescriptor +import io.realm.kotlin.types.ObjectId +import io.realm.kotlin.types.RealmAny +import io.realm.kotlin.types.RealmDictionary +import io.realm.kotlin.types.RealmInstant +import io.realm.kotlin.types.RealmList +import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmSet +import io.realm.kotlin.types.RealmTypeAdapter +import io.realm.kotlin.types.RealmUUID +import io.realm.kotlin.types.annotations.PersistedName +import io.realm.kotlin.types.annotations.TypeAdapter +import org.mongodb.kbson.BsonDecimal128 +import org.mongodb.kbson.BsonObjectId +import org.mongodb.kbson.Decimal128 +import kotlin.reflect.KMutableProperty1 + +class ReferencedObject : RealmObject { + var stringField: String = "" + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other == null || this::class != other::class) return false + + other as ReferencedObject + + if (stringField != other.stringField) return false + + return true + } + + override fun hashCode(): Int { + return stringField.hashCode() + } +} + +@Suppress("MagicNumber") +class AllTypes : RealmObject { + + @PersistedName("persistedStringField") + @TypeAdapter(StringAdapter::class) + var stringField: String = "Realm" + + @TypeAdapter(BooleanAdapter::class) + var booleanField: Boolean = true + + @TypeAdapter(LongAdapter::class) + var longField: Long = 10L + + @TypeAdapter(FloatAdapter::class) + var floatField: Float = 3.14f + + @TypeAdapter(DoubleAdapter::class) + var doubleField: Double = 1.19840122 + + @TypeAdapter(Decimal128Adapter::class) + var decimal128Field: Decimal128 = BsonDecimal128("1.8446744073709551618E-6157") + + @TypeAdapter(TimestampAdapter::class) + var timestampField: RealmInstant = RealmInstant.from(100, 1000) + + @TypeAdapter(ObjectIdAdapter::class) + var objectIdField: ObjectId = ObjectId.from("507f1f77bcf86cd799439011") + + @TypeAdapter(BsonObjectIdAdapter::class) + var bsonObjectIdField: BsonObjectId = BsonObjectId("507f1f77bcf86cd799439011") + + @TypeAdapter(UuidAdapter::class) + var uuidField: RealmUUID = RealmUUID.from("46423f1b-ce3e-4a7e-812f-004cf9c42d76") + + @TypeAdapter(BinaryAdapter::class) + var binaryField: ByteArray = byteArrayOf(42) + + @TypeAdapter(NullableStringAdapter::class) + var nullableStringField: String? = null + + @TypeAdapter(NullableBooleanAdapter::class) + var nullableBooleanField: Boolean? = null + + @TypeAdapter(NullableLongAdapter::class) + var nullableLongField: Long? = null + + @TypeAdapter(NullableFloatAdapter::class) + var nullableFloatField: Float? = null + + @TypeAdapter(NullableDoubleAdapter::class) + var nullableDoubleField: Double? = null + + @TypeAdapter(NullableDecimal128Adapter::class) + var nullableDecimal128Field: Decimal128? = null + + @TypeAdapter(NullableTimestampAdapter::class) + var nullableTimestampField: RealmInstant? = null + + @TypeAdapter(NullableObjectIdAdapter::class) + var nullableObjectIdField: ObjectId? = null + + @TypeAdapter(NullableBsonObjectIdAdapter::class) + var nullableBsonObjectIdField: BsonObjectId? = null + + @TypeAdapter(NullableUuidAdapter::class) + var nullableUuidField: RealmUUID? = null + + @TypeAdapter(NullableBinaryAdapter::class) + var nullableBinaryField: ByteArray? = null + + @TypeAdapter(RealmAnyAdapter::class) + var nullableRealmAnyField: RealmAny? = null + + @TypeAdapter(NullableReferencedObjectAdapter::class) + var nullableObject: ReferencedObject? = null + + @TypeAdapter(StringRealmListAdapter::class) + var stringListField: RealmList = realmListOf() + +// var byteListField: RealmList = realmListOf() +// var charListField: RealmList = realmListOf() +// var shortListField: RealmList = realmListOf() +// var intListField: RealmList = realmListOf() +// var longListField: RealmList = realmListOf() +// var booleanListField: RealmList = realmListOf() +// var floatListField: RealmList = realmListOf() +// var doubleListField: RealmList = realmListOf() +// var timestampListField: RealmList = realmListOf() +// var objectIdListField: RealmList = realmListOf() +// var bsonObjectIdListField: RealmList = realmListOf() +// var uuidListField: RealmList = realmListOf() +// var binaryListField: RealmList = realmListOf() +// var decimal128ListField: RealmList = realmListOf() + + @TypeAdapter(ReferencedObjectRealmListAdapter::class) + var objectListField: RealmList = realmListOf() + + @TypeAdapter(NullableStringRealmListAdapter::class) + var nullableStringListField: RealmList = realmListOf() + +// var nullableByteListField: RealmList = realmListOf() +// var nullableCharListField: RealmList = realmListOf() +// var nullableShortListField: RealmList = realmListOf() +// var nullableIntListField: RealmList = realmListOf() +// var nullableLongListField: RealmList = realmListOf() +// var nullableBooleanListField: RealmList = realmListOf() +// var nullableFloatListField: RealmList = realmListOf() +// var nullableDoubleListField: RealmList = realmListOf() +// var nullableTimestampListField: RealmList = realmListOf() +// var nullableObjectIdListField: RealmList = realmListOf() +// var nullableBsonObjectIdListField: RealmList = realmListOf() +// var nullableUUIDListField: RealmList = realmListOf() +// var nullableBinaryListField: RealmList = realmListOf() +// var nullableDecimal128ListField: RealmList = realmListOf() +// var nullableRealmAnyListField: RealmList = realmListOf() + + @TypeAdapter(StringRealmSetAdapter::class) + var stringSetField: RealmSet = realmSetOf() + + // var byteSetField: RealmSet = realmSetOf() +// var charSetField: RealmSet = realmSetOf() +// var shortSetField: RealmSet = realmSetOf() +// var intSetField: RealmSet = realmSetOf() +// var longSetField: RealmSet = realmSetOf() +// var booleanSetField: RealmSet = realmSetOf() +// var floatSetField: RealmSet = realmSetOf() +// var doubleSetField: RealmSet = realmSetOf() +// var timestampSetField: RealmSet = realmSetOf() +// var objectIdSetField: RealmSet = realmSetOf() +// var bsonObjectIdSetField: RealmSet = realmSetOf() +// var uuidSetField: RealmSet = realmSetOf() +// var binarySetField: RealmSet = realmSetOf() +// var decimal128SetField: RealmSet = realmSetOf() + @TypeAdapter(ReferencedObjectRealmSetAdapter::class) + var objectSetField: RealmSet = realmSetOf() + + @TypeAdapter(NullableStringRealmSetAdapter::class) + var nullableStringSetField: RealmSet = realmSetOf() +// var nullableByteSetField: RealmSet = realmSetOf() +// var nullableCharSetField: RealmSet = realmSetOf() +// var nullableShortSetField: RealmSet = realmSetOf() +// var nullableIntSetField: RealmSet = realmSetOf() +// var nullableLongSetField: RealmSet = realmSetOf() +// var nullableBooleanSetField: RealmSet = realmSetOf() +// var nullableFloatSetField: RealmSet = realmSetOf() +// var nullableDoubleSetField: RealmSet = realmSetOf() +// var nullableTimestampSetField: RealmSet = realmSetOf() +// var nullableObjectIdSetField: RealmSet = realmSetOf() +// var nullableBsonObjectIdSetField: RealmSet = realmSetOf() +// var nullableUUIDSetField: RealmSet = realmSetOf() +// var nullableBinarySetField: RealmSet = realmSetOf() +// var nullableDecimal128SetField: RealmSet = realmSetOf() +// var nullableRealmAnySetField: RealmSet = realmSetOf() + + @TypeAdapter(StringRealmDictionaryAdapter::class) + var stringDictionaryField: RealmDictionary = realmDictionaryOf() + +// var byteDictionaryField: RealmDictionary = realmDictionaryOf() +// var charDictionaryField: RealmDictionary = realmDictionaryOf() +// var shortDictionaryField: RealmDictionary = realmDictionaryOf() +// var intDictionaryField: RealmDictionary = realmDictionaryOf() +// var longDictionaryField: RealmDictionary = realmDictionaryOf() +// var booleanDictionaryField: RealmDictionary = realmDictionaryOf() +// var floatDictionaryField: RealmDictionary = realmDictionaryOf() +// var doubleDictionaryField: RealmDictionary = realmDictionaryOf() +// var timestampDictionaryField: RealmDictionary = realmDictionaryOf() +// var objectIdDictionaryField: RealmDictionary = realmDictionaryOf() +// var bsonObjectIdDictionaryField: RealmDictionary = realmDictionaryOf() +// var uuidDictionaryField: RealmDictionary = realmDictionaryOf() +// var binaryDictionaryField: RealmDictionary = realmDictionaryOf() +// var decimal128DictionaryField: RealmDictionary = realmDictionaryOf() + + @TypeAdapter(NullableStringRealmDictionaryAdapter::class) + var nullableStringDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableByteDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableCharDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableShortDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableIntDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableLongDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableBooleanDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableFloatDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableDoubleDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableTimestampDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableObjectIdDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableBsonObjectIdDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableUUIDDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableBinaryDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableDecimal128DictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableRealmAnyDictionaryField: RealmDictionary = realmDictionaryOf() +// var nullableObjectDictionaryFieldNotNull: RealmDictionary = realmDictionaryOf() + @TypeAdapter(ReferencedObjectRealmDictionaryAdapter::class) + var nullableObjectDictionaryFieldNull: RealmDictionary = realmDictionaryOf() + + var adaptedStringListField: RealmList = realmListOf() + var adaptedStringSetField: RealmSet = realmSetOf() + var adaptedStringDictionaryField: RealmDictionary = realmDictionaryOf() + + var adaptedObjectListField: RealmList = realmListOf() + var adaptedObjectSetField: RealmSet = realmSetOf() + var adaptedObjectDictionaryField: RealmDictionary = + realmDictionaryOf() + + companion object { + val properties: Map> + val adaptedTypeParameterProperties: Map> + + init { + val fieldProperties = ( + listOf( + String::class to AllTypes::stringField, + Long::class to AllTypes::longField, + Boolean::class to AllTypes::booleanField, + Float::class to AllTypes::floatField, + Double::class to AllTypes::doubleField, + Decimal128::class to AllTypes::decimal128Field, + RealmInstant::class to AllTypes::timestampField, + ObjectId::class to AllTypes::objectIdField, + BsonObjectId::class to AllTypes::bsonObjectIdField, + RealmUUID::class to AllTypes::uuidField, + ByteArray::class to AllTypes::binaryField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + listOf( + String::class to AllTypes::nullableStringField, + Long::class to AllTypes::nullableLongField, + Boolean::class to AllTypes::nullableBooleanField, + Float::class to AllTypes::nullableFloatField, + Double::class to AllTypes::nullableDoubleField, + Decimal128::class to AllTypes::nullableDecimal128Field, + RealmInstant::class to AllTypes::nullableTimestampField, + ObjectId::class to AllTypes::nullableObjectIdField, + BsonObjectId::class to AllTypes::nullableBsonObjectIdField, + RealmUUID::class to AllTypes::nullableUuidField, + ByteArray::class to AllTypes::nullableBinaryField, + RealmAny::class to AllTypes::nullableRealmAnyField, + RealmObject::class to AllTypes::nullableObject, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, true) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_NONE, + elementType = pair.first + ) to pair.second + } + + val listProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO LISTS + String::class to AllTypes::stringListField, + RealmObject::class to AllTypes::objectListField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + listOf( + // NULLABLE CLASSIFIERS TO LISTS + String::class to AllTypes::nullableStringListField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, true) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_LIST, + elementType = pair.first + ) to pair.second + } + + val setProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO SETS + String::class to AllTypes::stringSetField, + RealmObject::class to AllTypes::objectSetField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + listOf( + // NULLABLE CLASSIFIERS TO SETS + String::class to AllTypes::nullableStringSetField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, true) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_SET, + elementType = pair.first + ) to pair.second + } + + val dictionaryProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO DICTIONARY + String::class to AllTypes::stringDictionaryField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + listOf( + // NULLABLE CLASSIFIERS TO DICTIONARY + String::class to AllTypes::nullableStringDictionaryField, + RealmObject::class to AllTypes::nullableObjectDictionaryFieldNull, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, true) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_DICTIONARY, + elementType = pair.first + ) to pair.second + } + + properties = fieldProperties + listProperties + setProperties + dictionaryProperties + + val adaptedListProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO LISTS + String::class to AllTypes::adaptedStringListField, + RealmObject::class to AllTypes::adaptedObjectListField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_LIST, + elementType = pair.first + ) to pair.second + } + + val adaptedSetProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO SETS + String::class to AllTypes::adaptedStringSetField, + RealmObject::class to AllTypes::adaptedObjectSetField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_SET, + elementType = pair.first + ) to pair.second + } + + val adaptedDictionaryProperties = ( + listOf( + // NON NULLABLE CLASSIFIERS TO DICTIONARY + String::class to AllTypes::adaptedStringDictionaryField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, false) to pair.second + } + listOf( + // NULLABLE CLASSIFIERS TO DICTIONARY + RealmObject::class to AllTypes::adaptedObjectDictionaryField, + ).map { pair -> + TypeDescriptor.ElementType(pair.first, true) to pair.second + } + ).associate { pair -> + TypeDescriptor.RealmFieldType( + collectionType = CollectionType.RLM_COLLECTION_TYPE_DICTIONARY, + elementType = pair.first + ) to pair.second + } + + adaptedTypeParameterProperties = adaptedListProperties + adaptedSetProperties + adaptedDictionaryProperties + } + } +} + +// Passthrough converters, we could use BsonTypes, but passthrough is also a case to test. +object StringAdapter : RealmTypeAdapter { + override fun toPublic(value: String): String = value.toString() + + override fun toRealm(value: String): String = value.toString() +} + +typealias AdaptedString = @TypeAdapter(StringAdapter::class) String + +typealias RealmReferencedObject = @TypeAdapter(ReferencedObjectAdapter::class) ReferencedObject +typealias NullableRealmReferencedObject = @TypeAdapter(NullableReferencedObjectAdapter::class) ReferencedObject? + +object BooleanAdapter : RealmTypeAdapter { + override fun toPublic(realmValue: Boolean): Boolean = realmValue.not().not() + + override fun toRealm(value: Boolean): Boolean = value.not().not() +} + +object LongAdapter : RealmTypeAdapter { + override fun toPublic(realmValue: Long): Long = realmValue + + override fun toRealm(value: Long): Long = value +} + +object FloatAdapter : RealmTypeAdapter { + override fun toPublic(realmValue: Float): Float = realmValue.toFloat() + + override fun toRealm(value: Float): Float = value.toFloat() +} + +object DoubleAdapter : RealmTypeAdapter { + override fun toPublic(realmValue: Double): Double = realmValue.toDouble() + + override fun toRealm(value: Double): Double = value.toDouble() +} + +object Decimal128Adapter : RealmTypeAdapter { + override fun toPublic(value: Decimal128): Decimal128 = + Decimal128.fromIEEE754BIDEncoding(value.high, value.low) + + override fun toRealm(value: Decimal128): Decimal128 = + Decimal128.fromIEEE754BIDEncoding(value.high, value.low) +} + +object TimestampAdapter : RealmTypeAdapter { + override fun toPublic(value: RealmInstant): RealmInstant = + RealmInstant.from(value.epochSeconds, value.nanosecondsOfSecond) + + override fun toRealm(value: RealmInstant): RealmInstant = + RealmInstant.from(value.epochSeconds, value.nanosecondsOfSecond) +} + +object ObjectIdAdapter : RealmTypeAdapter { + override fun toPublic(value: ObjectId): ObjectId = + ObjectId.from(value.asBsonObjectId().toHexString()) + + override fun toRealm(value: ObjectId): ObjectId = + ObjectId.from(value.asBsonObjectId().toHexString()) +} + +object BsonObjectIdAdapter : RealmTypeAdapter { + override fun toPublic(value: BsonObjectId): BsonObjectId = + BsonObjectId(value.toHexString()) + + override fun toRealm(value: BsonObjectId): BsonObjectId = BsonObjectId(value.toHexString()) +} + +object UuidAdapter : RealmTypeAdapter { + override fun toPublic(value: RealmUUID): RealmUUID = RealmUUID.from(value.bytes) + + override fun toRealm(value: RealmUUID): RealmUUID = RealmUUID.from(value.bytes) +} + +object BinaryAdapter : RealmTypeAdapter { + override fun toPublic(value: ByteArray): ByteArray = value.copyOf() + + override fun toRealm(value: ByteArray): ByteArray = value.copyOf() +} + +object NullableStringAdapter : RealmTypeAdapter { + override fun toPublic(value: String?): String? = value?.toString() + + override fun toRealm(value: String?): String? = value?.toString() +} + +object NullableBooleanAdapter : RealmTypeAdapter { + override fun toPublic(value: Boolean?): Boolean? = value?.not()?.not() + + override fun toRealm(value: Boolean?): Boolean? = value?.not()?.not() +} + +object NullableLongAdapter : RealmTypeAdapter { + override fun toPublic(value: Long?): Long? = value + + override fun toRealm(value: Long?): Long? = value +} + +object NullableFloatAdapter : RealmTypeAdapter { + override fun toPublic(value: Float?): Float? = value?.toFloat() + + override fun toRealm(value: Float?): Float? = value?.toFloat() +} + +object NullableDoubleAdapter : RealmTypeAdapter { + override fun toPublic(value: Double?): Double? = value?.toDouble() + + override fun toRealm(value: Double?): Double? = value?.toDouble() +} + +object NullableDecimal128Adapter : RealmTypeAdapter { + override fun toPublic(value: Decimal128?): Decimal128? = + value?.let { Decimal128.fromIEEE754BIDEncoding(value.high, value.low) } + + override fun toRealm(value: Decimal128?): Decimal128? = + value?.let { Decimal128.fromIEEE754BIDEncoding(value.high, value.low) } +} + +object NullableTimestampAdapter : RealmTypeAdapter { + override fun toPublic(value: RealmInstant?): RealmInstant? = value?.let { + RealmInstant.from( + value.epochSeconds, + value.nanosecondsOfSecond + ) + } + + override fun toRealm(value: RealmInstant?): RealmInstant? = + value?.let { RealmInstant.from(value.epochSeconds, value.nanosecondsOfSecond) } +} + +object NullableObjectIdAdapter : RealmTypeAdapter { + override fun toPublic(value: ObjectId?): ObjectId? = + value?.let { ObjectId.from(value.asBsonObjectId().toHexString()) } + + override fun toRealm(value: ObjectId?): ObjectId? = + value?.let { ObjectId.from(value.asBsonObjectId().toHexString()) } +} + +object NullableBsonObjectIdAdapter : RealmTypeAdapter { + override fun toPublic(value: BsonObjectId?): BsonObjectId? = + value?.let { BsonObjectId(value.toHexString()) } + + override fun toRealm(value: BsonObjectId?): BsonObjectId? = + value?.let { BsonObjectId(value.toHexString()) } +} + +object NullableUuidAdapter : RealmTypeAdapter { + override fun toPublic(value: RealmUUID?): RealmUUID? = + value?.let { RealmUUID.from(value.bytes) } + + override fun toRealm(value: RealmUUID?): RealmUUID? = value?.let { RealmUUID.from(value.bytes) } +} + +object NullableBinaryAdapter : RealmTypeAdapter { + override fun toPublic(value: ByteArray?): ByteArray? = + value?.let { value.copyOf() } + + override fun toRealm(value: ByteArray?): ByteArray? = value?.let { value.copyOf() } +} + +object RealmAnyAdapter : RealmTypeAdapter { + override fun toPublic(value: RealmAny?): RealmAny? = + value?.let { value.clone() } + + override fun toRealm(value: RealmAny?): RealmAny? = value?.let { value.clone() } +} + +object ReferencedObjectAdapter : RealmTypeAdapter { + override fun toPublic(value: ReferencedObject): ReferencedObject = + value.let { ReferencedObject().apply { stringField = value.stringField } } + + override fun toRealm(value: ReferencedObject): ReferencedObject = + value.let { ReferencedObject().apply { stringField = value.stringField } } +} + +object NullableReferencedObjectAdapter : RealmTypeAdapter { + override fun toPublic(value: ReferencedObject?): ReferencedObject? = + value?.let { ReferencedObject().apply { stringField = value.stringField } } + + override fun toRealm(value: ReferencedObject?): ReferencedObject? = + value?.let { ReferencedObject().apply { stringField = value.stringField } } +} + +object StringRealmListAdapter : RealmTypeAdapter, RealmList> { + override fun toPublic(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } + + override fun toRealm(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } +} + +object NullableStringRealmListAdapter : RealmTypeAdapter, RealmList> { + override fun toPublic(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } + + override fun toRealm(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } +} + +object ReferencedObjectRealmListAdapter : + RealmTypeAdapter, RealmList> { + override fun toPublic(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } + + override fun toRealm(value: RealmList): RealmList = + realmListOf().apply { addAll(value) } +} + +object StringRealmSetAdapter : RealmTypeAdapter, RealmSet> { + override fun toPublic(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } + + override fun toRealm(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } +} + +object NullableStringRealmSetAdapter : RealmTypeAdapter, RealmSet> { + override fun toPublic(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } + + override fun toRealm(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } +} + +object ReferencedObjectRealmSetAdapter : + RealmTypeAdapter, RealmSet> { + override fun toPublic(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } + + override fun toRealm(value: RealmSet): RealmSet = + realmSetOf().apply { addAll(value) } +} + +object StringRealmDictionaryAdapter : + RealmTypeAdapter, RealmDictionary> { + override fun toPublic(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } + + override fun toRealm(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } +} + +object ReferencedObjectRealmDictionaryAdapter : + RealmTypeAdapter, RealmDictionary> { + override fun toPublic(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } + + override fun toRealm(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } +} + +object NullableStringRealmDictionaryAdapter : + RealmTypeAdapter, RealmDictionary> { + override fun toPublic(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } + + override fun toRealm(value: RealmDictionary): RealmDictionary = + realmDictionaryOf().apply { putAll(value) } +} + +internal fun RealmAny.clone() = when (type) { + RealmAny.Type.INT -> RealmAny.create(asInt()) + RealmAny.Type.BOOL -> RealmAny.create(asBoolean()) + RealmAny.Type.STRING -> RealmAny.create(asString()) + RealmAny.Type.BINARY -> RealmAny.create(asByteArray()) + RealmAny.Type.TIMESTAMP -> RealmAny.create(asRealmInstant()) + RealmAny.Type.FLOAT -> RealmAny.create(asFloat()) + RealmAny.Type.DOUBLE -> RealmAny.create(asDouble()) + RealmAny.Type.DECIMAL128 -> RealmAny.create(asDecimal128()) + RealmAny.Type.OBJECT_ID -> RealmAny.create(asObjectId()) + RealmAny.Type.UUID -> RealmAny.create(asRealmUUID()) + RealmAny.Type.OBJECT -> RealmAny.create(asRealmObject()) +} diff --git a/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingInstancedAdapter.kt b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingInstancedAdapter.kt new file mode 100644 index 0000000000..37eb0461d0 --- /dev/null +++ b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingInstancedAdapter.kt @@ -0,0 +1,39 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@file:Suppress("invisible_member", "invisible_reference") + +package io.realm.kotlin.entities.adapters + +import io.realm.kotlin.internal.asBsonDateTime +import io.realm.kotlin.internal.toRealmInstant +import io.realm.kotlin.types.RealmInstant +import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmTypeAdapter +import io.realm.kotlin.types.annotations.TypeAdapter +import org.mongodb.kbson.BsonDateTime +import kotlin.time.Duration.Companion.milliseconds + +class UsingInstancedAdapter : RealmObject { + @TypeAdapter(adapter = RealmInstantBsonDateTimeAdapterInstanced::class) + var date: BsonDateTime = BsonDateTime() +} + +class RealmInstantBsonDateTimeAdapterInstanced : RealmTypeAdapter { + override fun toPublic(value: RealmInstant): BsonDateTime = value.asBsonDateTime() + + override fun toRealm(value: BsonDateTime): RealmInstant = + value.value.milliseconds.toRealmInstant() +} diff --git a/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingSingletonAdapter.kt b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingSingletonAdapter.kt new file mode 100644 index 0000000000..f038162bdf --- /dev/null +++ b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/entities/adapters/UsingSingletonAdapter.kt @@ -0,0 +1,39 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@file:Suppress("invisible_member", "invisible_reference") + +package io.realm.kotlin.entities.adapters + +import io.realm.kotlin.internal.asBsonDateTime +import io.realm.kotlin.internal.toRealmInstant +import io.realm.kotlin.types.RealmInstant +import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmTypeAdapter +import io.realm.kotlin.types.annotations.TypeAdapter +import org.mongodb.kbson.BsonDateTime +import kotlin.time.Duration.Companion.milliseconds + +class UsingSingletonAdapter : RealmObject { + @TypeAdapter(adapter = RealmInstantBsonDateTimeAdapterSingleton::class) + var date: BsonDateTime = BsonDateTime() +} + +object RealmInstantBsonDateTimeAdapterSingleton : RealmTypeAdapter { + override fun toPublic(value: RealmInstant): BsonDateTime = value.asBsonDateTime() + + override fun toRealm(value: BsonDateTime): RealmInstant = + value.value.milliseconds.toRealmInstant() +} diff --git a/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/test/util/TypeDescriptor.kt b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/test/util/TypeDescriptor.kt index e580576cfd..2e0bb38511 100644 --- a/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/test/util/TypeDescriptor.kt +++ b/packages/test-base/src/commonMain/kotlin/io/realm/kotlin/test/util/TypeDescriptor.kt @@ -365,6 +365,9 @@ object TypeDescriptor { allSingularFieldTypes + allListFieldTypes + allSetFieldTypes + allDictionaryFieldTypes val allPrimaryKeyFieldTypes = allFieldTypes.filter { it.isPrimaryKeySupported } + val unsupportedRealmTypeAdaptersClassifiers = + setOf(Byte::class, Char::class, Short::class, Int::class, MutableRealmInt::class) + // Realm field type represents the type of a given user specified field in the RealmObject data class RealmFieldType( val collectionType: CollectionType, @@ -383,9 +386,9 @@ object TypeDescriptor { (elementType.classifier as KClass<*>).simpleName + (if (elementType.nullable) "?" else "") return when (collectionType) { CollectionType.RLM_COLLECTION_TYPE_NONE -> element - CollectionType.RLM_COLLECTION_TYPE_LIST -> "List<$element>" - CollectionType.RLM_COLLECTION_TYPE_SET -> TODO() - CollectionType.RLM_COLLECTION_TYPE_DICTIONARY -> TODO() + CollectionType.RLM_COLLECTION_TYPE_LIST -> "RealmList<$element>" + CollectionType.RLM_COLLECTION_TYPE_SET -> "RealmSet<$element>" + CollectionType.RLM_COLLECTION_TYPE_DICTIONARY -> "RealmDictionary<$element>" else -> throw IllegalArgumentException("Wrong collection type: $collectionType") } } diff --git a/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/RealmConfigurationTests.kt b/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/RealmConfigurationTests.kt index b84b0226d6..1f53cf3b9e 100644 --- a/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/RealmConfigurationTests.kt +++ b/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/RealmConfigurationTests.kt @@ -34,6 +34,7 @@ import io.realm.kotlin.test.platform.PlatformUtils import io.realm.kotlin.test.platform.platformFileSystem import io.realm.kotlin.test.util.TestLogger import io.realm.kotlin.test.util.use +import io.realm.kotlin.types.RealmTypeAdapter import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.newSingleThreadContext import okio.Path.Companion.toPath @@ -41,6 +42,7 @@ import kotlin.random.Random import kotlin.test.AfterTest import kotlin.test.BeforeTest import kotlin.test.Test +import kotlin.test.assertContains import kotlin.test.assertContentEquals import kotlin.test.assertEquals import kotlin.test.assertFailsWith @@ -493,6 +495,37 @@ class RealmConfigurationTests { RealmLog.reset() } + @Test + fun customTypeAdapters_defaultEmpty() { + val typeAdapter = object : RealmTypeAdapter { + override fun toPublic(value: String): String = TODO("Not yet implemented") + + override fun toRealm(value: String): String = TODO("Not yet implemented") + } + + val config = RealmConfiguration.Builder(setOf()) + .build() + + assertTrue(config.typeAdapters.isEmpty()) + } + + @Test + fun defineCustomTypeAdapters() { + val typeAdapter = object : RealmTypeAdapter { + override fun toPublic(value: String): String = TODO("Not yet implemented") + + override fun toRealm(value: String): String = TODO("Not yet implemented") + } + + val config = RealmConfiguration.Builder(setOf()) + .typeAdapters { + add(typeAdapter) + } + .build() + + assertContains(config.typeAdapters, typeAdapter) + } + private fun assertFailsWithEncryptionKey(builder: RealmConfiguration.Builder, keyLength: Int) { val key = Random.nextBytes(keyLength) assertFailsWith( diff --git a/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/TypeAdapterTests.kt b/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/TypeAdapterTests.kt new file mode 100644 index 0000000000..345bc257c4 --- /dev/null +++ b/packages/test-base/src/commonTest/kotlin/io/realm/kotlin/test/common/TypeAdapterTests.kt @@ -0,0 +1,265 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.realm.kotlin.test.common + +import io.realm.kotlin.Realm +import io.realm.kotlin.RealmConfiguration +import io.realm.kotlin.entities.adapters.AllTypes +import io.realm.kotlin.entities.adapters.RealmInstantBsonDateTimeAdapterInstanced +import io.realm.kotlin.entities.adapters.ReferencedObject +import io.realm.kotlin.entities.adapters.UsingInstancedAdapter +import io.realm.kotlin.entities.adapters.UsingSingletonAdapter +import io.realm.kotlin.ext.realmDictionaryOf +import io.realm.kotlin.ext.realmListOf +import io.realm.kotlin.ext.realmSetOf +import io.realm.kotlin.internal.interop.CollectionType +import io.realm.kotlin.schema.RealmStorageType +import io.realm.kotlin.test.platform.PlatformUtils +import io.realm.kotlin.test.util.TypeDescriptor +import io.realm.kotlin.test.util.TypeDescriptor.unsupportedRealmTypeAdaptersClassifiers +import io.realm.kotlin.types.ObjectId +import io.realm.kotlin.types.RealmAny +import io.realm.kotlin.types.RealmInstant +import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmUUID +import org.mongodb.kbson.BsonDateTime +import org.mongodb.kbson.BsonObjectId +import org.mongodb.kbson.Decimal128 +import kotlin.reflect.KMutableProperty1 +import kotlin.test.AfterTest +import kotlin.test.BeforeTest +import kotlin.test.Test +import kotlin.test.assertContentEquals +import kotlin.test.assertEquals + +/** + * This test suite should cover these points: + * - [x] Schema validation + * - [x] Singleton / instanced adapters + * - [-] All types including collections + * - [x] Default values + * - [x] copyFromRealm + */ +class TypeAdapterTests { + private lateinit var tmpDir: String + private lateinit var realm: Realm + + private lateinit var configuration: RealmConfiguration + + @BeforeTest + fun setup() { + tmpDir = PlatformUtils.createTempDir() + configuration = RealmConfiguration.Builder( + setOf( + UsingSingletonAdapter::class, + UsingInstancedAdapter::class, + AllTypes::class, + ReferencedObject::class + ) + ) + .directory(tmpDir) + .typeAdapters { + add(RealmInstantBsonDateTimeAdapterInstanced()) + } + .build() + realm = Realm.open(configuration) + } + + @AfterTest + fun tearDown() { + if (this::realm.isInitialized && !realm.isClosed()) { + realm.close() + } + PlatformUtils.deleteTempDir(tmpDir) + } + + @Test + fun schemaValidation() { + val realmProperty = + realm.schema()[UsingSingletonAdapter::class.simpleName!!]!![UsingSingletonAdapter::date.name]!! + assertEquals(RealmStorageType.TIMESTAMP, realmProperty.type.storageType) + } + + @Test + fun useSingletonAdapter() { + val expectedDate = BsonDateTime() + + val unmanagedObject = UsingSingletonAdapter().apply { + this.date = expectedDate + } + assertEquals(expectedDate, unmanagedObject.date) + + val managedObject = realm.writeBlocking { + copyToRealm(unmanagedObject) + } + + assertEquals(expectedDate, managedObject.date) + } + + @Test + fun useInstancedAdapter() { + val expectedDate = BsonDateTime() + + val unmanagedObject = UsingInstancedAdapter().apply { + this.date = expectedDate + } + assertEquals(expectedDate, unmanagedObject.date) + + val managedObject = realm.writeBlocking { + copyToRealm(unmanagedObject) + } + + assertEquals(expectedDate, managedObject.date) + } + + @Test + fun roundTripAllTypes() { + validateProperties(AllTypes.properties) + validateProperties(AllTypes.adaptedTypeParameterProperties) + } + + private fun validateProperties(properties: Map>) { + TypeDescriptor.allFieldTypes + .filterNot { + // TODO Deactivated because a bug with contains on RealmSet + it.collectionType == CollectionType.RLM_COLLECTION_TYPE_SET + } + .filterNot { fieldType -> + fieldType.elementType.classifier in unsupportedRealmTypeAdaptersClassifiers + } + .filter { fieldType -> + fieldType in properties + } + .forEach { fieldType: TypeDescriptor.RealmFieldType -> + val testProperty: KMutableProperty1 = + properties[fieldType]!! as KMutableProperty1 + + val testClassifier = fieldType.elementType.classifier + + val unmanaged = AllTypes() + + val testValues = testValues[testClassifier]!! + + when (fieldType.collectionType) { + CollectionType.RLM_COLLECTION_TYPE_NONE -> { + if (fieldType.elementType.nullable) { + testValues + null + } else { + testValues + } + } + + CollectionType.RLM_COLLECTION_TYPE_LIST -> { + if (fieldType.elementType.nullable) { + listOf( + realmListOf().apply { + addAll(testValues) + add(null) + } + ) + } else { + listOf( + realmListOf().apply { + addAll(testValues) + } + ) + } + } + CollectionType.RLM_COLLECTION_TYPE_SET -> { + if (fieldType.elementType.nullable) { + listOf( + realmSetOf().apply { + addAll(testValues) + add(null) + } + ) + } else { + listOf( + realmSetOf().apply { + addAll(testValues) + } + ) + } + } + + CollectionType.RLM_COLLECTION_TYPE_DICTIONARY -> { + val dictValues = testValues + .mapIndexed { index, any -> + "$index" to any + } + + if (fieldType.elementType.nullable) { + listOf( + realmDictionaryOf().apply { + putAll(dictValues) + put("", null) + } + ) + } else { + listOf( + realmDictionaryOf().apply { + putAll(dictValues) + } + ) + } + } + else -> throw IllegalStateException("Unhandled case") + }.forEach { expected -> + testProperty.set(unmanaged, expected) + + val managed = realm.writeBlocking { + copyToRealm(unmanaged) + } + + val actual = testProperty.get(managed) + + when (testClassifier) { + ByteArray::class -> { + assertContentEquals( + expected = expected as ByteArray?, + actual = actual as ByteArray?, + message = "non matching values for property ${testProperty.name}" + ) + } + + else -> { + assertEquals( + expected = expected, + actual = actual, + message = "non matching values for property ${testProperty.name}" + ) + } + } + } + } + } +} + +private val testValues = mapOf( + String::class to listOf("adfasdf"), + Long::class to listOf(Long.MIN_VALUE, Long.MAX_VALUE), + Boolean::class to listOf(false, true), + Float::class to listOf(Float.MIN_VALUE, Float.MAX_VALUE), + Double::class to listOf(Double.MIN_VALUE, Double.MAX_VALUE), + Decimal128::class to listOf(Decimal128("0")), + RealmInstant::class to listOf(RealmInstant.MAX), + ObjectId::class to listOf(ObjectId.create()), + BsonObjectId::class to listOf(BsonObjectId()), + RealmUUID::class to listOf(RealmUUID.random()), + ByteArray::class to listOf(byteArrayOf(0, 0, 0, 0)), + RealmAny::class to listOf(RealmAny.create("")), + RealmObject::class to listOf(ReferencedObject().apply { stringField = "hello world" }), +) diff --git a/packages/test-base/src/jvmTest/kotlin/io/realm/kotlin/test/compiler/TypeAdapterTests.kt b/packages/test-base/src/jvmTest/kotlin/io/realm/kotlin/test/compiler/TypeAdapterTests.kt new file mode 100644 index 0000000000..8a569a1820 --- /dev/null +++ b/packages/test-base/src/jvmTest/kotlin/io/realm/kotlin/test/compiler/TypeAdapterTests.kt @@ -0,0 +1,471 @@ +/* + * Copyright 2023 Realm Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.realm.kotlin.test.compiler + +import com.tschuchort.compiletesting.KotlinCompilation +import com.tschuchort.compiletesting.SourceFile +import io.realm.kotlin.internal.interop.CollectionType +import io.realm.kotlin.test.util.Compiler.compileFromSource +import io.realm.kotlin.test.util.TypeDescriptor +import io.realm.kotlin.test.util.TypeDescriptor.allFieldTypes +import io.realm.kotlin.test.util.TypeDescriptor.unsupportedRealmTypeAdaptersClassifiers +import io.realm.kotlin.types.MutableRealmInt +import io.realm.kotlin.types.ObjectId +import io.realm.kotlin.types.RealmInstant +import io.realm.kotlin.types.RealmObject +import io.realm.kotlin.types.RealmUUID +import org.junit.Test +import org.mongodb.kbson.BsonObjectId +import org.mongodb.kbson.Decimal128 +import kotlin.reflect.KClassifier +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +/** + * These tests should validate: + * - [x] Adapter with a non-realm type should fail + * - [x] Adapter annotation on unsupported types: delegate, function etc + * - [x] Adapters type supportness + * - [x] Adapters type unsupportness + * - [x] Adapter not matching public type + * - [x] Instanced and singleton adapters + * - [x] Other annotations Ignore, Index etc + * - [x] Star projections in persistable types + */ +class TypeAdapterTests { + + private val typeAdapterTypes = listOf("object", "class") + + @Test + fun `invalid persisted type`() { + typeAdapterTypes.forEach { type -> + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeAdapter_unsupported_type.kt", + """ + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.annotations.TypeAdapter + + class UserType + + class NonRealmType + + $type UnsupportedRealmTypeParameter : RealmTypeAdapter { + override fun fromRealm(realmValue: NonRealmType): UserType = TODO() + + override fun toRealm(value: UserType): NonRealmType = TODO() + } + """.trimIndent() + ) + ) + assertEquals( + KotlinCompilation.ExitCode.COMPILATION_ERROR, + result.exitCode, + result.messages + ) + assertTrue( + result.messages.contains("Invalid adapter persisted type 'NonRealmType', only Realm persistable types are supported."), + result.messages + ) + } + } + + @Test + fun `not matching user type`() { + typeAdapterTypes.forEach { type -> + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeAdapter_unsupported_type.kt", + """ + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.annotations.TypeAdapter + + class UserType + + class OtherUserType + + class TestObject : RealmObject { + @TypeAdapter(adapter = UserTypeAdapter::class) + var userType: OtherUserType = OtherUserType() + } + + $type UserTypeAdapter : RealmTypeAdapter { + override fun fromRealm(realmValue: String): UserType = TODO() + + override fun toRealm(value: UserType): String = TODO() + } + """.trimIndent() + ) + ) + assertEquals( + KotlinCompilation.ExitCode.COMPILATION_ERROR, + result.exitCode, + result.messages + ) + assertTrue(result.messages.contains("Type adapter public type does not match the property type."), result.messages) + } + } + + @Test + fun `applying adapter on backlinked property should fail`() { + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeAdapter_on_backlinks_fail.kt", + """ + import io.realm.kotlin.ext.backlinks + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.annotations.TypeAdapter + + class UserType + + class TestObject1: RealmObject { + var myObject: TestObject2 = TestObject2() + } + + class TestObject2 : RealmObject { + @TypeAdapter(adapter = ValidRealmTypeAdapter::class) + val userType by backlinks(TestObject1::myObject) + } + + object ValidRealmTypeAdapter : RealmTypeAdapter { + override fun fromRealm(realmValue: String): UserType = TODO() + + override fun toRealm(value: UserType): String = TODO() + } + """.trimIndent() + ) + ) + assertEquals(KotlinCompilation.ExitCode.COMPILATION_ERROR, result.exitCode, result.messages) + assertTrue( + result.messages.contains("Type adapters do not support delegated properties"), + result.messages + ) + } + + @Test + fun `validate all adapters supported types`() { + val defaults = mapOf( + Boolean::class to true, + Long::class to "1", + Float::class to "1.4f", + Double::class to "1.4", + Decimal128::class to "BsonDecimal128(\"1.4E100\")", + String::class to "\"Realm\"", + RealmInstant::class to "RealmInstant.from(42, 420)", + ObjectId::class to "ObjectId.create()", + BsonObjectId::class to "BsonObjectId()", + RealmUUID::class to "RealmUUID.random()", + ByteArray::class to "byteArrayOf(42)", + RealmObject::class to "TestObject2()", + ) + + allFieldTypes + .filterNot { type -> + type.elementType.classifier in unsupportedRealmTypeAdaptersClassifiers + } + .forEach { type -> + val elementType = type.elementType + val default = if (!elementType.nullable) defaults[elementType.classifier] + ?: error("unmapped default") else null + + val kotlinLiteral = if (type.elementType.classifier == RealmObject::class) { + type.toKotlinLiteral().replace("RealmObject", "TestObject2") + } else { + type.toKotlinLiteral() + } + + val additionalAnnotations = mutableSetOf( + "", + """@PersistedName("testing")""" + ).apply { + if (type.isIndexingSupported) add("@Index") + if (type.isPrimaryKeySupported) add("@PrimaryKey") + if (type.isFullTextSupported) add("@FullText") + } + + additionalAnnotations.forEach { annotation -> + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeadapter_supportness_$kotlinLiteral.kt", + """ + import io.realm.kotlin.types.RealmAny + import io.realm.kotlin.types.RealmDictionary + import io.realm.kotlin.types.RealmList + import io.realm.kotlin.types.RealmSet + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.MutableRealmInt + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.RealmUUID + import io.realm.kotlin.types.annotations.FullText + import io.realm.kotlin.types.annotations.Index + import io.realm.kotlin.types.annotations.PersistedName + import io.realm.kotlin.types.annotations.PrimaryKey + import io.realm.kotlin.types.annotations.TypeAdapter + import io.realm.kotlin.types.ObjectId + import org.mongodb.kbson.BsonDecimal128 + import org.mongodb.kbson.BsonObjectId + + class UserType + + class NonRealmType + + class TestObject2: RealmObject { + var name: String = "" + } + + class TestObject : RealmObject { + $annotation + @TypeAdapter(adapter = ValidRealmTypeAdapter::class) + var userType: UserType = UserType() + } + + object ValidRealmTypeAdapter : RealmTypeAdapter<$kotlinLiteral, UserType> { + override fun fromRealm(realmValue: $kotlinLiteral): UserType = TODO() + + override fun toRealm(value: UserType): $kotlinLiteral = TODO() + } + """.trimIndent() + ) + ) + assertEquals(KotlinCompilation.ExitCode.OK, result.exitCode, result.messages) + } + } + } + + @Test + fun `validate all adapters unsupported types`() { + val defaults = mapOf( + Byte::class to "1", + Char::class to "\'c\'", + Short::class to "1", + Int::class to "1", + MutableRealmInt::class to "MutableRealmInt.create(42)", + ) + + allFieldTypes + .filter { type -> + type.elementType.classifier in unsupportedRealmTypeAdaptersClassifiers + } + .forEach { type -> + val elementType = type.elementType + val default = if (!elementType.nullable) defaults[elementType.classifier] + ?: error("unmapped default") else null + + val kotlinLiteral = if (type.elementType.classifier == RealmObject::class) { + type.toKotlinLiteral().replace("RealmObject", "TestObject2") + } else { + type.toKotlinLiteral() + } + + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeadapter_supportness_$kotlinLiteral.kt", + """ + import io.realm.kotlin.types.RealmAny + import io.realm.kotlin.types.RealmDictionary + import io.realm.kotlin.types.RealmList + import io.realm.kotlin.types.RealmSet + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.MutableRealmInt + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.RealmUUID + import io.realm.kotlin.types.annotations.TypeAdapter + import io.realm.kotlin.types.ObjectId + import org.mongodb.kbson.BsonDecimal128 + import org.mongodb.kbson.BsonObjectId + + class UserType + + class NonRealmType + + class TestObject2: RealmObject { + var name: String = "" + } + + class TestObject : RealmObject { + @TypeAdapter(adapter = ValidRealmTypeAdapter::class) + var userType: UserType = UserType() + } + + object ValidRealmTypeAdapter : RealmTypeAdapter<$kotlinLiteral, UserType> { + override fun fromRealm(realmValue: $kotlinLiteral): UserType = TODO() + + override fun toRealm(value: UserType): $kotlinLiteral = TODO() + } + """.trimIndent() + ) + ) + assertEquals( + KotlinCompilation.ExitCode.COMPILATION_ERROR, + result.exitCode, + result.messages + ) + assertTrue(result.messages.contains("only Realm persistable types are supported"), result.messages) + } + } + + @Test + fun `type adapter with star projection`() { + CollectionType.values() + .filterNot { collectionType -> + collectionType == CollectionType.RLM_COLLECTION_TYPE_NONE + } + .map { collectionType -> + TypeDescriptor.RealmFieldType( + collectionType = collectionType, + elementType = TypeDescriptor.ElementType( + classifier = String::class, + nullable = false + ) + ) + } + .map { + it.toKotlinLiteral().replace("String", "*") + } + .forEach { kotlinLiteral -> + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeadapter_supportness_$kotlinLiteral.kt", + """ + import io.realm.kotlin.types.RealmAny + import io.realm.kotlin.types.RealmDictionary + import io.realm.kotlin.types.RealmList + import io.realm.kotlin.types.RealmSet + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.MutableRealmInt + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.RealmUUID + import io.realm.kotlin.types.annotations.TypeAdapter + import io.realm.kotlin.types.ObjectId + import org.mongodb.kbson.BsonDecimal128 + import org.mongodb.kbson.BsonObjectId + + class UserType + + object ValidRealmTypeAdapter : RealmTypeAdapter<$kotlinLiteral, UserType> { + override fun fromRealm(realmValue: $kotlinLiteral): UserType = TODO() + + override fun toRealm(value: UserType): $kotlinLiteral = TODO() + } + """.trimIndent() + ) + ) + assertEquals( + KotlinCompilation.ExitCode.COMPILATION_ERROR, + result.exitCode, + result.messages + ) + assertTrue(result.messages.contains("cannot use a '*' projection"), result.messages) + } + } + + @Test + fun `apply annotation to type parameter`() { + allFieldTypes + .filterNot { type -> + type.elementType.classifier in unsupportedRealmTypeAdaptersClassifiers + } + .filterNot { type -> + type.collectionType == CollectionType.RLM_COLLECTION_TYPE_NONE + } + .forEach { type -> + val default = when (type.collectionType) { + CollectionType.RLM_COLLECTION_TYPE_NONE -> error("Outside of testing scope") + CollectionType.RLM_COLLECTION_TYPE_LIST -> "RealmList<@TypeAdapter(ValidRealmTypeAdapter::class) UserType> = realmListOf()" + CollectionType.RLM_COLLECTION_TYPE_SET -> "RealmSet<@TypeAdapter(ValidRealmTypeAdapter::class) UserType> = realmSetOf()" + CollectionType.RLM_COLLECTION_TYPE_DICTIONARY -> "RealmDictionary<@TypeAdapter(ValidRealmTypeAdapter::class) UserType> = realmDictionaryOf()" + else -> error("Unmapped type") + } + + val adapterType = when (type.elementType.classifier) { + RealmObject::class -> "TestObject2${if (type.elementType.nullable) "?" else ""}" + else -> type.copy( + collectionType = CollectionType.RLM_COLLECTION_TYPE_NONE + ).toKotlinLiteral() + } + + val additionalAnnotations = mutableSetOf( + "", + """@PersistedName("testing")""" + ) + + additionalAnnotations.forEach { annotation -> + val result = compileFromSource( + plugins = listOf(io.realm.kotlin.compiler.Registrar()), + source = SourceFile.kotlin( + "typeadapter_supportness_$adapterType.kt", + """ + import io.realm.kotlin.ext.realmDictionaryOf + import io.realm.kotlin.ext.realmListOf + import io.realm.kotlin.ext.realmSetOf + import io.realm.kotlin.types.RealmAny + import io.realm.kotlin.types.RealmDictionary + import io.realm.kotlin.types.RealmList + import io.realm.kotlin.types.RealmSet + import io.realm.kotlin.types.RealmInstant + import io.realm.kotlin.types.MutableRealmInt + import io.realm.kotlin.types.RealmObject + import io.realm.kotlin.types.RealmTypeAdapter + import io.realm.kotlin.types.RealmUUID + import io.realm.kotlin.types.annotations.FullText + import io.realm.kotlin.types.annotations.Index + import io.realm.kotlin.types.annotations.PersistedName + import io.realm.kotlin.types.annotations.PrimaryKey + import io.realm.kotlin.types.annotations.TypeAdapter + import io.realm.kotlin.types.ObjectId + import org.mongodb.kbson.BsonDecimal128 + import org.mongodb.kbson.BsonObjectId + + class UserType + + class TestObject2: RealmObject { + var field: String = "" + } + + class TestObject : RealmObject { + $annotation + var userType: $default + } + + object ValidRealmTypeAdapter : RealmTypeAdapter<$adapterType, UserType> { + override fun fromRealm(realmValue: $adapterType): UserType = TODO() + + override fun toRealm(value: UserType): $adapterType = TODO() + } + """.trimIndent() + ) + ) + assertEquals(KotlinCompilation.ExitCode.OK, result.exitCode, result.messages) + } + } + } +}