From 862ccd05dfa67227d425fc5b0b9490cc48568082 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 7 Feb 2019 14:56:31 +0300 Subject: [PATCH] [JS IR BE] Merge native fixes into Ir Serializer --- .../kotlin/backend/common/lower/LowerUtils.kt | 5 +- .../ir/backend/js/JsIrBackendContext.kt | 2 +- .../kotlin/ir/backend/js/compiler.kt | 12 +- .../inline/DeepCopyIrTreeWithDescriptors.kt | 861 +- .../js/lower/inline/FunctionInlining.kt | 739 +- .../js/lower/inline/LegacyDescriptorUtils.kt | 3 +- .../serialization/ir/AdditionalIrUtils.kt | 13 +- .../lower/serialization/ir/AnotherIrUtils.kt | 45 +- .../serialization/ir/DeclarationTable.kt | 53 +- .../ir/DeserializeDescriptorReference.kt | 55 +- .../serialization/ir/IrKlibProtoBuf.java | 7811 ++++++++++------- .../ir/IrKlibProtoBufModuleDeserializer.kt | 51 +- .../serialization/ir/IrModuleDeserializer.kt | 119 +- .../serialization/ir/IrModuleSerializer.kt | 102 +- .../ir/SerializeDescriptorReference.kt | 8 +- .../js/lower/serialization/ir/ir.proto | 118 +- .../lazy/IrLazyDeclarationBase.kt | 1 + .../kotlin/ir/descriptors/IrBuiltIns.kt | 9 +- .../org/jetbrains/kotlin/ir/types/irTypes.kt | 1 + 19 files changed, 5241 insertions(+), 4767 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LowerUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LowerUtils.kt index 653eef09a02..c8d84ff1581 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LowerUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LowerUtils.kt @@ -210,9 +210,8 @@ fun IrConstructor.callsSuper(irBuiltIns: IrBuiltIns): Boolean { assert(++numberOfCalls == 1) { "More than one delegating constructor call: ${symbol.owner}" } val delegatingClass = expression.symbol.owner.parent as IrClass // TODO: figure out why Lazy IR multiplies Declarations for descriptors and fix it - if (delegatingClass.descriptor == superClass.classifierOrFail.descriptor || ( - delegatingClass.defaultType.isAny() && superClass.isAny() - )) + // It happens because of IrBuiltIns whose IrDeclarations are different for runtime and test + if (delegatingClass.descriptor == superClass.classifierOrFail.descriptor) callsSuper = true else if (delegatingClass.descriptor != constructedClass.descriptor) throw AssertionError( diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt index ad59a66ccb9..d3ce9dd4244 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt @@ -154,7 +154,7 @@ class JsIrBackendContext( val coroutineSuspendOrReturn = symbolTable.referenceSimpleFunction(getInternalFunctions(COROUTINE_SUSPEND_OR_RETURN_JS_NAME).single()) - val intrinsics = JsIntrinsics(irBuiltIns, this) + val intrinsics by lazy { JsIntrinsics(irBuiltIns, this) } private val operatorMap = referenceOperators() diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compiler.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compiler.kt index ba14c2d13c2..64dc1a81b21 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compiler.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compiler.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.ir.backend.js import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.backend.common.CompilerPhaseManager import org.jetbrains.kotlin.backend.common.LoggingContext import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.functions.functionInterfacePackageFragmentProvider @@ -85,7 +84,7 @@ fun compile( TopDownAnalyzerFacadeForJS.checkForErrors(files, analysisResult.bindingContext) val symbolTable = SymbolTable() -// irDependencyModules.forEach { symbolTable.loadModule(it) } + if (!isKlibCompilation) irDependencyModules.forEach { symbolTable.loadModule(it) } val psi2IrTranslator = Psi2IrTranslator(configuration.languageVersionSettings) val psi2IrContext = psi2IrTranslator.createGeneratorContext(analysisResult.moduleDescriptor, analysisResult.bindingContext, symbolTable) @@ -105,6 +104,10 @@ fun compile( if (isKlibCompilation) { val logggg = object : LoggingContext { + override var inVerbosePhase: Boolean + get() = TODO("not implemented") + set(_) {} + override fun log(message: () -> String) {} } @@ -173,8 +176,7 @@ fun compile( ) md.initialize(CompositePackageFragmentProvider(packageProviders)) - md.setDependencies(listOf(md/*, builtIns.builtInsModule*/)) - + md.setDependencies(listOf(md)) val st = SymbolTable() @@ -198,7 +200,7 @@ fun compile( deserializedModuleFragment.replaceUnboundSymbols(context) - jsPhases.invokeToplevel(context.phaseConfig, context, moduleFragment) + jsPhases.invokeToplevel(context.phaseConfig, context, deserializedModuleFragment) return Result(md, context.jsProgram.toString(), null) } else { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/DeepCopyIrTreeWithDescriptors.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/DeepCopyIrTreeWithDescriptors.kt index 9a819158e04..ca35e5be158 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/DeepCopyIrTreeWithDescriptors.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/DeepCopyIrTreeWithDescriptors.kt @@ -55,9 +55,9 @@ fun ReferenceSymbolTable.translateErased(type: KotlinType): IrSimpleType { internal class DeepCopyIrTreeWithSymbolsForInliner(val context: Context, val typeArguments: Map?, - val parent: IrDeclarationParent?) : IrCopierForInliner { + val parent: IrDeclarationParent?) { - override fun copy(irElement: IrElement): IrElement { + fun copy(irElement: IrElement): IrElement { // Create new symbols. irElement.acceptVoid(symbolRemapper) @@ -205,8 +205,6 @@ internal class DeepCopyIrTreeWithSymbolsForInliner(val context: Context, } } - override fun addCurrentSubstituteMap(globalSubstituteMap: MutableMap) { } - private class SymbolRemapperImpl(descriptorsRemapper: DescriptorsRemapper) : DeepCopySymbolRemapper(descriptorsRemapper) { @@ -232,857 +230,4 @@ internal class DeepCopyIrTreeWithSymbolsForInliner(val context: Context, InlinerTypeRemapper(symbolRemapper, typeArguments), InlinerSymbolRenamer() ) -} - -internal interface IrCopierForInliner { - fun copy(irElement: IrElement): IrElement - fun addCurrentSubstituteMap(globalSubstituteMap: MutableMap) -} - -internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: FunctionDescriptor, - val parentDescriptor: DeclarationDescriptor, - val context: JsIrBackendContext, - val typeSubstitutor: TypeSubstitutor?) : IrCopierForInliner { - - private val descriptorSubstituteMap: MutableMap = mutableMapOf() - private var nameIndex = 0 - - //-------------------------------------------------------------------------// - - override fun copy(irElement: IrElement): IrElement { - // Create all class descriptors and all necessary descriptors in order to create KotlinTypes. - irElement.acceptVoid(DescriptorCollectorCreatePhase()) - // Initialize all created descriptors possibly using previously created types. - irElement.acceptVoid(DescriptorCollectorInitPhase()) - return irElement.accept(InlineCopyIr(), null) - } - - inner class DescriptorCollectorCreatePhase : IrElementVisitorVoidWithContext() { - - override fun visitElement(element: IrElement) { - element.acceptChildren(this, null) - } - - //---------------------------------------------------------------------// - - override fun visitClassNew(declaration: IrClass) { - val oldDescriptor = declaration.descriptor - val newDescriptor = copyClassDescriptor(oldDescriptor) - descriptorSubstituteMap[oldDescriptor] = newDescriptor - descriptorSubstituteMap[oldDescriptor.thisAsReceiverParameter] = newDescriptor.thisAsReceiverParameter - - super.visitClassNew(declaration) - - val constructors = oldDescriptor.constructors.map { oldConstructorDescriptor -> - descriptorSubstituteMap[oldConstructorDescriptor] as ClassConstructorDescriptor - }.toSet() - - val oldPrimaryConstructor = oldDescriptor.unsubstitutedPrimaryConstructor - val primaryConstructor = oldPrimaryConstructor?.let { descriptorSubstituteMap[it] as ClassConstructorDescriptor } - - val contributedDescriptors = oldDescriptor.unsubstitutedMemberScope - .getContributedDescriptors() - .map { descriptorSubstituteMap[it]!! } - newDescriptor.initialize( - SimpleMemberScope(contributedDescriptors), - constructors, - primaryConstructor - ) - } - - //---------------------------------------------------------------------// - - override fun visitPropertyNew(declaration: IrProperty) { - copyPropertyOrField(declaration.descriptor) - super.visitPropertyNew(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitFieldNew(declaration: IrField) { - val oldDescriptor = declaration.descriptor - if (descriptorSubstituteMap[oldDescriptor] == null) { - copyPropertyOrField(oldDescriptor) // A field without a property or a field of a delegated property. - } - super.visitFieldNew(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitFunctionNew(declaration: IrFunction) { - val oldDescriptor = declaration.descriptor - if (oldDescriptor !is PropertyAccessorDescriptor) { // Property accessors are copied along with their property. - val oldContainingDeclaration = - if (oldDescriptor.visibility == Visibilities.LOCAL) - parentDescriptor - else - oldDescriptor.containingDeclaration - descriptorSubstituteMap[oldDescriptor] = copyFunctionDescriptor(oldDescriptor, oldContainingDeclaration) - } - super.visitFunctionNew(declaration) - } - - //--- Copy descriptors ------------------------------------------------// - - private fun generateCopyName(name: Name): Name { - val declarationName = name.toString() // Name of declaration - val indexStr = (nameIndex++).toString() // Unique for inline target index - return Name.identifier(declarationName + "_" + indexStr) - } - - //---------------------------------------------------------------------// - - private fun copyFunctionDescriptor(oldDescriptor: CallableDescriptor, oldContainingDeclaration: DeclarationDescriptor) = - when (oldDescriptor) { - is ConstructorDescriptor -> copyConstructorDescriptor(oldDescriptor) - is SimpleFunctionDescriptor -> copySimpleFunctionDescriptor(oldDescriptor, oldContainingDeclaration) - else -> TODO("Unsupported FunctionDescriptor subtype: $oldDescriptor") - } - - //---------------------------------------------------------------------// - - private fun copySimpleFunctionDescriptor(oldDescriptor: SimpleFunctionDescriptor, oldContainingDeclaration: DeclarationDescriptor) : FunctionDescriptor { - val newContainingDeclaration = descriptorSubstituteMap.getOrDefault(oldContainingDeclaration, oldContainingDeclaration) - return SimpleFunctionDescriptorImpl.create( - /* containingDeclaration = */ newContainingDeclaration, - /* annotations = */ oldDescriptor.annotations, - /* name = */ generateCopyName(oldDescriptor.name), - /* kind = */ oldDescriptor.kind, - /* source = */ oldDescriptor.source - ) - } - - //---------------------------------------------------------------------// - - private fun copyConstructorDescriptor(oldDescriptor: ConstructorDescriptor) : FunctionDescriptor { - val oldContainingDeclaration = oldDescriptor.containingDeclaration - val newContainingDeclaration = descriptorSubstituteMap.getOrDefault(oldContainingDeclaration, oldContainingDeclaration) - return ClassConstructorDescriptorImpl.create( - /* containingDeclaration = */ newContainingDeclaration as ClassDescriptor, - /* annotations = */ oldDescriptor.annotations, - /* isPrimary = */ oldDescriptor.isPrimary, - /* source = */ oldDescriptor.source - ) - } - - //---------------------------------------------------------------------// - - private fun copyPropertyOrField(oldDescriptor: PropertyDescriptor) { - val oldContainingDeclaration = oldDescriptor.containingDeclaration - val newContainingDeclaration = descriptorSubstituteMap.getOrDefault(oldContainingDeclaration, oldContainingDeclaration) as ClassDescriptor - @Suppress("DEPRECATION") - val newDescriptor = PropertyDescriptorImpl.create( - /* containingDeclaration = */ newContainingDeclaration, - /* annotations = */ oldDescriptor.annotations, - /* modality = */ oldDescriptor.modality, - /* visibility = */ oldDescriptor.visibility, - /* isVar = */ oldDescriptor.isVar, - /* name = */ oldDescriptor.name, - /* kind = */ oldDescriptor.kind, - /* source = */ oldDescriptor.source, - /* lateInit = */ oldDescriptor.isLateInit, - /* isConst = */ oldDescriptor.isConst, - /* isExpect = */ oldDescriptor.isExpect, - /* isActual = */ oldDescriptor.isActual, - /* isExternal = */ oldDescriptor.isExternal, - /* isDelegated = */ oldDescriptor.isDelegated - ) - descriptorSubstituteMap[oldDescriptor] = newDescriptor - } - - //---------------------------------------------------------------------// - - private fun copyClassDescriptor(oldDescriptor: ClassDescriptor): ClassDescriptorImpl { - val oldSuperClass = oldDescriptor.getSuperClassOrAny() - val newSuperClass = descriptorSubstituteMap.getOrDefault(oldSuperClass, oldSuperClass) as ClassDescriptor - val oldInterfaces = oldDescriptor.getSuperInterfaces() - val newInterfaces = oldInterfaces.map { descriptorSubstituteMap.getOrDefault(it, it) as ClassDescriptor } - val oldContainingDeclaration = oldDescriptor.containingDeclaration - val newContainingDeclaration = descriptorSubstituteMap.getOrDefault(oldContainingDeclaration, oldContainingDeclaration) - val newName = if (DescriptorUtils.isAnonymousObject(oldDescriptor)) // Anonymous objects are identified by their name. - oldDescriptor.name // We need to preserve it for LocalDeclarationsLowering. - else - generateCopyName(oldDescriptor.name) - - val visibility = oldDescriptor.visibility - - return object : ClassDescriptorImpl( - /* containingDeclaration = */ newContainingDeclaration, - /* name = */ newName, - /* modality = */ oldDescriptor.modality, - /* kind = */ oldDescriptor.kind, - /* supertypes = */ listOf(newSuperClass.defaultType) + newInterfaces.map { it.defaultType }, - /* source = */ oldDescriptor.source, - /* isExternal = */ oldDescriptor.isExternal, - /* storageManager = */ LockBasedStorageManager.NO_LOCKS - ) { - override fun getVisibility() = visibility - - override fun getDeclaredTypeParameters(): List { - return oldDescriptor.declaredTypeParameters - } - } - } - } - - //-------------------------------------------------------------------------// - - inner class DescriptorCollectorInitPhase : IrElementVisitorVoidWithContext() { - - private val initializedProperties = mutableSetOf() - - override fun visitElement(element: IrElement) { - element.acceptChildren(this, null) - } - - //---------------------------------------------------------------------// - - override fun visitPropertyNew(declaration: IrProperty) { - initPropertyOrField(declaration.descriptor) - super.visitPropertyNew(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitFieldNew(declaration: IrField) { - val oldDescriptor = declaration.descriptor - if (!initializedProperties.contains(oldDescriptor)) { - initPropertyOrField(oldDescriptor) // A field without a property or a field of a delegated property. - } - super.visitFieldNew(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitFunctionNew(declaration: IrFunction) { - val oldDescriptor = declaration.descriptor - if (oldDescriptor !is PropertyAccessorDescriptor) { // Property accessors are copied along with their property. - val newDescriptor = initFunctionDescriptor(oldDescriptor) - oldDescriptor.extensionReceiverParameter?.let { - descriptorSubstituteMap[it] = newDescriptor.extensionReceiverParameter!! - } - } - super.visitFunctionNew(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitVariable(declaration: IrVariable) { - declaration.descriptor.let { descriptorSubstituteMap[it] = copyVariableDescriptor(it) } - - super.visitVariable(declaration) - } - - //---------------------------------------------------------------------// - - override fun visitCatch(aCatch: IrCatch) { - aCatch.parameter.let { descriptorSubstituteMap[it] = copyVariableDescriptor(it) } - - super.visitCatch(aCatch) - } - - //--- Copy descriptors ------------------------------------------------// - - private fun generateCopyName(name: Name): Name { - val declarationName = name.toString() // Name of declaration - val indexStr = (nameIndex++).toString() // Unique for inline target index - return Name.identifier(declarationName + "_" + indexStr) - } - - //---------------------------------------------------------------------// - - private fun copyVariableDescriptor(oldDescriptor: VariableDescriptor): VariableDescriptor { - val oldContainingDeclaration = oldDescriptor.containingDeclaration - val newContainingDeclaration = descriptorSubstituteMap.getOrDefault(oldContainingDeclaration, oldContainingDeclaration) - return IrTemporaryVariableDescriptorImpl( - containingDeclaration = newContainingDeclaration, - name = generateCopyName(oldDescriptor.name), - outType = substituteType(oldDescriptor.type)!!, - isMutable = oldDescriptor.isVar - ) - } - - //---------------------------------------------------------------------// - - private fun initFunctionDescriptor(oldDescriptor: CallableDescriptor): CallableDescriptor = - when (oldDescriptor) { - is ConstructorDescriptor -> initConstructorDescriptor(oldDescriptor) - is SimpleFunctionDescriptor -> initSimpleFunctionDescriptor(oldDescriptor) - else -> TODO("Unsupported FunctionDescriptor subtype: $oldDescriptor") - } - - //---------------------------------------------------------------------// - - private fun initSimpleFunctionDescriptor(oldDescriptor: SimpleFunctionDescriptor): FunctionDescriptor = - (descriptorSubstituteMap[oldDescriptor] as SimpleFunctionDescriptorImpl).apply { - val oldDispatchReceiverParameter = oldDescriptor.dispatchReceiverParameter - val newDispatchReceiverParameter = oldDispatchReceiverParameter?.let { descriptorSubstituteMap.getOrDefault(it, it) as ReceiverParameterDescriptor } - val newTypeParameters = oldDescriptor.typeParameters // TODO substitute types - val newValueParameters = copyValueParameters(oldDescriptor.valueParameters, this) - val newReceiverParameterType = substituteType(oldDescriptor.extensionReceiverParameter?.type) - val newReturnType = substituteType(oldDescriptor.returnType) - - initialize( - /* receiverParameterType = */ newReceiverParameterType.createExtensionReceiver(this), - /* dispatchReceiverParameter = */ newDispatchReceiverParameter, - /* typeParameters = */ newTypeParameters, - /* unsubstitutedValueParameters = */ newValueParameters, - /* unsubstitutedReturnType = */ newReturnType, - /* modality = */ oldDescriptor.modality, - /* visibility = */ oldDescriptor.visibility - ) - isTailrec = oldDescriptor.isTailrec - isSuspend = oldDescriptor.isSuspend - overriddenDescriptors += oldDescriptor.overriddenDescriptors - } - - //---------------------------------------------------------------------// - - private fun initConstructorDescriptor(oldDescriptor: ConstructorDescriptor): FunctionDescriptor = - (descriptorSubstituteMap[oldDescriptor] as ClassConstructorDescriptorImpl).apply { - val newTypeParameters = oldDescriptor.typeParameters - val newValueParameters = copyValueParameters(oldDescriptor.valueParameters, this) - val receiverParameterType = substituteType(oldDescriptor.dispatchReceiverParameter?.type) - val returnType = substituteType(oldDescriptor.returnType) - - initialize( - /* receiverParameterType = */ receiverParameterType.createExtensionReceiver(this), - /* dispatchReceiverParameter = */ null, // For constructor there is no explicit dispatch receiver. - /* typeParameters = */ newTypeParameters, - /* unsubstitutedValueParameters = */ newValueParameters, - /* unsubstitutedReturnType = */ returnType, - /* modality = */ oldDescriptor.modality, - /* visibility = */ oldDescriptor.visibility - ) - } - - //---------------------------------------------------------------------// - - private fun initPropertyOrField(oldDescriptor: PropertyDescriptor) { - val newDescriptor = (descriptorSubstituteMap[oldDescriptor] as PropertyDescriptorImpl).apply { - setType( - /* outType = */ substituteType(oldDescriptor.type)!!, - /* typeParameters = */ oldDescriptor.typeParameters, - /* dispatchReceiverParameter = */ (containingDeclaration as ClassDescriptor).thisAsReceiverParameter, - /* extensionReceiverParamter = */ substituteType(oldDescriptor.extensionReceiverParameter?.type).createExtensionReceiver(this)) - - initialize( - /* getter = */ oldDescriptor.getter?.let { copyPropertyGetterDescriptor(it, this) }, - /* setter = */ oldDescriptor.setter?.let { copyPropertySetterDescriptor(it, this) }) - - overriddenDescriptors += oldDescriptor.overriddenDescriptors - } - oldDescriptor.getter?.let { descriptorSubstituteMap[it] = newDescriptor.getter!! } - oldDescriptor.setter?.let { descriptorSubstituteMap[it] = newDescriptor.setter!! } - oldDescriptor.extensionReceiverParameter?.let { - descriptorSubstituteMap[it] = newDescriptor.extensionReceiverParameter!! - } - initializedProperties.add(oldDescriptor) - } - - //---------------------------------------------------------------------// - - private fun copyPropertyGetterDescriptor(oldDescriptor: PropertyGetterDescriptor, newPropertyDescriptor: PropertyDescriptor) = - PropertyGetterDescriptorImpl( - /* correspondingProperty = */ newPropertyDescriptor, - /* annotations = */ oldDescriptor.annotations, - /* modality = */ oldDescriptor.modality, - /* visibility = */ oldDescriptor.visibility, - /* isDefault = */ oldDescriptor.isDefault, - /* isExternal = */ oldDescriptor.isExternal, - /* isInline = */ oldDescriptor.isInline, - /* kind = */ oldDescriptor.kind, - /* original = */ null, - /* source = */ oldDescriptor.source).apply { - initialize(substituteType(oldDescriptor.returnType)) - } - - //---------------------------------------------------------------------// - - private fun copyPropertySetterDescriptor(oldDescriptor: PropertySetterDescriptor, newPropertyDescriptor: PropertyDescriptor) = - PropertySetterDescriptorImpl( - /* correspondingProperty = */ newPropertyDescriptor, - /* annotations = */ oldDescriptor.annotations, - /* modality = */ oldDescriptor.modality, - /* visibility = */ oldDescriptor.visibility, - /* isDefault = */ oldDescriptor.isDefault, - /* isExternal = */ oldDescriptor.isExternal, - /* isInline = */ oldDescriptor.isInline, - /* kind = */ oldDescriptor.kind, - /* original = */ null, - /* source = */ oldDescriptor.source).apply { - initialize(copyValueParameters(oldDescriptor.valueParameters, this).single()) - } - - //-------------------------------------------------------------------------// - - private fun copyValueParameters(oldValueParameters: List , containingDeclaration: CallableDescriptor) = - oldValueParameters.map { oldDescriptor -> - val newDescriptor = ValueParameterDescriptorImpl( - containingDeclaration = containingDeclaration, - original = oldDescriptor.original, - index = oldDescriptor.index, - annotations = oldDescriptor.annotations, - name = oldDescriptor.name, - outType = substituteType(oldDescriptor.type)!!, - declaresDefaultValue = oldDescriptor.declaresDefaultValue(), - isCrossinline = oldDescriptor.isCrossinline, - isNoinline = oldDescriptor.isNoinline, - varargElementType = substituteType(oldDescriptor.varargElementType), - source = oldDescriptor.source - ) - descriptorSubstituteMap[oldDescriptor] = newDescriptor - newDescriptor - } - - } - -//-----------------------------------------------------------------------------// - - @Suppress("DEPRECATION") - inner class InlineCopyIr : DeepCopyIrTree() { - - override fun mapClassDeclaration (descriptor: ClassDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassDescriptor - override fun mapTypeAliasDeclaration (descriptor: TypeAliasDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as TypeAliasDescriptor - override fun mapFunctionDeclaration (descriptor: FunctionDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as FunctionDescriptor - override fun mapConstructorDeclaration (descriptor: ClassConstructorDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassConstructorDescriptor - override fun mapPropertyDeclaration (descriptor: PropertyDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as PropertyDescriptor - override fun mapLocalPropertyDeclaration (descriptor: VariableDescriptorWithAccessors) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as VariableDescriptorWithAccessors - override fun mapEnumEntryDeclaration (descriptor: ClassDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassDescriptor - override fun mapVariableDeclaration (descriptor: VariableDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as VariableDescriptor - override fun mapErrorDeclaration (descriptor: DeclarationDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) - - override fun mapClassReference (descriptor: ClassDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassDescriptor - override fun mapValueReference (descriptor: ValueDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ValueDescriptor - override fun mapVariableReference (descriptor: VariableDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as VariableDescriptor - override fun mapPropertyReference (descriptor: PropertyDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as PropertyDescriptor - override fun mapCallee (descriptor: FunctionDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as FunctionDescriptor - override fun mapDelegatedConstructorCallee (descriptor: ClassConstructorDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassConstructorDescriptor - override fun mapEnumConstructorCallee (descriptor: ClassConstructorDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassConstructorDescriptor - override fun mapLocalPropertyReference (descriptor: VariableDescriptorWithAccessors) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as VariableDescriptorWithAccessors - override fun mapClassifierReference (descriptor: ClassifierDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as ClassifierDescriptor - override fun mapReturnTarget (descriptor: FunctionDescriptor) = descriptorSubstituteMap.getOrDefault(descriptor, descriptor) as FunctionDescriptor - - //---------------------------------------------------------------------// - - override fun mapSuperQualifier(qualifier: ClassDescriptor?): ClassDescriptor? { - if (qualifier == null) return null - return descriptorSubstituteMap.getOrDefault(qualifier, qualifier) as ClassDescriptor - } - - //--- Visits ----------------------------------------------------------// - - override fun visitCall(expression: IrCall): IrCall { - if (expression !is IrCallImpl) return super.visitCall(expression) - val newDescriptor = mapCallee(expression.descriptor) - return IrCallImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = context.symbolTable.translateErased(newDescriptor.returnType!!), - descriptor = newDescriptor, - typeArgumentsCount = expression.typeArgumentsCount, - origin = expression.origin, - superQualifierDescriptor = mapSuperQualifier(expression.superQualifier) - ).apply { - transformValueArguments(expression) - substituteTypeArguments(expression) - } - } - - override fun visitField(declaration: IrField): IrField { - val descriptor = mapPropertyDeclaration(declaration.descriptor) - return IrFieldImpl( - declaration.startOffset, declaration.endOffset, - mapDeclarationOrigin(declaration.origin), - descriptor, - context.symbolTable.translateErased(descriptor.type), - declaration.initializer?.transform(this@InlineCopyIr, null) - ).apply { - transformAnnotations(declaration) - } - } - - //---------------------------------------------------------------------// - - override fun visitFunction(declaration: IrFunction) = - context.symbolTable.withScope(mapFunctionDeclaration(declaration.descriptor)) { descriptor -> - IrFunctionImpl( - startOffset = declaration.startOffset, - endOffset = declaration.endOffset, - origin = mapDeclarationOrigin(declaration.origin), - descriptor = descriptor, - returnType = declaration.returnType, - body = declaration.body?.transform(this@InlineCopyIr, null) - ).also { - it.returnType = context.symbolTable.translateErased(descriptor.returnType!!) - it.setOverrides(context.symbolTable) - it.transformParameters(declaration) - } - } - -// override fun visitSimpleFunction(declaration: IrSimpleFunction): IrFunction { -// val descriptor = mapFunctionDeclaration(declaration.descriptor) -// return IrFunctionImpl( -// startOffset = declaration.startOffset, -// endOffset = declaration.endOffset, -// origin = mapDeclarationOrigin(declaration.origin), -// descriptor = descriptor -// ).also { -// it.returnType = context.symbolTable.translateErased(descriptor.returnType!!) -// it.body = declaration.body?.transform(this, null) -// -// it.setOverrides(context.symbolTable) -// }.transformParameters1(declaration) -// } - -// override fun visitConstructor(declaration: IrConstructor): IrConstructor { -// val descriptor = mapConstructorDeclaration(declaration.descriptor) -// return IrConstructorImpl( -// startOffset = declaration.startOffset, -// endOffset = declaration.endOffset, -// origin = mapDeclarationOrigin(declaration.origin), -// descriptor = descriptor -// ).also { -// it.returnType = context.symbolTable.translateErased(descriptor.returnType) -// it.body = declaration.body?.transform(this, null) -// }.transformParameters1(declaration) -// } - - private fun FunctionDescriptor.getTypeParametersToTransform() = - when { - this is PropertyAccessorDescriptor -> correspondingProperty.typeParameters - else -> typeParameters - } - - protected fun T.transformParameters1(original: T): T = - apply { - transformTypeParameters(original, descriptor.getTypeParametersToTransform()) - transformValueParameters1(original) - } - - protected fun T.transformValueParameters1(original: T) = - apply { - dispatchReceiverParameter = - original.dispatchReceiverParameter?.replaceDescriptor1( - descriptor.dispatchReceiverParameter ?: throw AssertionError("No dispatch receiver in $descriptor") - ) - - extensionReceiverParameter = - original.extensionReceiverParameter?.replaceDescriptor1( - descriptor.extensionReceiverParameter ?: throw AssertionError("No extension receiver in $descriptor") - ) - - original.valueParameters.mapIndexedTo(valueParameters) { i, originalValueParameter -> - originalValueParameter.replaceDescriptor1(descriptor.valueParameters[i]) - } - } - - protected fun IrValueParameter.replaceDescriptor1(newDescriptor: ParameterDescriptor) = - IrValueParameterImpl( - startOffset, endOffset, - mapDeclarationOrigin(origin), - newDescriptor, - context.symbolTable.translateErased(newDescriptor.type), - (newDescriptor as? ValueParameterDescriptor)?.varargElementType?.let { context.symbolTable.translateErased(it) }, - defaultValue?.transform(this@InlineCopyIr, null) - ).apply { - transformAnnotations(this) - } - - //---------------------------------------------------------------------// - - override fun visitGetValue(expression: IrGetValue): IrGetValue { - val descriptor = mapValueReference(expression.descriptor) - return IrGetValueImpl( - expression.startOffset, expression.endOffset, - context.symbolTable.translateErased(descriptor.type), - descriptor, - mapStatementOrigin(expression.origin) - ) - } - - override fun visitVariable(declaration: IrVariable): IrVariable { - val descriptor = mapVariableDeclaration(declaration.descriptor) - return IrVariableImpl( - declaration.startOffset, declaration.endOffset, - mapDeclarationOrigin(declaration.origin), - descriptor, - context.symbolTable.translateErased(descriptor.type), - declaration.initializer?.transform(this, null) - ).apply { - transformAnnotations(declaration) - } - } - - private fun T.transformDefaults(original: T): T { - for (originalValueParameter in original.descriptor.valueParameters) { - val valueParameter = descriptor.valueParameters[originalValueParameter.index] - original.getDefault(originalValueParameter)?.let { irDefaultParameterValue -> - putDefault(valueParameter, irDefaultParameterValue.transform(this@InlineCopyIr, null)) - } - } - return this - } - - //---------------------------------------------------------------------// - - fun getTypeOperatorReturnType(operator: IrTypeOperator, type: IrType) : IrType { - return when (operator) { - IrTypeOperator.CAST, - IrTypeOperator.IMPLICIT_CAST, - IrTypeOperator.IMPLICIT_NOTNULL, - IrTypeOperator.IMPLICIT_COERCION_TO_UNIT, - IrTypeOperator.IMPLICIT_INTEGER_COERCION, - IrTypeOperator.SAM_CONVERSION -> type - IrTypeOperator.SAFE_CAST -> type.makeNullable() - IrTypeOperator.INSTANCEOF, - IrTypeOperator.NOT_INSTANCEOF -> context.irBuiltIns.booleanType - } - } - - //---------------------------------------------------------------------// - - override fun visitTypeOperator(expression: IrTypeOperatorCall): IrTypeOperatorCall { - val erasedTypeOperand = substituteAndEraseType(expression.typeOperand)!! - val typeOperand = substituteAndBreakType(expression.typeOperand) - val returnType = getTypeOperatorReturnType(expression.operator, erasedTypeOperand) - return IrTypeOperatorCallImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = returnType, - operator = expression.operator, - typeOperand = typeOperand, - argument = expression.argument.transform(this, null), - typeOperandClassifier = (typeOperand as IrSimpleType).classifier - ) - } - - //---------------------------------------------------------------------// - - override fun visitReturn(expression: IrReturn): IrReturn = - IrReturnImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = substituteAndEraseType(expression.type)!!, - returnTargetDescriptor = mapReturnTarget(expression.returnTarget), - value = expression.value.transform(this, null) - ) - - //---------------------------------------------------------------------// - - override fun visitBlock(expression: IrBlock): IrBlock { - return if (expression is IrReturnableBlock) { - IrReturnableBlockImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = expression.type, - descriptor = expression.descriptor, - origin = mapStatementOrigin(expression.origin), - statements = expression.statements.map { it.transform(this, null) }, - sourceFileSymbol = expression.sourceFileSymbol - ) - } else { - IrBlockImpl( - expression.startOffset, expression.endOffset, - substituteAndEraseType(expression.type)!!, - mapStatementOrigin(expression.origin), - expression.statements.map { it.transform(this, null) } - ) - } - } - - //-------------------------------------------------------------------------// - - override fun visitClassReference(expression: IrClassReference): IrClassReference { - val newExpressionType = substituteAndEraseType(expression.type)!! // Substituted expression type. - val newDescriptorType = substituteType(expression.descriptor.defaultType)!! // Substituted type of referenced class. - val classDescriptor = newDescriptorType.constructor.declarationDescriptor!! // Get ClassifierDescriptor of the referenced class. - return IrClassReferenceImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = newExpressionType, - descriptor = classDescriptor, - classType = expression.classType - ) - } - - //-------------------------------------------------------------------------// - - override fun visitGetClass(expression: IrGetClass): IrGetClass { - val type = substituteAndEraseType(expression.type)!! - return IrGetClassImpl( - startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = type, - argument = expression.argument.transform(this, null) - ) - } - - //-------------------------------------------------------------------------// - - override fun getNonTransformedLoop(irLoop: IrLoop): IrLoop { - return irLoop - } - - override fun visitClass(declaration: IrClass): IrClass { - val descriptor = this.mapClassDeclaration(declaration.descriptor) - - return context.symbolTable.declareClass( - declaration.startOffset, declaration.endOffset, mapDeclarationOrigin(declaration.origin), - descriptor - ).apply { - declaration.declarations.mapTo(this.declarations) { - it.transform(this@InlineCopyIr, null) as IrDeclaration - } - this.transformAnnotations(declaration) - this.thisReceiver = declaration.thisReceiver?.replaceDescriptor1(this.descriptor.thisAsReceiverParameter) - - this.transformTypeParameters(declaration, this.descriptor.declaredTypeParameters) - - descriptor.defaultType.constructor.supertypes.mapTo(this.superTypes) { - context.symbolTable.translateErased(it) - } - } - } - } - - //-------------------------------------------------------------------------// - - private fun substituteType(type: KotlinType?): KotlinType? { - val substitutedType = (type?.let { typeSubstitutor?.substitute(it, Variance.INVARIANT) } ?: type) - ?: return null - val oldClassDescriptor = TypeUtils.getClassDescriptor(substitutedType) ?: return substitutedType - return descriptorSubstituteMap[oldClassDescriptor]?.let { (it as ClassDescriptor).defaultType } ?: substitutedType - } - - private fun substituteAndEraseType(oldType: IrType?): IrType? { - oldType ?: return null - - val substitutedKotlinType = substituteType(oldType.toKotlinType()) - ?: return oldType - return context.symbolTable.translateErased(substitutedKotlinType) - } - - fun translateBroken(type: KotlinType): IrType { - val declarationDescriptor = type.constructor.declarationDescriptor - return when (declarationDescriptor) { - is ClassDescriptor -> { - val classifier = context.symbolTable.referenceClassifier(declarationDescriptor) - val typeArguments = type.arguments.map { - if (it.isStarProjection) { - IrStarProjectionImpl - } else { - makeTypeProjection(translateBroken(it.type), it.projectionKind) - } - } - IrSimpleTypeImpl( - classifier, - type.isMarkedNullable, - typeArguments, - emptyList() - ) - } - is TypeParameterDescriptor -> IrSimpleTypeImpl( - context.symbolTable.referenceTypeParameter(declarationDescriptor), - type.isMarkedNullable, - emptyList(), - emptyList() - ) - else -> error(declarationDescriptor ?: "null") - } - } - - private fun substituteAndBreakType(oldType: IrType): IrType { - return translateBroken(substituteType(oldType.toKotlinType())!!) - } - - //-------------------------------------------------------------------------// - - private fun IrMemberAccessExpression.substituteTypeArguments(original: IrMemberAccessExpression) { - for (index in 0 until original.typeArgumentsCount) { - val originalTypeArgument = original.getTypeArgument(index) - val newTypeArgument = substituteAndBreakType(originalTypeArgument!!) - this.putTypeArgument(index, newTypeArgument) - } - } - - //-------------------------------------------------------------------------// - - override fun addCurrentSubstituteMap(globalSubstituteMap: MutableMap) { - descriptorSubstituteMap.forEach { t, u -> - globalSubstituteMap[t] = SubstitutedDescriptor(targetDescriptor, u) - } - } - -} - -class SubstitutedDescriptor(val inlinedFunction: FunctionDescriptor, val descriptor: DeclarationDescriptor) - -internal class DescriptorSubstitutorForExternalScope( - val globalSubstituteMap: Map, - val context: Context -) - : IrElementTransformerVoidWithContext() { - - fun run(element: IrElement) { - element.transformChildrenVoid(this) - } - - override fun visitCall(expression: IrCall): IrExpression { - val oldExpression = super.visitCall(expression) as IrCall - - val substitutedDescriptor = globalSubstituteMap[expression.descriptor.original] - ?: return oldExpression - if (allScopes.any { it.scope.scopeOwner == substitutedDescriptor.inlinedFunction }) - return oldExpression - return when (oldExpression) { - is IrCallImpl -> copyIrCallImpl(oldExpression, substitutedDescriptor) - is IrCallWithShallowCopy -> copyIrCallWithShallowCopy(oldExpression, substitutedDescriptor) - else -> oldExpression - } - } - - //-------------------------------------------------------------------------// - - private fun copyIrCallImpl(oldExpression: IrCallImpl, substitutedDescriptor: SubstitutedDescriptor): IrCallImpl { - - val oldDescriptor = oldExpression.descriptor - val newDescriptor = substitutedDescriptor.descriptor as FunctionDescriptor - - if (newDescriptor == oldDescriptor) - return oldExpression - - return IrCallImpl( - startOffset = oldExpression.startOffset, - endOffset = oldExpression.endOffset, - type = context.symbolTable.translateErased(newDescriptor.returnType!!), - symbol = createFunctionSymbol(newDescriptor), - descriptor = newDescriptor, - typeArgumentsCount = oldExpression.typeArgumentsCount, - origin = oldExpression.origin, - superQualifierSymbol = createClassSymbolOrNull(oldExpression.superQualifier) - ).apply { - copyTypeArgumentsFrom(oldExpression) - - oldExpression.descriptor.valueParameters.forEach { - val valueArgument = oldExpression.getValueArgument(it) - putValueArgument(it.index, valueArgument) - } - extensionReceiver = oldExpression.extensionReceiver - dispatchReceiver = oldExpression.dispatchReceiver - } - } - - //-------------------------------------------------------------------------// - - private fun copyIrCallWithShallowCopy(oldExpression: IrCallWithShallowCopy, substitutedDescriptor: SubstitutedDescriptor): IrCall { - - val oldDescriptor = oldExpression.descriptor - val newDescriptor = substitutedDescriptor.descriptor as FunctionDescriptor - - if (newDescriptor == oldDescriptor) - return oldExpression - - return oldExpression.shallowCopy(oldExpression.origin, createFunctionSymbol(newDescriptor), oldExpression.superQualifierSymbol) - } -} +} \ No newline at end of file diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt index 747785ed133..7a25dc8d7c5 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt @@ -7,433 +7,338 @@ package org.jetbrains.kotlin.ir.backend.js.lower.inline -import org.jetbrains.kotlin.backend.common.* +import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext +import org.jetbrains.kotlin.backend.common.ScopeWithIr import org.jetbrains.kotlin.backend.common.descriptors.explicitParameters import org.jetbrains.kotlin.backend.common.lower.createIrBuilder -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.backend.common.reportWarning +import org.jetbrains.kotlin.config.languageVersionSettings +import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlin.descriptors.ValueDescriptor +import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext -import org.jetbrains.kotlin.ir.builders.* +import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.fileEntry +import org.jetbrains.kotlin.ir.builders.irCall +import org.jetbrains.kotlin.ir.builders.irGet +import org.jetbrains.kotlin.ir.builders.irReturn import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl import org.jetbrains.kotlin.ir.expressions.impl.IrReturnableBlockImpl import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl +import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl import org.jetbrains.kotlin.ir.types.irTypeKotlinBuiltIns import org.jetbrains.kotlin.ir.types.toKotlinType import org.jetbrains.kotlin.ir.util.file import org.jetbrains.kotlin.ir.util.getArguments import org.jetbrains.kotlin.ir.util.parentAsClass -import org.jetbrains.kotlin.ir.visitors.* +import org.jetbrains.kotlin.ir.util.resolveFakeOverride +import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid +import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.inline.InlineUtil -import org.jetbrains.kotlin.types.TypeConstructor -import org.jetbrains.kotlin.types.TypeProjection -import org.jetbrains.kotlin.types.TypeProjectionImpl -import org.jetbrains.kotlin.types.TypeSubstitutor - -abstract class IrElementTransformerWithContext : IrElementTransformer { - - private val scopeStack = mutableListOf() - - final override fun visitFile(declaration: IrFile, data: D): IrFile { - scopeStack.push(ScopeWithIr(Scope(declaration.symbol), declaration)) - val result = visitFileNew(declaration, data) - scopeStack.pop() - return result - } - - final override fun visitClass(declaration: IrClass, data: D): IrStatement { - scopeStack.push(ScopeWithIr(Scope(declaration.symbol), declaration)) - val result = visitClassNew(declaration, data) - scopeStack.pop() - return result - } - - final override fun visitProperty(declaration: IrProperty, data: D): IrStatement { - scopeStack.push(ScopeWithIr(Scope(declaration.descriptor), declaration)) - val result = visitPropertyNew(declaration, data) - scopeStack.pop() - return result - } - - final override fun visitField(declaration: IrField, data: D): IrStatement { - scopeStack.push(ScopeWithIr(Scope(declaration.symbol), declaration)) - val result = visitFieldNew(declaration, data) - scopeStack.pop() - return result - } - - final override fun visitFunction(declaration: IrFunction, data: D): IrStatement { - scopeStack.push(ScopeWithIr(Scope(declaration.symbol), declaration)) - val result = visitFunctionNew(declaration, data) - scopeStack.pop() - return result - } - - protected val currentFile get() = scopeStack.lastOrNull { it.irElement is IrFile }!!.irElement as IrFile - protected val currentClass get() = scopeStack.lastOrNull { it.scope.scopeOwner is ClassDescriptor } - protected val currentFunction get() = scopeStack.lastOrNull { it.scope.scopeOwner is FunctionDescriptor } - protected val currentProperty get() = scopeStack.lastOrNull { it.scope.scopeOwner is PropertyDescriptor } - protected val currentScope get() = scopeStack.peek() - protected val parentScope get() = if (scopeStack.size < 2) null else scopeStack[scopeStack.size - 2] - protected val allScopes get() = scopeStack - - fun printScopeStack() { - scopeStack.forEach { println(it.scope.scopeOwner) } - } - - open fun visitFileNew(declaration: IrFile, data: D): IrFile { - return super.visitFile(declaration, data) - } - - open fun visitClassNew(declaration: IrClass, data: D): IrStatement { - return super.visitClass(declaration, data) - } - - open fun visitFunctionNew(declaration: IrFunction, data: D): IrStatement { - return super.visitFunction(declaration, data) - } - - open fun visitPropertyNew(declaration: IrProperty, data: D): IrStatement { - return super.visitProperty(declaration, data) - } - - open fun visitFieldNew(declaration: IrField, data: D): IrStatement { - return super.visitField(declaration, data) - } -} - - -//-----------------------------------------------------------------------------// typealias Context = JsIrBackendContext -internal class Ref(var value: T) - // backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt -internal class FunctionInlining(val context: Context): IrElementTransformerWithContext>() { - - // TODO private val deserializer = DeserializerDriver(context) - private val globalSubstituteMap = mutableMapOf() - private val inlineFunctions = mutableMapOf() - +internal class FunctionInlining(val context: Context): IrElementTransformerVoidWithContext() { //-------------------------------------------------------------------------// fun inline(irModule: IrModuleFragment): IrElement { irTypeKotlinBuiltIns = irModule.irBuiltins.builtIns - val transformedModule = irModule.accept(this, Ref(false)) - DescriptorSubstitutorForExternalScope(globalSubstituteMap, context).run(transformedModule) // Transform calls to object that might be returned from inline function call. - return transformedModule + return irModule.accept(this, data = null) } - override fun visitFunctionNew(declaration: IrFunction, data: Ref): IrStatement { - val descriptor = declaration.descriptor - - val localData = Ref(inlineFunctions[descriptor] ?: false) - val result = super.visitFunctionNew(declaration, localData) - data.value = data.value or localData.value - - if (descriptor.needsInlining) - inlineFunctions[descriptor] = localData.value - return result - } - - override fun visitCall(expression: IrCall, data: Ref): IrExpression { - - val argsAreBad = Ref(false) - val callSite = super.visitCall(expression, argsAreBad) as IrCall - data.value = data.value or argsAreBad.value + override fun visitCall(expression: IrCall): IrExpression { + val callSite = super.visitCall(expression) as IrCall val functionDescriptor = callSite.descriptor - if (!functionDescriptor.needsInlining) return callSite // This call does not need inlining. + if (!functionDescriptor.needsInlining) + return callSite // This call does not need inlining. - val callee = getFunctionDeclaration(callSite) // Get declaration of the function to be inlined. - if (callee == null) { // We failed to get the declaration. - val message = "Inliner failed to obtain function declaration: " + - functionDescriptor.fqNameSafe.toString() - context.reportWarning(message, currentFile, callSite) // Report warning. - return callSite - } - data.value = data.value or callee.second + val callee = getFunctionDeclaration(callSite.symbol) // Get declaration of the function to be inlined. + callee.transformChildrenVoid(this) // Process recursive inline. - val childIsBad = Ref(inlineFunctions[functionDescriptor] ?: false) - callee.first.transformChildren(this, childIsBad) // Process recursive inline. - inlineFunctions[functionDescriptor] = childIsBad.value - data.value = data.value or childIsBad.value - - val currentCalleeIsBad = argsAreBad.value or childIsBad.value or callee.second - val inliner = Inliner(globalSubstituteMap, callSite, callee.first, !currentCalleeIsBad, currentScope!!, - allScopes.map { it.irElement }.filterIsInstance().lastOrNull(), context, this) + val parent = allScopes.map { it.irElement }.filterIsInstance().lastOrNull() + val inliner = Inliner(callSite, callee, currentScope!!, parent, context) // Create inliner for this scope. return inliner.inline() // Return newly created IrInlineBody instead of IrCall. } //-------------------------------------------------------------------------// - private fun getFunctionDeclaration(irCall: IrCall): Pair? { + private fun getFunctionDeclaration(symbol: IrFunctionSymbol): IrFunction { - val functionDescriptor = irCall.descriptor - val originalDescriptor = functionDescriptor.resolveFakeOverride().original + val descriptor = symbol.descriptor.original +// val originalDescriptor = functionDescriptor.resolveFakeOverride().original - val functionDeclaration = - context.originalModuleIndex.functions[originalDescriptor] ?: context.symbolTable.referenceDeclaredFunction(originalDescriptor).owner - // ?: // If function is declared in the current module. - // TODO deserializer.deserializeInlineBody(originalDescriptor) // Function is declared in another module. - return (functionDeclaration as IrFunction?)?.let { it to false } + val languageVersionSettings = context.configuration.languageVersionSettings + + // TODO: Remove these hacks when coroutine intrinsics are fixed. + return when { +// descriptor.isBuiltInIntercepted(languageVersionSettings) -> +// error("Continuation.intercepted is not available with release coroutines") +// +// descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) -> +// context.ir.symbols.konanSuspendCoroutineUninterceptedOrReturn.owner +// +// descriptor == context.ir.symbols.coroutineContextGetter -> +// context.ir.symbols.konanCoroutineContextGetter.owner + + else -> (symbol.owner as? IrSimpleFunction)?.resolveFakeOverride() ?: symbol.owner + } } -} -// TODO: should we keep this at all? -private val inlineConstructor = FqName("kotlin.native.internal.InlineConstructor") -private val FunctionDescriptor.isInlineConstructor get() = annotations.hasAnnotation(inlineConstructor) + + // TODO: should we keep this at all? + private val inlineConstructor = FqName("kotlin.native.internal.InlineConstructor") + private val FunctionDescriptor.isInlineConstructor get() = annotations.hasAnnotation(inlineConstructor) //-----------------------------------------------------------------------------// -private class Inliner(val globalSubstituteMap: MutableMap, - val callSite: IrCall, - val callee: IrFunction, - val local: Boolean, - val currentScope: ScopeWithIr, - val parent: IrDeclarationParent?, - val context: Context, - val owner: FunctionInlining /*TODO: make inner*/) { + private inner class Inliner( + val callSite: IrCall, + val callee: IrFunction, + val currentScope: ScopeWithIr, + val parent: IrDeclarationParent?, + val context: Context + ) { - val copyIrElement = - if (!local) - DeepCopyIrTreeWithDescriptors(callee.descriptor, currentScope.scope.scopeOwner, - context, createTypeSubstitutor(callSite)) - else { - val typeParameters = - if (callee is IrConstructor) - callee.parentAsClass.typeParameters - else callee.typeParameters - val typeArguments = - (0 until callSite.typeArgumentsCount).map { - typeParameters[it].symbol to callSite.getTypeArgument(it) - }.associate { it } - DeepCopyIrTreeWithSymbolsForInliner(context, typeArguments, parent) + val copyIrElement = run { + val typeParameters = + if (callee is IrConstructor) + callee.parentAsClass.typeParameters + else callee.typeParameters + val typeArguments = + (0 until callSite.typeArgumentsCount).map { + typeParameters[it].symbol to callSite.getTypeArgument(it) + }.associate { it } + DeepCopyIrTreeWithSymbolsForInliner(context, typeArguments, parent) + } + + val substituteMap = mutableMapOf() + + fun inline() = inlineFunction(callSite, callee) + + /** + * TODO: JVM inliner crashed on attempt inline this function from transform.kt with: + * j.l.IllegalStateException: Couldn't obtain compiled function body for + * public inline fun kotlin.collections.MutableList.transform... + */ + private inline fun MutableList.transform(transformation: (T) -> IrElement) { + forEachIndexed { i, item -> + set(i, transformation(item) as T) } + } - val substituteMap = mutableMapOf() + private fun inlineFunction(callSite: IrCall, callee: IrFunction): IrReturnableBlockImpl { + val copiedCallee = copyIrElement.copy(callee) as IrFunction - fun inline() = inlineFunction(callSite, callee) + val evaluationStatements = evaluateArguments(callSite, copiedCallee) + val statements = (copiedCallee.body as IrBlockBody).statements - /** - * TODO: JVM inliner crashed on attempt inline this function from transform.kt with: - * j.l.IllegalStateException: Couldn't obtain compiled function body for - * public inline fun kotlin.collections.MutableList.transform... - */ - private inline fun MutableList.transform(transformation: (T) -> IrElement) { - forEachIndexed { i, item -> - set(i, transformation(item) as T) - } - } + val irReturnableBlockSymbol = IrReturnableBlockSymbolImpl(copiedCallee.descriptor.original) + val descriptor = callee.descriptor.original + val startOffset = callee.startOffset + val endOffset = callee.endOffset + val irBuilder = context.createIrBuilder(irReturnableBlockSymbol, startOffset, endOffset) - private fun inlineFunction(callSite: IrCall, callee: IrFunction): IrReturnableBlockImpl { - val copiedCallee = copyIrElement.copy(callee) as IrFunction - - val evaluationStatements = evaluateArguments(callSite, copiedCallee) - val statements = (copiedCallee.body as IrBlockBody).statements - - val irReturnableBlockSymbol = IrReturnableBlockSymbolImpl(copiedCallee.descriptor.original) - val descriptor = callee.descriptor.original - val startOffset = callee.startOffset - val endOffset = callee.endOffset - val irBuilder = context.createIrBuilder(irReturnableBlockSymbol, startOffset, endOffset) - - if (descriptor.isInlineConstructor) { - val delegatingConstructorCall = statements[0] as IrDelegatingConstructorCall - irBuilder.run { - val constructorDescriptor = delegatingConstructorCall.descriptor.original - val constructorCall = irCall(delegatingConstructorCall.symbol, callSite.type, - constructorDescriptor.typeParameters.map { delegatingConstructorCall.getTypeArgument(it)!! }).apply { - constructorDescriptor.valueParameters.forEach { putValueArgument(it, delegatingConstructorCall.getValueArgument(it)) } - } - val oldThis = delegatingConstructorCall.descriptor.constructedClass.thisAsReceiverParameter - val newThis = currentScope.scope.createTemporaryVariable( + if (descriptor.isInlineConstructor) { + val delegatingConstructorCall = statements[0] as IrDelegatingConstructorCall + irBuilder.run { + val constructorDescriptor = delegatingConstructorCall.descriptor.original + val constructorCall = irCall(delegatingConstructorCall.symbol, callSite.type, + constructorDescriptor.typeParameters.map { delegatingConstructorCall.getTypeArgument(it)!! }).apply { + constructorDescriptor.valueParameters.forEach { + putValueArgument( + it, + delegatingConstructorCall.getValueArgument(it) + ) + } + } + val oldThis = delegatingConstructorCall.descriptor.constructedClass.thisAsReceiverParameter + val newThis = currentScope.scope.createTemporaryVariable( irExpression = constructorCall, - nameHint = delegatingConstructorCall.descriptor.fqNameSafe.toString() + ".this" - ) - statements[0] = newThis - substituteMap[oldThis] = irGet(newThis) - statements.add(irReturn(irGet(newThis))) - } - } - - copyIrElement.addCurrentSubstituteMap(globalSubstituteMap) - - val transformer = ParameterSubstitutor() - statements.transform { it.transform(transformer, data = null) } - statements.addAll(0, evaluationStatements) - - return IrReturnableBlockImpl( - startOffset = startOffset, - endOffset = endOffset, - type = copiedCallee.returnType, - symbol = irReturnableBlockSymbol, - origin = null, - statements = statements, - sourceFileSymbol = callee.file.symbol - ).apply { - transformChildrenVoid(object: IrElementTransformerVoid() { - override fun visitReturn(expression: IrReturn): IrExpression { - expression.transformChildrenVoid(this) - - if (expression.returnTargetSymbol == copiedCallee.symbol) - return irBuilder.irReturn(expression.value) - return expression + nameHint = delegatingConstructorCall.descriptor.fqNameSafe.toString() + ".this" + ) + statements[0] = newThis + substituteMap[oldThis] = irGet(newThis) + statements.add(irReturn(irGet(newThis))) } - }) - } - } - - //---------------------------------------------------------------------// - - private inner class ParameterSubstitutor: IrElementTransformerVoid() { - - override fun visitGetValue(expression: IrGetValue): IrExpression { - val newExpression = super.visitGetValue(expression) as IrGetValue - val descriptor = newExpression.descriptor - val argument = substituteMap[descriptor] - - if (argument == null) return newExpression - - argument.transformChildrenVoid(this) // Default argument can contain subjects for substitution. - return copyIrElement.copy(argument) as IrExpression - } - - //-----------------------------------------------------------------// - - private val IrFunctionReference.isLambda: Boolean - get() { - return symbol.owner.visibility == Visibilities.LOCAL && origin == IrStatementOrigin.LAMBDA } - override fun visitCall(expression: IrCall): IrExpression { - if (!isLambdaCall(expression)) - return super.visitCall(expression) + val transformer = ParameterSubstitutor() + statements.transform { it.transform(transformer, data = null) } + statements.addAll(0, evaluationStatements) - val dispatchReceiver = expression.dispatchReceiver as IrGetValue - val functionArgument = substituteMap[dispatchReceiver.descriptor] - if (functionArgument == null) - return super.visitCall(expression) - val dispatchDescriptor = dispatchReceiver.descriptor - if (dispatchDescriptor is ValueParameterDescriptor && - dispatchDescriptor.isNoinline) return super.visitCall(expression) + return IrReturnableBlockImpl( + startOffset = startOffset, + endOffset = endOffset, + type = copiedCallee.returnType, + symbol = irReturnableBlockSymbol, + origin = null, + statements = statements, + sourceFileSymbol = callee.file.symbol + ).apply { + transformChildrenVoid(object: IrElementTransformerVoid() { + override fun visitReturn(expression: IrReturn): IrExpression { + expression.transformChildrenVoid(this) - if (functionArgument is IrFunctionReference) { - if (!functionArgument.isLambda) return super.visitCall(expression) + if (expression.returnTargetSymbol == copiedCallee.symbol) + return irBuilder.irReturn(expression.value) + return expression + } + }) + } + } - val functionDescriptor = functionArgument.descriptor - val functionParameters = functionDescriptor.explicitParameters - val boundFunctionParameters = functionArgument.getArguments() - val unboundFunctionParameters = functionParameters - boundFunctionParameters.map { it.first } - val boundFunctionParametersMap = boundFunctionParameters.associate { it.first to it.second } + //---------------------------------------------------------------------// - var unboundIndex = 0 - val unboundArgsSet = unboundFunctionParameters.toSet() - val valueParameters = expression.getArguments().drop(1) // Skip dispatch receiver. + private inner class ParameterSubstitutor : IrElementTransformerVoid() { - val immediateCall = IrCallImpl( + override fun visitGetValue(expression: IrGetValue): IrExpression { + val newExpression = super.visitGetValue(expression) as IrGetValue + val descriptor = newExpression.descriptor + val argument = substituteMap[descriptor] ?: return newExpression + + argument.transformChildrenVoid(this) // Default argument can contain subjects for substitution. + return copyIrElement.copy(argument) as IrExpression + } + + //-----------------------------------------------------------------// + + private val IrFunctionReference.isLambda: Boolean + get() { + return symbol.owner.visibility == Visibilities.LOCAL && origin == IrStatementOrigin.LAMBDA + } + + override fun visitCall(expression: IrCall): IrExpression { + if (!isLambdaCall(expression)) + return super.visitCall(expression) + + val dispatchReceiver = expression.dispatchReceiver as IrGetValue + val functionArgument = substituteMap[dispatchReceiver.descriptor] + if (functionArgument == null) + return super.visitCall(expression) + val dispatchDescriptor = dispatchReceiver.descriptor + if (dispatchDescriptor is ValueParameterDescriptor && + dispatchDescriptor.isNoinline + ) return super.visitCall(expression) + + if (functionArgument is IrFunctionReference) { + if (!functionArgument.isLambda) return super.visitCall(expression) + + val functionDescriptor = functionArgument.descriptor + val functionParameters = functionDescriptor.explicitParameters + val boundFunctionParameters = functionArgument.getArguments() + val unboundFunctionParameters = functionParameters - boundFunctionParameters.map { it.first } + val boundFunctionParametersMap = boundFunctionParameters.associate { it.first to it.second } + + var unboundIndex = 0 + val unboundArgsSet = unboundFunctionParameters.toSet() + val valueParameters = expression.getArguments().drop(1) // Skip dispatch receiver. + + val immediateCall = IrCallImpl( startOffset = expression.startOffset, - endOffset = expression.endOffset, - type = expression.type, - symbol = functionArgument.symbol, - descriptor = functionArgument.descriptor).apply { - functionParameters.forEach { - val argument = + endOffset = expression.endOffset, + type = expression.type, + symbol = functionArgument.symbol, + descriptor = functionArgument.descriptor + ).apply { + functionParameters.forEach { + val argument = if (!unboundArgsSet.contains(it)) boundFunctionParametersMap[it]!! else valueParameters[unboundIndex++].second - when (it) { - functionDescriptor.dispatchReceiverParameter -> this.dispatchReceiver = argument - functionDescriptor.extensionReceiverParameter -> this.extensionReceiver = argument - else -> putValueArgument((it as ValueParameterDescriptor).index, argument) + when (it) { + functionDescriptor.dispatchReceiverParameter -> this.dispatchReceiver = argument + functionDescriptor.extensionReceiverParameter -> this.extensionReceiver = argument + else -> putValueArgument((it as ValueParameterDescriptor).index, argument) + } } + assert(unboundIndex == valueParameters.size) { "Not all arguments of are used" } } - assert(unboundIndex == valueParameters.size) { "Not all arguments of are used" } + return this@FunctionInlining.visitCall(super.visitCall(immediateCall) as IrCall) } - return owner.visitCall(super.visitCall(immediateCall) as IrCall, Ref(false)) - } - if (functionArgument !is IrBlock) - return super.visitCall(expression) + if (functionArgument !is IrBlock) + return super.visitCall(expression) - val functionDeclaration = functionArgument.statements[0] as IrFunction - val newExpression = inlineFunction(expression, functionDeclaration) // Inline the lambda. Lambda parameters will be substituted with lambda arguments. - return newExpression.transform(this, null) // Substitute lambda arguments with target function arguments. + val functionDeclaration = functionArgument.statements[0] as IrFunction + val newExpression = inlineFunction( + expression, + functionDeclaration + ) // Inline the lambda. Lambda parameters will be substituted with lambda arguments. + return newExpression.transform( + this, + null + ) // Substitute lambda arguments with target function arguments. + } + + //-----------------------------------------------------------------// + + override fun visitElement(element: IrElement) = element.accept(this, null) } - //-----------------------------------------------------------------// + private fun isLambdaCall(irCall: IrCall) = irCall.symbol.owner.isFunctionInvoke && irCall.dispatchReceiver is IrGetValue - override fun visitElement(element: IrElement) = element.accept(this, null) - } + //-------------------------------------------------------------------------// - private fun isLambdaCall(irCall: IrCall) = irCall.symbol.owner.isFunctionInvoke && irCall.dispatchReceiver is IrGetValue + private inner class ParameterToArgument( + val parameter: IrValueParameter, + val argumentExpression: IrExpression + ) { - private fun createTypeSubstitutor(irCall: IrCall): TypeSubstitutor? { - if (irCall.typeArgumentsCount == 0) return null - val descriptor = irCall.descriptor.resolveFakeOverride().original - val typeParameters = descriptor.propertyIfAccessor.typeParameters - val substitutionContext = mutableMapOf() - for (index in 0 until irCall.typeArgumentsCount) { - val typeArgument = irCall.getTypeArgument(index) ?: continue - substitutionContext[typeParameters[index].typeConstructor] = TypeProjectionImpl(typeArgument.toKotlinType()) + val isInlinableLambdaArgument: Boolean + get() { + if (!InlineUtil.isInlineParameter(parameter.descriptor)) return false + if (argumentExpression is IrFunctionReference + && !argumentExpression.descriptor.isSuspend + ) return true // Skip suspend functions for now since it's not supported by FE anyway. + + // Do pattern-matching on IR. + if (argumentExpression !is IrBlock) return false + if (argumentExpression.origin != IrStatementOrigin.LAMBDA && + argumentExpression.origin != IrStatementOrigin.ANONYMOUS_FUNCTION + ) return false + val statements = argumentExpression.statements + val irFunction = statements[0] + val irCallableReference = statements[1] + if (irFunction !is IrFunction) return false + if (irCallableReference !is IrCallableReference) return false + return true + } + + val isImmutableVariableLoad: Boolean + get() = argumentExpression.let { + it is IrGetValue && !it.symbol.owner.let { v -> v is IrVariable && v.isVar } + } } - return TypeSubstitutor.create(substitutionContext) - } - //-------------------------------------------------------------------------// + //-------------------------------------------------------------------------// - private class ParameterToArgument(val parameter: IrValueParameter, - val argumentExpression : IrExpression) { + private fun buildParameterToArgument(callSite: IrCall, callee: IrFunction): List { - val isInlinableLambdaArgument : Boolean - get() { - if (!InlineUtil.isInlineParameter(parameter.descriptor)) return false - if (argumentExpression is IrFunctionReference - && !argumentExpression.descriptor.isSuspend) return true // Skip suspend functions for now since it's not supported by FE anyway. + val parameterToArgument = mutableListOf() - // Do pattern-matching on IR. - if (argumentExpression !is IrBlock) return false - if (argumentExpression.origin != IrStatementOrigin.LAMBDA && - argumentExpression.origin != IrStatementOrigin.ANONYMOUS_FUNCTION) return false - val statements = argumentExpression.statements - val irFunction = statements[0] - val irCallableReference = statements[1] - if (irFunction !is IrFunction) return false - if (irCallableReference !is IrCallableReference) return false - return true - } + if (callSite.dispatchReceiver != null && // Only if there are non null dispatch receivers both + callee.dispatchReceiverParameter != null + ) // on call site and in function declaration. + parameterToArgument += ParameterToArgument( + parameter = callee.dispatchReceiverParameter!!, + argumentExpression = callSite.dispatchReceiver!! + ) - val isImmutableVariableLoad: Boolean - get() = argumentExpression.let { - it is IrGetValue && !it.descriptor.let { it is VariableDescriptor && it.isVar } - } - } - - //-------------------------------------------------------------------------// - - private fun buildParameterToArgument(callSite: IrCall, callee: IrFunction): List { - - val parameterToArgument = mutableListOf() - - if (callSite.dispatchReceiver != null && // Only if there are non null dispatch receivers both - callee.dispatchReceiverParameter != null) // on call site and in function declaration. - parameterToArgument += ParameterToArgument( - parameter = callee.dispatchReceiverParameter!!, - argumentExpression = callSite.dispatchReceiver!! - ) - - val valueArguments = + val valueArguments = callSite.descriptor.valueParameters.map { callSite.getValueArgument(it) }.toMutableList() - if (callee.extensionReceiverParameter != null) { - parameterToArgument += ParameterToArgument( + if (callee.extensionReceiverParameter != null) { + parameterToArgument += ParameterToArgument( parameter = callee.extensionReceiverParameter!!, argumentExpression = if (callSite.extensionReceiver != null) { callSite.extensionReceiver!! @@ -441,95 +346,103 @@ private class Inliner(val globalSubstituteMap: MutableMap() - for (parameter in callee.valueParameters) { - val argument = valueArguments[parameter.index] - when { - argument != null -> { - parameterToArgument += ParameterToArgument( - parameter = parameter, + val parametersWithDefaultToArgument = mutableListOf() + for (parameter in callee.valueParameters) { + val argument = valueArguments[parameter.index] + when { + argument != null -> { + parameterToArgument += ParameterToArgument( + parameter = parameter, argumentExpression = argument - ) - } + ) + } - // After ExpectDeclarationsRemoving pass default values from expect declarations - // are represented correctly in IR. - parameter.defaultValue != null -> { // There is no argument - try default value. - parametersWithDefaultToArgument += ParameterToArgument( - parameter = parameter, + // After ExpectDeclarationsRemoving pass default values from expect declarations + // are represented correctly in IR. + parameter.defaultValue != null -> { // There is no argument - try default value. + parametersWithDefaultToArgument += ParameterToArgument( + parameter = parameter, argumentExpression = parameter.defaultValue!!.expression - ) - } + ) + } - parameter.varargElementType != null -> { - val emptyArray = IrVarargImpl( - startOffset = callSite.startOffset, - endOffset = callSite.endOffset, - type = parameter.type, + parameter.varargElementType != null -> { + val emptyArray = IrVarargImpl( + startOffset = callSite.startOffset, + endOffset = callSite.endOffset, + type = parameter.type, varargElementType = parameter.varargElementType!! - ) - parameterToArgument += ParameterToArgument( - parameter = parameter, + ) + parameterToArgument += ParameterToArgument( + parameter = parameter, argumentExpression = emptyArray - ) - } + ) + } - else -> { - val message = "Incomplete expression: call to ${callee.descriptor} " + - "has no argument at index ${parameter.index}" - throw Error(message) + else -> { + val message = "Incomplete expression: call to ${callee.descriptor} " + + "has no argument at index ${parameter.index}" + throw Error(message) + } } } + return parameterToArgument + parametersWithDefaultToArgument // All arguments except default are evaluated at callsite, + // but default arguments are evaluated inside callee. } - return parameterToArgument + parametersWithDefaultToArgument // All arguments except default are evaluated at callsite, - // but default arguments are evaluated inside callee. - } - //-------------------------------------------------------------------------// + //-------------------------------------------------------------------------// - private fun evaluateArguments(callSite: IrCall, callee: IrFunction): List { + private fun evaluateArguments(callSite: IrCall, callee: IrFunction): List { - val parameterToArgumentOld = buildParameterToArgument(callSite, callee) - val evaluationStatements = mutableListOf() - val substitutor = ParameterSubstitutor() - parameterToArgumentOld.forEach { - val parameterDescriptor = it.parameter.descriptor + val parameterToArgumentOld = buildParameterToArgument(callSite, callee) + val evaluationStatements = mutableListOf() + val substitutor = ParameterSubstitutor() + parameterToArgumentOld.forEach { + val parameterDescriptor = it.parameter.descriptor - /* + /* * We need to create temporary variable for each argument except inlinable lambda arguments. * For simplicity and to produce simpler IR we don't create temporaries for every immutable variable, * not only for those referring to inlinable lambdas. */ - if (it.isInlinableLambdaArgument) { - substituteMap[parameterDescriptor] = it.argumentExpression - return@forEach + if (it.isInlinableLambdaArgument) { + substituteMap[parameterDescriptor] = it.argumentExpression + return@forEach + } + + if (it.isImmutableVariableLoad) { + substituteMap[parameterDescriptor] = it.argumentExpression.transform( + substitutor, + data = null + ) // Arguments may reference the previous ones - substitute them. + return@forEach + } + + val newVariable = currentScope.scope.createTemporaryVariable( + irExpression = it.argumentExpression.transform( + substitutor, + data = null + ), // Arguments may reference the previous ones - substitute them. + nameHint = callee.descriptor.name.toString(), + isMutable = false + ) + + evaluationStatements.add(newVariable) + val getVal = IrGetValueImpl( + startOffset = currentScope.irElement.startOffset, + endOffset = currentScope.irElement.endOffset, + type = newVariable.type, + symbol = newVariable.symbol + ) + substituteMap[parameterDescriptor] = getVal } - - if (it.isImmutableVariableLoad) { - substituteMap[parameterDescriptor] = it.argumentExpression.transform(substitutor, data = null) // Arguments may reference the previous ones - substitute them. - return@forEach - } - - val newVariable = currentScope.scope.createTemporaryVariable( - irExpression = it.argumentExpression.transform(substitutor, data = null), // Arguments may reference the previous ones - substitute them. - nameHint = callee.descriptor.name.toString(), - isMutable = false) - - evaluationStatements.add(newVariable) - val getVal = IrGetValueImpl( - startOffset = currentScope.irElement.startOffset, - endOffset = currentScope.irElement.endOffset, - type = newVariable.type, - symbol = newVariable.symbol - ) - substituteMap[parameterDescriptor] = getVal + return evaluationStatements } - return evaluationStatements } } \ No newline at end of file diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/LegacyDescriptorUtils.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/LegacyDescriptorUtils.kt index 7dfa55148e8..0ce0b33c3bb 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/LegacyDescriptorUtils.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/LegacyDescriptorUtils.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.util.isFunctionOrKFunction import org.jetbrains.kotlin.ir.util.isFunctionTypeOrSubtype +import org.jetbrains.kotlin.ir.util.isKFunction import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.OverridingUtil import org.jetbrains.kotlin.types.KotlinType @@ -54,7 +55,7 @@ internal val FunctionDescriptor.isFunctionInvoke: Boolean internal val IrFunction.isFunctionInvoke: Boolean get() { val dispatchReceiver = dispatchReceiverParameter ?: return false - assert(!dispatchReceiver.type.isFunctionTypeOrSubtype()) + assert(!dispatchReceiver.type.isKFunction()) return dispatchReceiver.type.isFunctionTypeOrSubtype() && /*this.isOperator &&*/ this.name == OperatorNameConventions.INVOKE diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AdditionalIrUtils.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AdditionalIrUtils.kt index b42f1e666e5..f28359b5f09 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AdditionalIrUtils.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AdditionalIrUtils.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.ir.SourceManager import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrFieldImpl import org.jetbrains.kotlin.ir.expressions.IrCall @@ -199,4 +200,14 @@ val IrDeclaration.isGetter get() = this is IrSimpleFunction && this == this.corr val IrDeclaration.isSetter get() = this is IrSimpleFunction && this == this.correspondingProperty?.setter -val IrDeclaration.isAccessor get() = this.isGetter || this.isSetter \ No newline at end of file +val IrDeclaration.isAccessor get() = this.isGetter || this.isSetter + +val IrDeclaration.fileEntry: SourceManager.FileEntry + get() = parent.let { + when (it) { + is IrFile -> it.fileEntry + is IrPackageFragment -> TODO("Unknown file") + is IrDeclaration -> it.fileEntry + else -> TODO("Unexpected declaration parent") + } + } \ No newline at end of file diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AnotherIrUtils.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AnotherIrUtils.kt index 77c4c8f7506..5055a5fc300 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AnotherIrUtils.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/AnotherIrUtils.kt @@ -36,34 +36,31 @@ internal val IrField.isDelegate internal const val SYNTHETIC_OFFSET = -2 -class NaiveSourceBasedFileEntryImpl(override val name: String) : SourceManager.FileEntry { - - private val lineStartOffsets: IntArray - - //-------------------------------------------------------------------------// - - init { - val file = File(name) - if (file.isFile) { - // TODO: could be incorrect, if file is not in system's line terminator format. - // Maybe use (0..document.lineCount - 1) - // .map { document.getLineStartOffset(it) } - // .toIntArray() - // as in PSI. - val separatorLength = System.lineSeparator().length - val buffer = mutableListOf() - var currentOffset = 0 - file.forEachLine { line -> - buffer.add(currentOffset) - currentOffset += line.length + separatorLength - } +val File.lineStartOffsets: IntArray + get() { + // TODO: could be incorrect, if file is not in system's line terminator format. + // Maybe use (0..document.lineCount - 1) + // .map { document.getLineStartOffset(it) } + // .toIntArray() + // as in PSI. + val separatorLength = System.lineSeparator().length + val buffer = mutableListOf() + var currentOffset = 0 + this.forEachLine { line -> buffer.add(currentOffset) - lineStartOffsets = buffer.toIntArray() - } else { - lineStartOffsets = IntArray(0) + currentOffset += line.length + separatorLength } + buffer.add(currentOffset) + return buffer.toIntArray() } +val SourceManager.FileEntry.lineStartOffsets + get() = File(name).let { + if (it.exists() && it.isFile) it.lineStartOffsets else IntArray(0) + } + +class NaiveSourceBasedFileEntryImpl(override val name: String, val lineStartOffsets: IntArray = IntArray(0)) : SourceManager.FileEntry { + //-------------------------------------------------------------------------// override fun getLineNumber(offset: Int): Int { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeclarationTable.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeclarationTable.kt index 95d77784785..995343327bb 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeclarationTable.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeclarationTable.kt @@ -19,17 +19,10 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.jvm.modules.KOTLIN_STDLIB_MODULE_NAME import java.util.regex.Pattern -fun MutableMap.putOnce(k:K, v: V): Unit { - assert(!this.containsKey(k) || this[k] == v) { - "adding $v for $k, but it is already ${this[k]} for $k" - } - this.put(k, v) -} - class DescriptorTable { private val descriptors = mutableMapOf() fun put(descriptor: DeclarationDescriptor, uniqId: UniqId) { - descriptors.putOnce(descriptor, uniqId.index) + descriptors.getOrPut(descriptor) { uniqId.index } } fun get(descriptor: DeclarationDescriptor) = descriptors[descriptor] } @@ -54,35 +47,27 @@ class DeclarationTable(val builtIns: IrBuiltIns, val descriptorTable: Descriptor currentIndex += BUILT_IN_UNIQ_ID_GAP } - fun uniqIdByDeclaration(value: IrDeclaration): UniqId { - val index = table.getOrPut(value) { - - if (isBuiltInFunction(value)) { - UniqId(FUNCTION_INDEX_START + builtInFunctionId(value), false) - } else if (value.origin == IrDeclarationOrigin.FAKE_OVERRIDE || - !value.isExported() - || value is IrVariable - || value is IrTypeParameter - || value is IrValueParameter - || value is IrAnonymousInitializerImpl - ) { - - val desc = value.descriptor - if (desc is CallableDescriptor) { - if (desc.visibility == Visibilities.PUBLIC || value.origin != IrDeclarationOrigin.FAKE_OVERRIDE) { - fun foo(){} - foo() - } - } - UniqId(currentIndex++, true) - } else { - UniqId(value.uniqIdIndex, false) - } + fun uniqIdByDeclaration(value: IrDeclaration) = table.getOrPut(value) { + val index = if (isBuiltInFunction(value)) { + UniqId(FUNCTION_INDEX_START + builtInFunctionId(value), false) + } else if (value.origin == IrDeclarationOrigin.FAKE_OVERRIDE || + !value.isExported() + || value is IrVariable + || value is IrTypeParameter + || value is IrValueParameter + || value is IrAnonymousInitializerImpl + ) { + UniqId(currentIndex++, true) + } else { + UniqId(value.uniqIdIndex, false) } - debugIndex.put(index, "${if (index.isLocal) "" else value.uniqSymbolName()} descriptor = ${value.descriptor}") + // It can grow as large as 1/3 of ir/* size. + // debugIndex.put(index) { + // "${if (index.isLocal) "" else value.uniqSymbolName()} descriptor = ${value.descriptor}" + //}.also {it == null} - return index + index } } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeserializeDescriptorReference.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeserializeDescriptorReference.kt index ae9ec512c95..c6d955ad845 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeserializeDescriptorReference.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/DeserializeDescriptorReference.kt @@ -13,29 +13,42 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor -class DescriptorReferenceDeserializer(val currentModule: ModuleDescriptor, val resolvedForwardDeclarations: MutableMap) { +class DescriptorReferenceDeserializer( + val currentModule: ModuleDescriptor, val resolvedForwardDeclarations: MutableMap, + val checkerDesc: (DeclarationDescriptor) -> Long?, + val checkerID: (Long) -> Boolean, + val descriptorResolver: (FqName) -> DeclarationDescriptor +) { fun deserializeDescriptorReference( - proto: IrKlibProtoBuf.DescriptorReference, - checkerDesc: (DeclarationDescriptor) -> Long?, - checkerID: (Long) -> Boolean, - descriptorResolver: (FqName) -> DeclarationDescriptor + packageFqNameString: String, + classFqNameString: String, + name: String, + index: Long?, + isEnumEntry: Boolean = false, + isEnumSpecial: Boolean = false, + isDefaultConstructor: Boolean = false, + isFakeOverride: Boolean = false, + isGetter: Boolean = false, + isSetter: Boolean = false ): DeclarationDescriptor { - val packageFqName = - if (proto.packageFqName == "") FqName.ROOT else FqName(proto.packageFqName) // TODO: whould we store an empty string in the protobuf? - val classFqName = FqName(proto.classFqName) - val protoIndex = if (proto.hasUniqId()) proto.uniqId.index else null + val packageFqName = packageFqNameString.let { + if (it == "") FqName.ROOT else FqName(it) + }// TODO: whould we store an empty string in the protobuf? - val (clazz, members) = if (proto.classFqName == "") { + val classFqName = FqName(classFqNameString) + val protoIndex = index + + val (clazz, members) = if (classFqNameString == "") { Pair(null, currentModule.getPackage(packageFqName).memberScope.getContributedDescriptors()) } else { val clazz = currentModule.findClassAcrossModuleDependencies(ClassId(packageFqName, classFqName, false))!! Pair(clazz, clazz.unsubstitutedMemberScope.getContributedDescriptors() + clazz.getConstructors()) } - if (proto.packageFqName.startsWith("cnames.") || proto.packageFqName.startsWith("objcnames.")) { + if (packageFqNameString.startsWith("cnames.") || packageFqNameString.startsWith("objcnames.")) { val descriptor = - currentModule.findClassAcrossModuleDependencies(ClassId(packageFqName, FqName(proto.name), false))!! + currentModule.findClassAcrossModuleDependencies(ClassId(packageFqName, FqName(name), false))!! if (!descriptor.fqNameUnsafe.asString().startsWith("cnames") && !descriptor.fqNameUnsafe.asString().startsWith( "objcnames" ) @@ -53,27 +66,25 @@ class DescriptorReferenceDeserializer(val currentModule: ModuleDescriptor, val r return descriptor } - if (proto.isEnumEntry) { - val name = proto.name + if (isEnumEntry) { val memberScope = (clazz as DeserializedClassDescriptor).getUnsubstitutedMemberScope() return memberScope.getContributedClassifier(Name.identifier(name), NoLookupLocation.FROM_BACKEND)!! } - if (proto.isEnumSpecial) { - val name = proto.name + if (isEnumSpecial) { return clazz!!.getStaticScope() .getContributedFunctions(Name.identifier(name), NoLookupLocation.FROM_BACKEND).single() } if (protoIndex?.let { checkerID(it) } == true) { - return descriptorResolver(packageFqName.child(Name.identifier(proto.name))) + return descriptorResolver(packageFqName.child(Name.identifier(name))) } members.forEach { member -> - if (proto.isDefaultConstructor && member is ClassConstructorDescriptor) return member + if (isDefaultConstructor && member is ClassConstructorDescriptor) return member val realMembers = - if (proto.isFakeOverride && member is CallableMemberDescriptor && member.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) + if (isFakeOverride && member is CallableMemberDescriptor && member.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) member.resolveFakeOverrideMaybeAbstract().map { it.original } else setOf(member) @@ -82,13 +93,13 @@ class DescriptorReferenceDeserializer(val currentModule: ModuleDescriptor, val r if (memberIndices.contains(protoIndex)) { return when { - member is PropertyDescriptor && proto.isSetter -> member.setter!! - member is PropertyDescriptor && proto.isGetter -> member.getter!! + member is PropertyDescriptor && isSetter -> member.setter!! + member is PropertyDescriptor && isGetter -> member.getter!! else -> member } } } - error("Could not find serialized descriptor for index: ${proto.uniqId.index} ${proto.packageFqName},${proto.classFqName},${proto.name}") + error("Could not find serialized descriptor for index: $index $packageFqName,$classFqName,$name") } } \ No newline at end of file diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBuf.java b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBuf.java index 8f5494c68e9..9eb5c0636c9 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBuf.java +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBuf.java @@ -8,6 +8,296 @@ public final class IrKlibProtoBuf { public static void registerAllExtensions( org.jetbrains.kotlin.protobuf.ExtensionRegistryLite registry) { } + /** + * Protobuf enum {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin} + */ + public enum KnownOrigin + implements org.jetbrains.kotlin.protobuf.Internal.EnumLite { + /** + * CUSTOM = 1; + */ + CUSTOM(0, 1), + /** + * DEFINED = 2; + */ + DEFINED(1, 2), + /** + * FAKE_OVERRIDE = 3; + */ + FAKE_OVERRIDE(2, 3), + /** + * FOR_LOOP_ITERATOR = 4; + */ + FOR_LOOP_ITERATOR(3, 4), + /** + * FOR_LOOP_VARIABLE = 5; + */ + FOR_LOOP_VARIABLE(4, 5), + /** + * FOR_LOOP_IMPLICIT_VARIABLE = 6; + */ + FOR_LOOP_IMPLICIT_VARIABLE(5, 6), + /** + * PROPERTY_BACKING_FIELD = 7; + */ + PROPERTY_BACKING_FIELD(6, 7), + /** + * DEFAULT_PROPERTY_ACCESSOR = 8; + */ + DEFAULT_PROPERTY_ACCESSOR(7, 8), + /** + * DELEGATE = 9; + */ + DELEGATE(8, 9), + /** + * DELEGATED_PROPERTY_ACCESSOR = 10; + */ + DELEGATED_PROPERTY_ACCESSOR(9, 10), + /** + * DELEGATED_MEMBER = 11; + */ + DELEGATED_MEMBER(10, 11), + /** + * ENUM_CLASS_SPECIAL_MEMBER = 12; + */ + ENUM_CLASS_SPECIAL_MEMBER(11, 12), + /** + * FUNCTION_FOR_DEFAULT_PARAMETER = 13; + */ + FUNCTION_FOR_DEFAULT_PARAMETER(12, 13), + /** + * FILE_CLASS = 14; + */ + FILE_CLASS(13, 14), + /** + * GENERATED_DATA_CLASS_MEMBER = 15; + */ + GENERATED_DATA_CLASS_MEMBER(14, 15), + /** + * GENERATED_INLINE_CLASS_MEMBER = 16; + */ + GENERATED_INLINE_CLASS_MEMBER(15, 16), + /** + * LOCAL_FUNCTION_FOR_LAMBDA = 17; + */ + LOCAL_FUNCTION_FOR_LAMBDA(16, 17), + /** + * CATCH_PARAMETER = 19; + */ + CATCH_PARAMETER(17, 19), + /** + * INSTANCE_RECEIVER = 20; + */ + INSTANCE_RECEIVER(18, 20), + /** + * PRIMARY_CONSTRUCTOR_PARAMETER = 21; + */ + PRIMARY_CONSTRUCTOR_PARAMETER(19, 21), + /** + * IR_TEMPORARY_VARIABLE = 22; + */ + IR_TEMPORARY_VARIABLE(20, 22), + /** + * IR_EXTERNAL_DECLARATION_STUB = 23; + */ + IR_EXTERNAL_DECLARATION_STUB(21, 23), + /** + * IR_EXTERNAL_JAVA_DECLARATION_STUB = 24; + */ + IR_EXTERNAL_JAVA_DECLARATION_STUB(22, 24), + /** + * IR_BUILTINS_STUB = 25; + */ + IR_BUILTINS_STUB(23, 25), + /** + * BRIDGE = 26; + */ + BRIDGE(24, 26), + /** + * FIELD_FOR_ENUM_ENTRY = 27; + */ + FIELD_FOR_ENUM_ENTRY(25, 27), + /** + * FIELD_FOR_ENUM_VALUES = 28; + */ + FIELD_FOR_ENUM_VALUES(26, 28), + /** + * FIELD_FOR_OBJECT_INSTANCE = 29; + */ + FIELD_FOR_OBJECT_INSTANCE(27, 29), + ; + + /** + * CUSTOM = 1; + */ + public static final int CUSTOM_VALUE = 1; + /** + * DEFINED = 2; + */ + public static final int DEFINED_VALUE = 2; + /** + * FAKE_OVERRIDE = 3; + */ + public static final int FAKE_OVERRIDE_VALUE = 3; + /** + * FOR_LOOP_ITERATOR = 4; + */ + public static final int FOR_LOOP_ITERATOR_VALUE = 4; + /** + * FOR_LOOP_VARIABLE = 5; + */ + public static final int FOR_LOOP_VARIABLE_VALUE = 5; + /** + * FOR_LOOP_IMPLICIT_VARIABLE = 6; + */ + public static final int FOR_LOOP_IMPLICIT_VARIABLE_VALUE = 6; + /** + * PROPERTY_BACKING_FIELD = 7; + */ + public static final int PROPERTY_BACKING_FIELD_VALUE = 7; + /** + * DEFAULT_PROPERTY_ACCESSOR = 8; + */ + public static final int DEFAULT_PROPERTY_ACCESSOR_VALUE = 8; + /** + * DELEGATE = 9; + */ + public static final int DELEGATE_VALUE = 9; + /** + * DELEGATED_PROPERTY_ACCESSOR = 10; + */ + public static final int DELEGATED_PROPERTY_ACCESSOR_VALUE = 10; + /** + * DELEGATED_MEMBER = 11; + */ + public static final int DELEGATED_MEMBER_VALUE = 11; + /** + * ENUM_CLASS_SPECIAL_MEMBER = 12; + */ + public static final int ENUM_CLASS_SPECIAL_MEMBER_VALUE = 12; + /** + * FUNCTION_FOR_DEFAULT_PARAMETER = 13; + */ + public static final int FUNCTION_FOR_DEFAULT_PARAMETER_VALUE = 13; + /** + * FILE_CLASS = 14; + */ + public static final int FILE_CLASS_VALUE = 14; + /** + * GENERATED_DATA_CLASS_MEMBER = 15; + */ + public static final int GENERATED_DATA_CLASS_MEMBER_VALUE = 15; + /** + * GENERATED_INLINE_CLASS_MEMBER = 16; + */ + public static final int GENERATED_INLINE_CLASS_MEMBER_VALUE = 16; + /** + * LOCAL_FUNCTION_FOR_LAMBDA = 17; + */ + public static final int LOCAL_FUNCTION_FOR_LAMBDA_VALUE = 17; + /** + * CATCH_PARAMETER = 19; + */ + public static final int CATCH_PARAMETER_VALUE = 19; + /** + * INSTANCE_RECEIVER = 20; + */ + public static final int INSTANCE_RECEIVER_VALUE = 20; + /** + * PRIMARY_CONSTRUCTOR_PARAMETER = 21; + */ + public static final int PRIMARY_CONSTRUCTOR_PARAMETER_VALUE = 21; + /** + * IR_TEMPORARY_VARIABLE = 22; + */ + public static final int IR_TEMPORARY_VARIABLE_VALUE = 22; + /** + * IR_EXTERNAL_DECLARATION_STUB = 23; + */ + public static final int IR_EXTERNAL_DECLARATION_STUB_VALUE = 23; + /** + * IR_EXTERNAL_JAVA_DECLARATION_STUB = 24; + */ + public static final int IR_EXTERNAL_JAVA_DECLARATION_STUB_VALUE = 24; + /** + * IR_BUILTINS_STUB = 25; + */ + public static final int IR_BUILTINS_STUB_VALUE = 25; + /** + * BRIDGE = 26; + */ + public static final int BRIDGE_VALUE = 26; + /** + * FIELD_FOR_ENUM_ENTRY = 27; + */ + public static final int FIELD_FOR_ENUM_ENTRY_VALUE = 27; + /** + * FIELD_FOR_ENUM_VALUES = 28; + */ + public static final int FIELD_FOR_ENUM_VALUES_VALUE = 28; + /** + * FIELD_FOR_OBJECT_INSTANCE = 29; + */ + public static final int FIELD_FOR_OBJECT_INSTANCE_VALUE = 29; + + + public final int getNumber() { return value; } + + public static KnownOrigin valueOf(int value) { + switch (value) { + case 1: return CUSTOM; + case 2: return DEFINED; + case 3: return FAKE_OVERRIDE; + case 4: return FOR_LOOP_ITERATOR; + case 5: return FOR_LOOP_VARIABLE; + case 6: return FOR_LOOP_IMPLICIT_VARIABLE; + case 7: return PROPERTY_BACKING_FIELD; + case 8: return DEFAULT_PROPERTY_ACCESSOR; + case 9: return DELEGATE; + case 10: return DELEGATED_PROPERTY_ACCESSOR; + case 11: return DELEGATED_MEMBER; + case 12: return ENUM_CLASS_SPECIAL_MEMBER; + case 13: return FUNCTION_FOR_DEFAULT_PARAMETER; + case 14: return FILE_CLASS; + case 15: return GENERATED_DATA_CLASS_MEMBER; + case 16: return GENERATED_INLINE_CLASS_MEMBER; + case 17: return LOCAL_FUNCTION_FOR_LAMBDA; + case 19: return CATCH_PARAMETER; + case 20: return INSTANCE_RECEIVER; + case 21: return PRIMARY_CONSTRUCTOR_PARAMETER; + case 22: return IR_TEMPORARY_VARIABLE; + case 23: return IR_EXTERNAL_DECLARATION_STUB; + case 24: return IR_EXTERNAL_JAVA_DECLARATION_STUB; + case 25: return IR_BUILTINS_STUB; + case 26: return BRIDGE; + case 27: return FIELD_FOR_ENUM_ENTRY; + case 28: return FIELD_FOR_ENUM_VALUES; + case 29: return FIELD_FOR_OBJECT_INSTANCE; + default: return null; + } + } + + public static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap + internalValueMap = + new org.jetbrains.kotlin.protobuf.Internal.EnumLiteMap() { + public KnownOrigin findValueByNumber(int number) { + return KnownOrigin.valueOf(number); + } + }; + + private final int value; + + private KnownOrigin(int index, int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin) + } + /** * Protobuf enum {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrSymbolKind} */ @@ -589,46 +879,31 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ boolean hasPackageFqName(); /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ - java.lang.String getPackageFqName(); - /** - * required string package_fq_name = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getPackageFqNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getPackageFqName(); /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ boolean hasClassFqName(); /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ - java.lang.String getClassFqName(); - /** - * required string class_fq_name = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getClassFqNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getClassFqName(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ boolean hasName(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - java.lang.String getName(); - /** - * required string name = 3; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.UniqId uniq_id = 4; @@ -753,21 +1028,42 @@ public final class IrKlibProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = packageFqName_.toBuilder(); + } + packageFqName_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(packageFqName_); + packageFqName_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000001; - packageFqName_ = bs; break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = classFqName_.toBuilder(); + } + classFqName_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(classFqName_); + classFqName_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - classFqName_ = bs; break; } case 26: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000004; - name_ = bs; break; } case 34: { @@ -853,129 +1149,48 @@ public final class IrKlibProtoBuf { private int bitField0_; public static final int PACKAGE_FQ_NAME_FIELD_NUMBER = 1; - private java.lang.Object packageFqName_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String packageFqName_; /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ public boolean hasPackageFqName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ - public java.lang.String getPackageFqName() { - java.lang.Object ref = packageFqName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - packageFqName_ = s; - } - return s; - } - } - /** - * required string package_fq_name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getPackageFqNameBytes() { - java.lang.Object ref = packageFqName_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - packageFqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getPackageFqName() { + return packageFqName_; } public static final int CLASS_FQ_NAME_FIELD_NUMBER = 2; - private java.lang.Object classFqName_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String classFqName_; /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ public boolean hasClassFqName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ - public java.lang.String getClassFqName() { - java.lang.Object ref = classFqName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - classFqName_ = s; - } - return s; - } - } - /** - * required string class_fq_name = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getClassFqNameBytes() { - java.lang.Object ref = classFqName_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - classFqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getClassFqName() { + return classFqName_; } public static final int NAME_FIELD_NUMBER = 3; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public boolean hasName() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 3; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int UNIQ_ID_FIELD_NUMBER = 4; @@ -1099,9 +1314,9 @@ public final class IrKlibProtoBuf { } private void initFields() { - packageFqName_ = ""; - classFqName_ = ""; - name_ = ""; + packageFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + classFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); uniqId_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId.getDefaultInstance(); isGetter_ = false; isSetter_ = false; @@ -1129,6 +1344,18 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getPackageFqName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getClassFqName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (hasUniqId()) { if (!getUniqId().isInitialized()) { memoizedIsInitialized = 0; @@ -1143,13 +1370,13 @@ public final class IrKlibProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getPackageFqNameBytes()); + output.writeMessage(1, packageFqName_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getClassFqNameBytes()); + output.writeMessage(2, classFqName_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getNameBytes()); + output.writeMessage(3, name_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeMessage(4, uniqId_); @@ -1186,15 +1413,15 @@ public final class IrKlibProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getPackageFqNameBytes()); + .computeMessageSize(1, packageFqName_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getClassFqNameBytes()); + .computeMessageSize(2, classFqName_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(3, getNameBytes()); + .computeMessageSize(3, name_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -1322,11 +1549,11 @@ public final class IrKlibProtoBuf { public Builder clear() { super.clear(); - packageFqName_ = ""; + packageFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - classFqName_ = ""; + classFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); uniqId_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); @@ -1418,19 +1645,13 @@ public final class IrKlibProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference other) { if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance()) return this; if (other.hasPackageFqName()) { - bitField0_ |= 0x00000001; - packageFqName_ = other.packageFqName_; - + mergePackageFqName(other.getPackageFqName()); } if (other.hasClassFqName()) { - bitField0_ |= 0x00000002; - classFqName_ = other.classFqName_; - + mergeClassFqName(other.getClassFqName()); } if (other.hasName()) { - bitField0_ |= 0x00000004; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasUniqId()) { mergeUniqId(other.getUniqId()); @@ -1474,6 +1695,18 @@ public final class IrKlibProtoBuf { return false; } + if (!getPackageFqName().isInitialized()) { + + return false; + } + if (!getClassFqName().isInitialized()) { + + return false; + } + if (!getName().isInitialized()) { + + return false; + } if (hasUniqId()) { if (!getUniqId().isInitialized()) { @@ -1502,231 +1735,183 @@ public final class IrKlibProtoBuf { } private int bitField0_; - private java.lang.Object packageFqName_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String packageFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ public boolean hasPackageFqName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ - public java.lang.String getPackageFqName() { - java.lang.Object ref = packageFqName_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - packageFqName_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getPackageFqName() { + return packageFqName_; } /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getPackageFqNameBytes() { - java.lang.Object ref = packageFqName_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - packageFqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setPackageFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + packageFqName_ = value; + + bitField0_ |= 0x00000001; + return this; } /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ public Builder setPackageFqName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - packageFqName_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + packageFqName_ = builderForValue.build(); + + bitField0_ |= 0x00000001; return this; } /** - * required string package_fq_name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; + */ + public Builder mergePackageFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + packageFqName_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + packageFqName_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(packageFqName_).mergeFrom(value).buildPartial(); + } else { + packageFqName_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String package_fq_name = 1; */ public Builder clearPackageFqName() { + packageFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); - packageFqName_ = getDefaultInstance().getPackageFqName(); - - return this; - } - /** - * required string package_fq_name = 1; - */ - public Builder setPackageFqNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - packageFqName_ = value; - return this; } - private java.lang.Object classFqName_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String classFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ public boolean hasClassFqName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ - public java.lang.String getClassFqName() { - java.lang.Object ref = classFqName_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - classFqName_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getClassFqName() { + return classFqName_; } /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getClassFqNameBytes() { - java.lang.Object ref = classFqName_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - classFqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setClassFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + classFqName_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ public Builder setClassFqName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - classFqName_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + classFqName_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string class_fq_name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; + */ + public Builder mergeClassFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + classFqName_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + classFqName_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(classFqName_).mergeFrom(value).buildPartial(); + } else { + classFqName_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String class_fq_name = 2; */ public Builder clearClassFqName() { + classFqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - classFqName_ = getDefaultInstance().getClassFqName(); - - return this; - } - /** - * required string class_fq_name = 2; - */ - public Builder setClassFqNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - classFqName_ = value; - return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public boolean hasName() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000004; + return this; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000004; return this; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 3; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - return this; } @@ -2917,6 +3102,1361 @@ public final class IrKlibProtoBuf { // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Coordinates) } + public interface VisibilityOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility) + org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { + + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + boolean hasName(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility} + */ + public static final class Visibility extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility) + VisibilityOrBuilder { + // Use Visibility.newBuilder() to construct. + private Visibility(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private Visibility(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + + private static final Visibility defaultInstance; + public static Visibility getDefaultInstance() { + return defaultInstance; + } + + public Visibility getDefaultInstanceForType() { + return defaultInstance; + } + + private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; + private Visibility( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = + org.jetbrains.kotlin.protobuf.ByteString.newOutput(); + org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = + org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( + unknownFieldsOutput, 1); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFieldsCodedOutput, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + } + } + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + try { + unknownFieldsCodedOutput.flush(); + } catch (java.io.IOException e) { + // Should not happen + } finally { + unknownFields = unknownFieldsOutput.toByteString(); + } + makeExtensionsImmutable(); + } + } + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public Visibility parsePartialFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return new Visibility(input, extensionRegistry); + } + }; + + @java.lang.Override + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; + } + + private void initFields() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (!hasName()) { + memoizedIsInitialized = 0; + return false; + } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, name_); + } + output.writeRawBytes(unknownFields); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(1, name_); + } + size += unknownFields.size(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom(byte[] data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + byte[] data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseDelimitedFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility} + */ + public static final class Builder extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility, Builder> + implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility) + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.VisibilityOrBuilder { + // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getDefaultInstanceForType() { + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility build() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility buildPartial() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.name_ = name_; + result.bitField0_ = to_bitField0_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility other) { + if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance()) return this; + if (other.hasName()) { + mergeName(other.getName()); + } + setUnknownFields( + getUnknownFields().concat(other.unknownFields)); + return this; + } + + public final boolean isInitialized() { + if (!hasName()) { + + return false; + } + if (!getName().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder setName( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility) + } + + static { + defaultInstance = new Visibility(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility) + } + + public interface IrStatementOriginOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin) + org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { + + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + boolean hasName(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin} + */ + public static final class IrStatementOrigin extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin) + IrStatementOriginOrBuilder { + // Use IrStatementOrigin.newBuilder() to construct. + private IrStatementOrigin(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private IrStatementOrigin(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + + private static final IrStatementOrigin defaultInstance; + public static IrStatementOrigin getDefaultInstance() { + return defaultInstance; + } + + public IrStatementOrigin getDefaultInstanceForType() { + return defaultInstance; + } + + private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; + private IrStatementOrigin( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = + org.jetbrains.kotlin.protobuf.ByteString.newOutput(); + org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = + org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( + unknownFieldsOutput, 1); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFieldsCodedOutput, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + } + } + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + try { + unknownFieldsCodedOutput.flush(); + } catch (java.io.IOException e) { + // Should not happen + } finally { + unknownFields = unknownFieldsOutput.toByteString(); + } + makeExtensionsImmutable(); + } + } + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public IrStatementOrigin parsePartialFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return new IrStatementOrigin(input, extensionRegistry); + } + }; + + @java.lang.Override + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; + } + + private void initFields() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (!hasName()) { + memoizedIsInitialized = 0; + return false; + } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeMessage(1, name_); + } + output.writeRawBytes(unknownFields); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(1, name_); + } + size += unknownFields.size(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom(byte[] data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + byte[] data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseDelimitedFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin} + */ + public static final class Builder extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin, Builder> + implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin) + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOriginOrBuilder { + // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getDefaultInstanceForType() { + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin build() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin buildPartial() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.name_ = name_; + result.bitField0_ = to_bitField0_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin other) { + if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance()) return this; + if (other.hasName()) { + mergeName(other.getName()); + } + setUnknownFields( + getUnknownFields().concat(other.unknownFields)); + return this; + } + + public final boolean isInitialized() { + if (!hasName()) { + + return false; + } + if (!getName().isInitialized()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder setName( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin) + } + + static { + defaultInstance = new IrStatementOrigin(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin) + } + + public interface IrDeclarationOriginOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) + org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { + + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + boolean hasOrigin(); + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin getOrigin(); + + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + boolean hasCustom(); + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getCustom(); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin} + */ + public static final class IrDeclarationOrigin extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) + IrDeclarationOriginOrBuilder { + // Use IrDeclarationOrigin.newBuilder() to construct. + private IrDeclarationOrigin(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private IrDeclarationOrigin(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + + private static final IrDeclarationOrigin defaultInstance; + public static IrDeclarationOrigin getDefaultInstance() { + return defaultInstance; + } + + public IrDeclarationOrigin getDefaultInstanceForType() { + return defaultInstance; + } + + private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; + private IrDeclarationOrigin( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = + org.jetbrains.kotlin.protobuf.ByteString.newOutput(); + org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = + org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( + unknownFieldsOutput, 1); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFieldsCodedOutput, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 8: { + int rawValue = input.readEnum(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin value = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin.valueOf(rawValue); + if (value == null) { + unknownFieldsCodedOutput.writeRawVarint32(tag); + unknownFieldsCodedOutput.writeRawVarint32(rawValue); + } else { + eitherCase_ = 1; + either_ = value; + } + break; + } + case 18: { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (eitherCase_ == 2) { + subBuilder = ((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_).toBuilder(); + } + either_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_); + either_ = subBuilder.buildPartial(); + } + eitherCase_ = 2; + break; + } + } + } + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + try { + unknownFieldsCodedOutput.flush(); + } catch (java.io.IOException e) { + // Should not happen + } finally { + unknownFields = unknownFieldsOutput.toByteString(); + } + makeExtensionsImmutable(); + } + } + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public IrDeclarationOrigin parsePartialFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return new IrDeclarationOrigin(input, extensionRegistry); + } + }; + + @java.lang.Override + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + private int eitherCase_ = 0; + private java.lang.Object either_; + public enum EitherCase + implements org.jetbrains.kotlin.protobuf.Internal.EnumLite { + ORIGIN(1), + CUSTOM(2), + EITHER_NOT_SET(0); + private int value = 0; + private EitherCase(int value) { + this.value = value; + } + public static EitherCase valueOf(int value) { + switch (value) { + case 1: return ORIGIN; + case 2: return CUSTOM; + case 0: return EITHER_NOT_SET; + default: throw new java.lang.IllegalArgumentException( + "Value is undefined for this oneof enum."); + } + } + public int getNumber() { + return this.value; + } + }; + + public EitherCase + getEitherCase() { + return EitherCase.valueOf( + eitherCase_); + } + + public static final int ORIGIN_FIELD_NUMBER = 1; + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public boolean hasOrigin() { + return eitherCase_ == 1; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin getOrigin() { + if (eitherCase_ == 1) { + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin) either_; + } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin.CUSTOM; + } + + public static final int CUSTOM_FIELD_NUMBER = 2; + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public boolean hasCustom() { + return eitherCase_ == 2; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getCustom() { + if (eitherCase_ == 2) { + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_; + } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + } + + private void initFields() { + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (hasCustom()) { + if (!getCustom().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (eitherCase_ == 1) { + output.writeEnum(1, ((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin) either_).getNumber()); + } + if (eitherCase_ == 2) { + output.writeMessage(2, (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_); + } + output.writeRawBytes(unknownFields); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (eitherCase_ == 1) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeEnumSize(1, ((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin) either_).getNumber()); + } + if (eitherCase_ == 2) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(2, (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_); + } + size += unknownFields.size(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom(byte[] data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + byte[] data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseDelimitedFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin} + */ + public static final class Builder extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin, Builder> + implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOriginOrBuilder { + // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + eitherCase_ = 0; + either_ = null; + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin getDefaultInstanceForType() { + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.getDefaultInstance(); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin build() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin buildPartial() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (eitherCase_ == 1) { + result.either_ = either_; + } + if (eitherCase_ == 2) { + result.either_ = either_; + } + result.bitField0_ = to_bitField0_; + result.eitherCase_ = eitherCase_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin other) { + if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.getDefaultInstance()) return this; + switch (other.getEitherCase()) { + case ORIGIN: { + setOrigin(other.getOrigin()); + break; + } + case CUSTOM: { + mergeCustom(other.getCustom()); + break; + } + case EITHER_NOT_SET: { + break; + } + } + setUnknownFields( + getUnknownFields().concat(other.unknownFields)); + return this; + } + + public final boolean isInitialized() { + if (hasCustom()) { + if (!getCustom().isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int eitherCase_ = 0; + private java.lang.Object either_; + public EitherCase + getEitherCase() { + return EitherCase.valueOf( + eitherCase_); + } + + public Builder clearEither() { + eitherCase_ = 0; + either_ = null; + return this; + } + + private int bitField0_; + + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public boolean hasOrigin() { + return eitherCase_ == 1; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin getOrigin() { + if (eitherCase_ == 1) { + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin) either_; + } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin.CUSTOM; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public Builder setOrigin(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.KnownOrigin value) { + if (value == null) { + throw new NullPointerException(); + } + eitherCase_ = 1; + either_ = value; + + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.KnownOrigin origin = 1; + */ + public Builder clearOrigin() { + if (eitherCase_ == 1) { + eitherCase_ = 0; + either_ = null; + + } + return this; + } + + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public boolean hasCustom() { + return eitherCase_ == 2; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getCustom() { + if (eitherCase_ == 2) { + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_; + } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public Builder setCustom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); + } + either_ = value; + + eitherCase_ = 2; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public Builder setCustom( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + either_ = builderForValue.build(); + + eitherCase_ = 2; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public Builder mergeCustom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (eitherCase_ == 2 && + either_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + either_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) either_) + .mergeFrom(value).buildPartial(); + } else { + either_ = value; + } + + eitherCase_ = 2; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String custom = 2; + */ + public Builder clearCustom() { + if (eitherCase_ == 2) { + eitherCase_ = 0; + either_ = null; + + } + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) + } + + static { + defaultInstance = new IrDeclarationOrigin(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) + } + public interface IrDeclarationContainerOrBuilder extends // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationContainer) org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { @@ -3415,25 +4955,29 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ boolean hasName(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - java.lang.String getName(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); + /** - * required string name = 1; + * repeated int32 line_start_offsets = 2; */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + java.util.List getLineStartOffsetsList(); + /** + * repeated int32 line_start_offsets = 2; + */ + int getLineStartOffsetsCount(); + /** + * repeated int32 line_start_offsets = 2; + */ + int getLineStartOffsets(int index); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.FileEntry} - * - *
-   * TODO: extend me.
-   * 
*/ public static final class FileEntry extends org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements @@ -3483,9 +5027,37 @@ public final class IrKlibProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000001; - name_ = bs; + break; + } + case 16: { + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + lineStartOffsets_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + lineStartOffsets_.add(input.readInt32()); + break; + } + case 18: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) { + lineStartOffsets_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; + } + while (input.getBytesUntilLimit() > 0) { + lineStartOffsets_.add(input.readInt32()); + } + input.popLimit(limit); break; } } @@ -3496,6 +5068,9 @@ public final class IrKlibProtoBuf { throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( e.getMessage()).setUnfinishedMessage(this); } finally { + if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + lineStartOffsets_ = java.util.Collections.unmodifiableList(lineStartOffsets_); + } try { unknownFieldsCodedOutput.flush(); } catch (java.io.IOException e) { @@ -3523,49 +5098,45 @@ public final class IrKlibProtoBuf { private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; + } + + public static final int LINE_START_OFFSETS_FIELD_NUMBER = 2; + private java.util.List lineStartOffsets_; + /** + * repeated int32 line_start_offsets = 2; + */ + public java.util.List + getLineStartOffsetsList() { + return lineStartOffsets_; } /** - * required string name = 1; + * repeated int32 line_start_offsets = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public int getLineStartOffsetsCount() { + return lineStartOffsets_.size(); + } + /** + * repeated int32 line_start_offsets = 2; + */ + public int getLineStartOffsets(int index) { + return lineStartOffsets_.get(index); } private void initFields() { - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + lineStartOffsets_ = java.util.Collections.emptyList(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -3577,6 +5148,10 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -3585,7 +5160,10 @@ public final class IrKlibProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getNameBytes()); + output.writeMessage(1, name_); + } + for (int i = 0; i < lineStartOffsets_.size(); i++) { + output.writeInt32(2, lineStartOffsets_.get(i)); } output.writeRawBytes(unknownFields); } @@ -3598,7 +5176,16 @@ public final class IrKlibProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getNameBytes()); + .computeMessageSize(1, name_); + } + { + int dataSize = 0; + for (int i = 0; i < lineStartOffsets_.size(); i++) { + dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32SizeNoTag(lineStartOffsets_.get(i)); + } + size += dataSize; + size += 1 * getLineStartOffsetsList().size(); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -3674,10 +5261,6 @@ public final class IrKlibProtoBuf { /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.FileEntry} - * - *
-     * TODO: extend me.
-     * 
*/ public static final class Builder extends org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< @@ -3698,8 +5281,10 @@ public final class IrKlibProtoBuf { public Builder clear() { super.clear(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); + lineStartOffsets_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -3727,6 +5312,11 @@ public final class IrKlibProtoBuf { to_bitField0_ |= 0x00000001; } result.name_ = name_; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + lineStartOffsets_ = java.util.Collections.unmodifiableList(lineStartOffsets_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.lineStartOffsets_ = lineStartOffsets_; result.bitField0_ = to_bitField0_; return result; } @@ -3734,8 +5324,16 @@ public final class IrKlibProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.FileEntry other) { if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.FileEntry.getDefaultInstance()) return this; if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; + mergeName(other.getName()); + } + if (!other.lineStartOffsets_.isEmpty()) { + if (lineStartOffsets_.isEmpty()) { + lineStartOffsets_ = other.lineStartOffsets_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureLineStartOffsetsIsMutable(); + lineStartOffsets_.addAll(other.lineStartOffsets_); + } } setUnknownFields( @@ -3748,6 +5346,10 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } return true; } @@ -3770,78 +5372,128 @@ public final class IrKlibProtoBuf { } private int bitField0_; - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000001; + return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); + return this; + } + + private java.util.List lineStartOffsets_ = java.util.Collections.emptyList(); + private void ensureLineStartOffsetsIsMutable() { + if (!((bitField0_ & 0x00000002) == 0x00000002)) { + lineStartOffsets_ = new java.util.ArrayList(lineStartOffsets_); + bitField0_ |= 0x00000002; + } + } + /** + * repeated int32 line_start_offsets = 2; + */ + public java.util.List + getLineStartOffsetsList() { + return java.util.Collections.unmodifiableList(lineStartOffsets_); + } + /** + * repeated int32 line_start_offsets = 2; + */ + public int getLineStartOffsetsCount() { + return lineStartOffsets_.size(); + } + /** + * repeated int32 line_start_offsets = 2; + */ + public int getLineStartOffsets(int index) { + return lineStartOffsets_.get(index); + } + /** + * repeated int32 line_start_offsets = 2; + */ + public Builder setLineStartOffsets( + int index, int value) { + ensureLineStartOffsetsIsMutable(); + lineStartOffsets_.set(index, value); return this; } /** - * required string name = 1; + * repeated int32 line_start_offsets = 2; */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; + public Builder addLineStartOffsets(int value) { + ensureLineStartOffsetsIsMutable(); + lineStartOffsets_.add(value); + + return this; + } + /** + * repeated int32 line_start_offsets = 2; + */ + public Builder addAllLineStartOffsets( + java.lang.Iterable values) { + ensureLineStartOffsetsIsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( + values, lineStartOffsets_); + + return this; + } + /** + * repeated int32 line_start_offsets = 2; + */ + public Builder clearLineStartOffsets() { + lineStartOffsets_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -3885,30 +5537,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.FileEntry getFileEntry(); /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ boolean hasFqName(); /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ - java.lang.String getFqName(); - /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
- */ - org.jetbrains.kotlin.protobuf.ByteString - getFqNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqName(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrFile} @@ -3982,9 +5617,16 @@ public final class IrKlibProtoBuf { break; } case 26: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = fqName_.toBuilder(); + } + fqName_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(fqName_); + fqName_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - fqName_ = bs; break; } } @@ -4075,63 +5717,24 @@ public final class IrKlibProtoBuf { } public static final int FQ_NAME_FIELD_NUMBER = 3; - private java.lang.Object fqName_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String fqName_; /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ public boolean hasFqName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ - public java.lang.String getFqName() { - java.lang.Object ref = fqName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fqName_ = s; - } - return s; - } - } - /** - * required string fq_name = 3; - * - *
-     * TODO: we need a better string management. See metadata serialization as an example.
-     * 
- */ - public org.jetbrains.kotlin.protobuf.ByteString - getFqNameBytes() { - java.lang.Object ref = fqName_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqName() { + return fqName_; } private void initFields() { declarationId_ = java.util.Collections.emptyList(); fileEntry_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.FileEntry.getDefaultInstance(); - fqName_ = ""; + fqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -4157,6 +5760,10 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getFqName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -4171,7 +5778,7 @@ public final class IrKlibProtoBuf { output.writeMessage(2, fileEntry_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(3, getFqNameBytes()); + output.writeMessage(3, fqName_); } output.writeRawBytes(unknownFields); } @@ -4192,7 +5799,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(3, getFqNameBytes()); + .computeMessageSize(3, fqName_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -4292,7 +5899,7 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000001); fileEntry_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.FileEntry.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); - fqName_ = ""; + fqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); return this; } @@ -4350,9 +5957,7 @@ public final class IrKlibProtoBuf { mergeFileEntry(other.getFileEntry()); } if (other.hasFqName()) { - bitField0_ |= 0x00000004; - fqName_ = other.fqName_; - + mergeFqName(other.getFqName()); } setUnknownFields( getUnknownFields().concat(other.unknownFields)); @@ -4378,6 +5983,10 @@ public final class IrKlibProtoBuf { return false; } + if (!getFqName().isInitialized()) { + + return false; + } return true; } @@ -4585,103 +6194,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object fqName_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String fqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ public boolean hasFqName() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ - public java.lang.String getFqName() { - java.lang.Object ref = fqName_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fqName_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqName() { + return fqName_; } /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ - public org.jetbrains.kotlin.protobuf.ByteString - getFqNameBytes() { - java.lang.Object ref = fqName_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fqName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + fqName_ = value; + + bitField0_ |= 0x00000004; + return this; } /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ public Builder setFqName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - fqName_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + fqName_ = builderForValue.build(); + + bitField0_ |= 0x00000004; return this; } /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
+ * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; + */ + public Builder mergeFqName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + fqName_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + fqName_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(fqName_).mergeFrom(value).buildPartial(); + } else { + fqName_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fq_name = 3; */ public Builder clearFqName() { + fqName_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); - fqName_ = getDefaultInstance().getFqName(); - - return this; - } - /** - * required string fq_name = 3; - * - *
-       * TODO: we need a better string management. See metadata serialization as an example.
-       * 
- */ - public Builder setFqNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - fqName_ = value; - return this; } @@ -4701,18 +6270,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ boolean hasName(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - java.lang.String getName(); - /** - * required string name = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * repeated .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrFile file = 2; @@ -4745,6 +6309,15 @@ public final class IrKlibProtoBuf { * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrTypeTable type_table = 4; */ org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeTable getTypeTable(); + + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + boolean hasStringTable(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable getStringTable(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrModule} @@ -4797,9 +6370,16 @@ public final class IrKlibProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000001; - name_ = bs; break; } case 18: { @@ -4836,6 +6416,19 @@ public final class IrKlibProtoBuf { bitField0_ |= 0x00000004; break; } + case 42: { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = stringTable_.toBuilder(); + } + stringTable_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(stringTable_); + stringTable_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000008; + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -4874,45 +6467,18 @@ public final class IrKlibProtoBuf { private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int FILE_FIELD_NUMBER = 2; @@ -4980,11 +6546,27 @@ public final class IrKlibProtoBuf { return typeTable_; } + public static final int STRING_TABLE_FIELD_NUMBER = 5; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable stringTable_; + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public boolean hasStringTable() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable getStringTable() { + return stringTable_; + } + private void initFields() { - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); file_ = java.util.Collections.emptyList(); symbolTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbolTable.getDefaultInstance(); typeTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeTable.getDefaultInstance(); + stringTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -5004,6 +6586,14 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!hasStringTable()) { + memoizedIsInitialized = 0; + return false; + } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } for (int i = 0; i < getFileCount(); i++) { if (!getFile(i).isInitialized()) { memoizedIsInitialized = 0; @@ -5026,7 +6616,7 @@ public final class IrKlibProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getNameBytes()); + output.writeMessage(1, name_); } for (int i = 0; i < file_.size(); i++) { output.writeMessage(2, file_.get(i)); @@ -5037,6 +6627,9 @@ public final class IrKlibProtoBuf { if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeMessage(4, typeTable_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeMessage(5, stringTable_); + } output.writeRawBytes(unknownFields); } @@ -5048,7 +6641,7 @@ public final class IrKlibProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getNameBytes()); + .computeMessageSize(1, name_); } for (int i = 0; i < file_.size(); i++) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -5062,6 +6655,10 @@ public final class IrKlibProtoBuf { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(4, typeTable_); } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(5, stringTable_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -5156,7 +6753,7 @@ public final class IrKlibProtoBuf { public Builder clear() { super.clear(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); file_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); @@ -5164,6 +6761,8 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000004); typeTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeTable.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); + stringTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -5204,6 +6803,10 @@ public final class IrKlibProtoBuf { to_bitField0_ |= 0x00000004; } result.typeTable_ = typeTable_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000008; + } + result.stringTable_ = stringTable_; result.bitField0_ = to_bitField0_; return result; } @@ -5211,9 +6814,7 @@ public final class IrKlibProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrModule other) { if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrModule.getDefaultInstance()) return this; if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - + mergeName(other.getName()); } if (!other.file_.isEmpty()) { if (file_.isEmpty()) { @@ -5231,6 +6832,9 @@ public final class IrKlibProtoBuf { if (other.hasTypeTable()) { mergeTypeTable(other.getTypeTable()); } + if (other.hasStringTable()) { + mergeStringTable(other.getStringTable()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -5249,6 +6853,14 @@ public final class IrKlibProtoBuf { return false; } + if (!hasStringTable()) { + + return false; + } + if (!getName().isInitialized()) { + + return false; + } for (int i = 0; i < getFileCount(); i++) { if (!getFile(i).isInitialized()) { @@ -5285,79 +6897,63 @@ public final class IrKlibProtoBuf { } private int bitField0_; - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000001; + return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 1; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - return this; } @@ -5606,6 +7202,66 @@ public final class IrKlibProtoBuf { return this; } + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable stringTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance(); + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public boolean hasStringTable() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable getStringTable() { + return stringTable_; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public Builder setStringTable(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable value) { + if (value == null) { + throw new NullPointerException(); + } + stringTable_ = value; + + bitField0_ |= 0x00000010; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public Builder setStringTable( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.Builder builderForValue) { + stringTable_ = builderForValue.build(); + + bitField0_ |= 0x00000010; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public Builder mergeStringTable(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable value) { + if (((bitField0_ & 0x00000010) == 0x00000010) && + stringTable_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance()) { + stringTable_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.newBuilder(stringTable_).mergeFrom(value).buildPartial(); + } else { + stringTable_ = value; + } + + bitField0_ |= 0x00000010; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable string_table = 5; + */ + public Builder clearStringTable() { + stringTable_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrModule) } @@ -5617,6 +7273,820 @@ public final class IrKlibProtoBuf { // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrModule) } + public interface StringOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String) + org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { + + /** + * required int32 index = 1; + */ + boolean hasIndex(); + /** + * required int32 index = 1; + */ + int getIndex(); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String} + */ + public static final class String extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String) + StringOrBuilder { + // Use String.newBuilder() to construct. + private String(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private String(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + + private static final String defaultInstance; + public static String getDefaultInstance() { + return defaultInstance; + } + + public String getDefaultInstanceForType() { + return defaultInstance; + } + + private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; + private String( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = + org.jetbrains.kotlin.protobuf.ByteString.newOutput(); + org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = + org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( + unknownFieldsOutput, 1); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFieldsCodedOutput, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 8: { + bitField0_ |= 0x00000001; + index_ = input.readInt32(); + break; + } + } + } + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + try { + unknownFieldsCodedOutput.flush(); + } catch (java.io.IOException e) { + // Should not happen + } finally { + unknownFields = unknownFieldsOutput.toByteString(); + } + makeExtensionsImmutable(); + } + } + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public String parsePartialFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return new String(input, extensionRegistry); + } + }; + + @java.lang.Override + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + return PARSER; + } + + private int bitField0_; + public static final int INDEX_FIELD_NUMBER = 1; + private int index_; + /** + * required int32 index = 1; + */ + public boolean hasIndex() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required int32 index = 1; + */ + public int getIndex() { + return index_; + } + + private void initFields() { + index_ = 0; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (!hasIndex()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, index_); + } + output.writeRawBytes(unknownFields); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeInt32Size(1, index_); + } + size += unknownFields.size(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom(byte[] data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + byte[] data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseDelimitedFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String} + */ + public static final class Builder extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String, Builder> + implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String) + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringOrBuilder { + // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + index_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getDefaultInstanceForType() { + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String build() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String buildPartial() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.index_ = index_; + result.bitField0_ = to_bitField0_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String other) { + if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) return this; + if (other.hasIndex()) { + setIndex(other.getIndex()); + } + setUnknownFields( + getUnknownFields().concat(other.unknownFields)); + return this; + } + + public final boolean isInitialized() { + if (!hasIndex()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private int index_ ; + /** + * required int32 index = 1; + */ + public boolean hasIndex() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * required int32 index = 1; + */ + public int getIndex() { + return index_; + } + /** + * required int32 index = 1; + */ + public Builder setIndex(int value) { + bitField0_ |= 0x00000001; + index_ = value; + + return this; + } + /** + * required int32 index = 1; + */ + public Builder clearIndex() { + bitField0_ = (bitField0_ & ~0x00000001); + index_ = 0; + + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String) + } + + static { + defaultInstance = new String(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String) + } + + public interface StringTableOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable) + org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { + + /** + * repeated string strings = 1; + */ + org.jetbrains.kotlin.protobuf.ProtocolStringList + getStringsList(); + /** + * repeated string strings = 1; + */ + int getStringsCount(); + /** + * repeated string strings = 1; + */ + java.lang.String getStrings(int index); + /** + * repeated string strings = 1; + */ + org.jetbrains.kotlin.protobuf.ByteString + getStringsBytes(int index); + } + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable} + */ + public static final class StringTable extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable) + StringTableOrBuilder { + // Use StringTable.newBuilder() to construct. + private StringTable(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private StringTable(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} + + private static final StringTable defaultInstance; + public static StringTable getDefaultInstance() { + return defaultInstance; + } + + public StringTable getDefaultInstanceForType() { + return defaultInstance; + } + + private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; + private StringTable( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = + org.jetbrains.kotlin.protobuf.ByteString.newOutput(); + org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = + org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( + unknownFieldsOutput, 1); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFieldsCodedOutput, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + strings_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000001; + } + strings_.add(bs); + break; + } + } + } + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + strings_ = strings_.getUnmodifiableView(); + } + try { + unknownFieldsCodedOutput.flush(); + } catch (java.io.IOException e) { + // Should not happen + } finally { + unknownFields = unknownFieldsOutput.toByteString(); + } + makeExtensionsImmutable(); + } + } + public static org.jetbrains.kotlin.protobuf.Parser PARSER = + new org.jetbrains.kotlin.protobuf.AbstractParser() { + public StringTable parsePartialFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return new StringTable(input, extensionRegistry); + } + }; + + @java.lang.Override + public org.jetbrains.kotlin.protobuf.Parser getParserForType() { + return PARSER; + } + + public static final int STRINGS_FIELD_NUMBER = 1; + private org.jetbrains.kotlin.protobuf.LazyStringList strings_; + /** + * repeated string strings = 1; + */ + public org.jetbrains.kotlin.protobuf.ProtocolStringList + getStringsList() { + return strings_; + } + /** + * repeated string strings = 1; + */ + public int getStringsCount() { + return strings_.size(); + } + /** + * repeated string strings = 1; + */ + public java.lang.String getStrings(int index) { + return strings_.get(index); + } + /** + * repeated string strings = 1; + */ + public org.jetbrains.kotlin.protobuf.ByteString + getStringsBytes(int index) { + return strings_.getByteString(index); + } + + private void initFields() { + strings_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + for (int i = 0; i < strings_.size(); i++) { + output.writeBytes(1, strings_.getByteString(i)); + } + output.writeRawBytes(unknownFields); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < strings_.size(); i++) { + dataSize += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeBytesSizeNoTag(strings_.getByteString(i)); + } + size += dataSize; + size += 1 * getStringsList().size(); + } + size += unknownFields.size(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + org.jetbrains.kotlin.protobuf.ByteString data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom(byte[] data) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + byte[] data, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseDelimitedFrom( + java.io.InputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parseFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + /** + * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable} + */ + public static final class Builder extends + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable, Builder> + implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable) + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTableOrBuilder { + // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + strings_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable getDefaultInstanceForType() { + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance(); + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable build() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable buildPartial() { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + strings_ = strings_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.strings_ = strings_; + return result; + } + + public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable other) { + if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable.getDefaultInstance()) return this; + if (!other.strings_.isEmpty()) { + if (strings_.isEmpty()) { + strings_ = other.strings_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureStringsIsMutable(); + strings_.addAll(other.strings_); + } + + } + setUnknownFields( + getUnknownFields().concat(other.unknownFields)); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + org.jetbrains.kotlin.protobuf.CodedInputStream input, + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.StringTable) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private org.jetbrains.kotlin.protobuf.LazyStringList strings_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; + private void ensureStringsIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + strings_ = new org.jetbrains.kotlin.protobuf.LazyStringArrayList(strings_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated string strings = 1; + */ + public org.jetbrains.kotlin.protobuf.ProtocolStringList + getStringsList() { + return strings_.getUnmodifiableView(); + } + /** + * repeated string strings = 1; + */ + public int getStringsCount() { + return strings_.size(); + } + /** + * repeated string strings = 1; + */ + public java.lang.String getStrings(int index) { + return strings_.get(index); + } + /** + * repeated string strings = 1; + */ + public org.jetbrains.kotlin.protobuf.ByteString + getStringsBytes(int index) { + return strings_.getByteString(index); + } + /** + * repeated string strings = 1; + */ + public Builder setStrings( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureStringsIsMutable(); + strings_.set(index, value); + + return this; + } + /** + * repeated string strings = 1; + */ + public Builder addStrings( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureStringsIsMutable(); + strings_.add(value); + + return this; + } + /** + * repeated string strings = 1; + */ + public Builder addAllStrings( + java.lang.Iterable values) { + ensureStringsIsMutable(); + org.jetbrains.kotlin.protobuf.AbstractMessageLite.Builder.addAll( + values, strings_); + + return this; + } + /** + * repeated string strings = 1; + */ + public Builder clearStrings() { + strings_ = org.jetbrains.kotlin.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + + return this; + } + /** + * repeated string strings = 1; + */ + public Builder addStringsBytes( + org.jetbrains.kotlin.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureStringsIsMutable(); + strings_.add(value); + + return this; + } + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable) + } + + static { + defaultInstance = new StringTable(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.StringTable) + } + public interface IrSymbolDataOrBuilder extends // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrSymbolData) org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { @@ -5649,18 +8119,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId getTopLevelUniqId(); /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ boolean hasFqname(); /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ - java.lang.String getFqname(); - /** - * optional string fqname = 4; - */ - org.jetbrains.kotlin.protobuf.ByteString - getFqnameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqname(); /** * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor_reference = 5; @@ -5760,9 +8225,16 @@ public final class IrKlibProtoBuf { break; } case 34: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = fqname_.toBuilder(); + } + fqname_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(fqname_); + fqname_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000008; - fqname_ = bs; break; } case 42: { @@ -5858,45 +8330,18 @@ public final class IrKlibProtoBuf { } public static final int FQNAME_FIELD_NUMBER = 4; - private java.lang.Object fqname_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String fqname_; /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ public boolean hasFqname() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ - public java.lang.String getFqname() { - java.lang.Object ref = fqname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fqname_ = s; - } - return s; - } - } - /** - * optional string fqname = 4; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getFqnameBytes() { - java.lang.Object ref = fqname_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fqname_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqname() { + return fqname_; } public static final int DESCRIPTOR_REFERENCE_FIELD_NUMBER = 5; @@ -5918,7 +8363,7 @@ public final class IrKlibProtoBuf { kind_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbolKind.FUNCTION_SYMBOL; uniqId_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId.getDefaultInstance(); topLevelUniqId_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId.getDefaultInstance(); - fqname_ = ""; + fqname_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); descriptorReference_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -5947,6 +8392,12 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (hasFqname()) { + if (!getFqname().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasDescriptorReference()) { if (!getDescriptorReference().isInitialized()) { memoizedIsInitialized = 0; @@ -5970,7 +8421,7 @@ public final class IrKlibProtoBuf { output.writeMessage(3, topLevelUniqId_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getFqnameBytes()); + output.writeMessage(4, fqname_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeMessage(5, descriptorReference_); @@ -5998,7 +8449,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(4, getFqnameBytes()); + .computeMessageSize(4, fqname_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -6104,7 +8555,7 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000002); topLevelUniqId_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.UniqId.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); - fqname_ = ""; + fqname_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); descriptorReference_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000010); @@ -6167,9 +8618,7 @@ public final class IrKlibProtoBuf { mergeTopLevelUniqId(other.getTopLevelUniqId()); } if (other.hasFqname()) { - bitField0_ |= 0x00000008; - fqname_ = other.fqname_; - + mergeFqname(other.getFqname()); } if (other.hasDescriptorReference()) { mergeDescriptorReference(other.getDescriptorReference()); @@ -6200,6 +8649,12 @@ public final class IrKlibProtoBuf { return false; } + if (hasFqname()) { + if (!getFqname().isInitialized()) { + + return false; + } + } if (hasDescriptorReference()) { if (!getDescriptorReference().isInitialized()) { @@ -6383,79 +8838,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object fqname_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String fqname_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ public boolean hasFqname() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ - public java.lang.String getFqname() { - java.lang.Object ref = fqname_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fqname_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getFqname() { + return fqname_; } /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ - public org.jetbrains.kotlin.protobuf.ByteString - getFqnameBytes() { - java.lang.Object ref = fqname_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fqname_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setFqname(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + fqname_ = value; + + bitField0_ |= 0x00000008; + return this; } /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ public Builder setFqname( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - fqname_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + fqname_ = builderForValue.build(); + + bitField0_ |= 0x00000008; return this; } /** - * optional string fqname = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; + */ + public Builder mergeFqname(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + fqname_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + fqname_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(fqname_).mergeFrom(value).buildPartial(); + } else { + fqname_ = value; + } + + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String fqname = 4; */ public Builder clearFqname() { + fqname_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000008); - fqname_ = getDefaultInstance().getFqname(); - - return this; - } - /** - * optional string fqname = 4; - */ - public Builder setFqnameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - fqname_ = value; - return this; } @@ -13027,18 +15466,13 @@ public final class IrKlibProtoBuf { int getLoopId(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ boolean hasLabel(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - java.lang.String getLabel(); - /** - * optional string label = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrBreak} @@ -13096,9 +15530,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = label_.toBuilder(); + } + label_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(label_); + label_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - label_ = bs; break; } } @@ -13151,50 +15592,23 @@ public final class IrKlibProtoBuf { } public static final int LABEL_FIELD_NUMBER = 2; - private java.lang.Object label_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_; /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public boolean hasLabel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } private void initFields() { loopId_ = 0; - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -13206,6 +15620,12 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -13217,7 +15637,7 @@ public final class IrKlibProtoBuf { output.writeInt32(1, loopId_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getLabelBytes()); + output.writeMessage(2, label_); } output.writeRawBytes(unknownFields); } @@ -13234,7 +15654,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getLabelBytes()); + .computeMessageSize(2, label_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -13332,7 +15752,7 @@ public final class IrKlibProtoBuf { super.clear(); loopId_ = 0; bitField0_ = (bitField0_ & ~0x00000001); - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -13375,9 +15795,7 @@ public final class IrKlibProtoBuf { setLoopId(other.getLoopId()); } if (other.hasLabel()) { - bitField0_ |= 0x00000002; - label_ = other.label_; - + mergeLabel(other.getLabel()); } setUnknownFields( getUnknownFields().concat(other.unknownFields)); @@ -13389,6 +15807,12 @@ public final class IrKlibProtoBuf { return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + + return false; + } + } return true; } @@ -13443,79 +15867,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object label_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public boolean hasLabel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + label_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + label_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; + */ + public Builder mergeLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + label_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + label_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(label_).mergeFrom(value).buildPartial(); + } else { + label_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public Builder clearLabel() { + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - label_ = getDefaultInstance().getLabel(); - - return this; - } - /** - * optional string label = 2; - */ - public Builder setLabelBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - return this; } @@ -15834,18 +18242,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol getSymbol(); /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ boolean hasOrigin(); /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ - java.lang.String getOrigin(); - /** - * optional string origin = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.MemberAccessCommon member_access = 3; @@ -15920,9 +18323,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = origin_.toBuilder(); + } + origin_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(origin_); + origin_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - origin_ = bs; break; } case 26: { @@ -15988,45 +18398,18 @@ public final class IrKlibProtoBuf { } public static final int ORIGIN_FIELD_NUMBER = 2; - private java.lang.Object origin_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin origin_; /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ public boolean hasOrigin() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ - public java.lang.String getOrigin() { - java.lang.Object ref = origin_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - origin_ = s; - } - return s; - } - } - /** - * optional string origin = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes() { - java.lang.Object ref = origin_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - origin_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin() { + return origin_; } public static final int MEMBER_ACCESS_FIELD_NUMBER = 3; @@ -16046,7 +18429,7 @@ public final class IrKlibProtoBuf { private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); - origin_ = ""; + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); memberAccess_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.MemberAccessCommon.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -16067,6 +18450,12 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (hasOrigin()) { + if (!getOrigin().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (!getMemberAccess().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -16082,7 +18471,7 @@ public final class IrKlibProtoBuf { output.writeMessage(1, symbol_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getOriginBytes()); + output.writeMessage(2, origin_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeMessage(3, memberAccess_); @@ -16102,7 +18491,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getOriginBytes()); + .computeMessageSize(2, origin_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -16204,7 +18593,7 @@ public final class IrKlibProtoBuf { super.clear(); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - origin_ = ""; + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); memberAccess_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.MemberAccessCommon.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); @@ -16253,9 +18642,7 @@ public final class IrKlibProtoBuf { mergeSymbol(other.getSymbol()); } if (other.hasOrigin()) { - bitField0_ |= 0x00000002; - origin_ = other.origin_; - + mergeOrigin(other.getOrigin()); } if (other.hasMemberAccess()) { mergeMemberAccess(other.getMemberAccess()); @@ -16278,6 +18665,12 @@ public final class IrKlibProtoBuf { return false; } + if (hasOrigin()) { + if (!getOrigin().isInitialized()) { + + return false; + } + } if (!getMemberAccess().isInitialized()) { return false; @@ -16364,79 +18757,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object origin_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ public boolean hasOrigin() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ - public java.lang.String getOrigin() { - java.lang.Object ref = origin_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - origin_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin() { + return origin_; } /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes() { - java.lang.Object ref = origin_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - origin_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setOrigin(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin value) { + if (value == null) { + throw new NullPointerException(); } + origin_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ public Builder setOrigin( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - origin_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.Builder builderForValue) { + origin_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * optional string origin = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; + */ + public Builder mergeOrigin(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + origin_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance()) { + origin_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.newBuilder(origin_).mergeFrom(value).buildPartial(); + } else { + origin_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 2; */ public Builder clearOrigin() { + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - origin_ = getDefaultInstance().getOrigin(); - - return this; - } - /** - * optional string origin = 2; - */ - public Builder setOriginBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - origin_ = value; - return this; } @@ -16543,18 +18920,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol getSetter(); /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ boolean hasOrigin(); /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ - java.lang.String getOrigin(); - /** - * optional string origin = 4; - */ - org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.MemberAccessCommon member_access = 5; @@ -16564,6 +18936,23 @@ public final class IrKlibProtoBuf { * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.MemberAccessCommon member_access = 5; */ org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.MemberAccessCommon getMemberAccess(); + + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+     * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+     * 
+ */ + boolean hasDescriptor(); + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+     * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+     * 
+ */ + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference getDescriptor(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrPropertyReference} @@ -16655,9 +19044,16 @@ public final class IrKlibProtoBuf { break; } case 34: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = origin_.toBuilder(); + } + origin_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(origin_); + origin_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000008; - origin_ = bs; break; } case 42: { @@ -16673,6 +19069,19 @@ public final class IrKlibProtoBuf { bitField0_ |= 0x00000010; break; } + case 50: { + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.Builder subBuilder = null; + if (((bitField0_ & 0x00000020) == 0x00000020)) { + subBuilder = descriptor_.toBuilder(); + } + descriptor_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(descriptor_); + descriptor_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000020; + break; + } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -16753,45 +19162,18 @@ public final class IrKlibProtoBuf { } public static final int ORIGIN_FIELD_NUMBER = 4; - private java.lang.Object origin_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin origin_; /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ public boolean hasOrigin() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ - public java.lang.String getOrigin() { - java.lang.Object ref = origin_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - origin_ = s; - } - return s; - } - } - /** - * optional string origin = 4; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes() { - java.lang.Object ref = origin_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - origin_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin() { + return origin_; } public static final int MEMBER_ACCESS_FIELD_NUMBER = 5; @@ -16809,12 +19191,36 @@ public final class IrKlibProtoBuf { return memberAccess_; } + public static final int DESCRIPTOR_FIELD_NUMBER = 6; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference descriptor_; + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+     * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+     * 
+ */ + public boolean hasDescriptor() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+     * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+     * 
+ */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference getDescriptor() { + return descriptor_; + } + private void initFields() { field_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); getter_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); setter_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); - origin_ = ""; + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); memberAccess_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.MemberAccessCommon.getDefaultInstance(); + descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -16844,10 +19250,22 @@ public final class IrKlibProtoBuf { return false; } } + if (hasOrigin()) { + if (!getOrigin().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (!getMemberAccess().isInitialized()) { memoizedIsInitialized = 0; return false; } + if (hasDescriptor()) { + if (!getDescriptor().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -16865,11 +19283,14 @@ public final class IrKlibProtoBuf { output.writeMessage(3, setter_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getOriginBytes()); + output.writeMessage(4, origin_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeMessage(5, memberAccess_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + output.writeMessage(6, descriptor_); + } output.writeRawBytes(unknownFields); } @@ -16893,12 +19314,16 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(4, getOriginBytes()); + .computeMessageSize(4, origin_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(5, memberAccess_); } + if (((bitField0_ & 0x00000020) == 0x00000020)) { + size += org.jetbrains.kotlin.protobuf.CodedOutputStream + .computeMessageSize(6, descriptor_); + } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -16999,10 +19424,12 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000002); setter_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); - origin_ = ""; + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); memberAccess_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.MemberAccessCommon.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000010); + descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -17046,6 +19473,10 @@ public final class IrKlibProtoBuf { to_bitField0_ |= 0x00000010; } result.memberAccess_ = memberAccess_; + if (((from_bitField0_ & 0x00000020) == 0x00000020)) { + to_bitField0_ |= 0x00000020; + } + result.descriptor_ = descriptor_; result.bitField0_ = to_bitField0_; return result; } @@ -17062,13 +19493,14 @@ public final class IrKlibProtoBuf { mergeSetter(other.getSetter()); } if (other.hasOrigin()) { - bitField0_ |= 0x00000008; - origin_ = other.origin_; - + mergeOrigin(other.getOrigin()); } if (other.hasMemberAccess()) { mergeMemberAccess(other.getMemberAccess()); } + if (other.hasDescriptor()) { + mergeDescriptor(other.getDescriptor()); + } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -17097,10 +19529,22 @@ public final class IrKlibProtoBuf { return false; } } + if (hasOrigin()) { + if (!getOrigin().isInitialized()) { + + return false; + } + } if (!getMemberAccess().isInitialized()) { return false; } + if (hasDescriptor()) { + if (!getDescriptor().isInitialized()) { + + return false; + } + } return true; } @@ -17303,79 +19747,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object origin_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ public boolean hasOrigin() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ - public java.lang.String getOrigin() { - java.lang.Object ref = origin_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - origin_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin getOrigin() { + return origin_; } /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ - public org.jetbrains.kotlin.protobuf.ByteString - getOriginBytes() { - java.lang.Object ref = origin_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - origin_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setOrigin(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin value) { + if (value == null) { + throw new NullPointerException(); } + origin_ = value; + + bitField0_ |= 0x00000008; + return this; } /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ public Builder setOrigin( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - origin_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.Builder builderForValue) { + origin_ = builderForValue.build(); + + bitField0_ |= 0x00000008; return this; } /** - * optional string origin = 4; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; + */ + public Builder mergeOrigin(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin value) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + origin_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance()) { + origin_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.newBuilder(origin_).mergeFrom(value).buildPartial(); + } else { + origin_ = value; + } + + bitField0_ |= 0x00000008; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrStatementOrigin origin = 4; */ public Builder clearOrigin() { + origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrStatementOrigin.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000008); - origin_ = getDefaultInstance().getOrigin(); - - return this; - } - /** - * optional string origin = 4; - */ - public Builder setOriginBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - origin_ = value; - return this; } @@ -17439,6 +19867,90 @@ public final class IrKlibProtoBuf { return this; } + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public boolean hasDescriptor() { + return ((bitField0_ & 0x00000020) == 0x00000020); + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference getDescriptor() { + return descriptor_; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public Builder setDescriptor(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference value) { + if (value == null) { + throw new NullPointerException(); + } + descriptor_ = value; + + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public Builder setDescriptor( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.Builder builderForValue) { + descriptor_ = builderForValue.build(); + + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public Builder mergeDescriptor(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference value) { + if (((bitField0_ & 0x00000020) == 0x00000020) && + descriptor_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance()) { + descriptor_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.newBuilder(descriptor_).mergeFrom(value).buildPartial(); + } else { + descriptor_ = value; + } + + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.DescriptorReference descriptor = 6; + * + *
+       * IrProperty doesn't have a symbol at all. Preserve this rudiment for now.
+       * 
+ */ + public Builder clearDescriptor() { + descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); + + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrPropertyReference) } @@ -18563,18 +21075,13 @@ public final class IrKlibProtoBuf { double getDouble(); /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ boolean hasString(); /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ - java.lang.String getString(); - /** - * optional string string = 10; - */ - org.jetbrains.kotlin.protobuf.ByteString - getStringBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getString(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrConst} @@ -18672,9 +21179,16 @@ public final class IrKlibProtoBuf { break; } case 82: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (valueCase_ == 10) { + subBuilder = ((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_).toBuilder(); + } + value_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_); + value_ = subBuilder.buildPartial(); + } valueCase_ = 10; - value_ = bs; break; } } @@ -18913,51 +21427,19 @@ public final class IrKlibProtoBuf { public static final int STRING_FIELD_NUMBER = 10; /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ public boolean hasString() { return valueCase_ == 10; } /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ - public java.lang.String getString() { - java.lang.Object ref = ""; + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getString() { if (valueCase_ == 10) { - ref = value_; - } - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8() && (valueCase_ == 10)) { - value_ = s; - } - return s; - } - } - /** - * optional string string = 10; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getStringBytes() { - java.lang.Object ref = ""; - if (valueCase_ == 10) { - ref = value_; - } - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - if (valueCase_ == 10) { - value_ = b; - } - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_; } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } private void initFields() { @@ -18968,6 +21450,12 @@ public final class IrKlibProtoBuf { if (isInitialized == 1) return true; if (isInitialized == 0) return false; + if (hasString()) { + if (!getString().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -19012,7 +21500,7 @@ public final class IrKlibProtoBuf { 9, (double)((java.lang.Double) value_)); } if (valueCase_ == 10) { - output.writeBytes(10, getStringBytes()); + output.writeMessage(10, (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_); } output.writeRawBytes(unknownFields); } @@ -19070,7 +21558,7 @@ public final class IrKlibProtoBuf { } if (valueCase_ == 10) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(10, getStringBytes()); + .computeMessageSize(10, (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -19266,9 +21754,7 @@ public final class IrKlibProtoBuf { break; } case STRING: { - valueCase_ = 10; - value_ = other.value_; - + mergeString(other.getString()); break; } case VALUE_NOT_SET: { @@ -19281,6 +21767,12 @@ public final class IrKlibProtoBuf { } public final boolean isInitialized() { + if (hasString()) { + if (!getString().isInitialized()) { + + return false; + } + } return true; } @@ -19642,69 +22134,59 @@ public final class IrKlibProtoBuf { } /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ public boolean hasString() { return valueCase_ == 10; } /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ - public java.lang.String getString() { - java.lang.Object ref = ""; + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getString() { if (valueCase_ == 10) { - ref = value_; - } - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (valueCase_ == 10) { - if (bs.isValidUtf8()) { - value_ = s; - } - } - return s; - } else { - return (java.lang.String) ref; + return (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_; } + return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ - public org.jetbrains.kotlin.protobuf.ByteString - getStringBytes() { - java.lang.Object ref = ""; - if (valueCase_ == 10) { - ref = value_; - } - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - if (valueCase_ == 10) { - value_ = b; - } - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - /** - * optional string string = 10; - */ - public Builder setString( - java.lang.String value) { + public Builder setString(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { if (value == null) { - throw new NullPointerException(); - } - valueCase_ = 10; + throw new NullPointerException(); + } value_ = value; - + + valueCase_ = 10; return this; } /** - * optional string string = 10; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; + */ + public Builder setString( + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + value_ = builderForValue.build(); + + valueCase_ = 10; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; + */ + public Builder mergeString(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (valueCase_ == 10 && + value_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + value_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder((org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String) value_) + .mergeFrom(value).buildPartial(); + } else { + value_ = value; + } + + valueCase_ = 10; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String string = 10; */ public Builder clearString() { if (valueCase_ == 10) { @@ -19714,19 +22196,6 @@ public final class IrKlibProtoBuf { } return this; } - /** - * optional string string = 10; - */ - public Builder setStringBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - valueCase_ = 10; - value_ = value; - - return this; - } // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrConst) } @@ -19753,18 +22222,13 @@ public final class IrKlibProtoBuf { int getLoopId(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ boolean hasLabel(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - java.lang.String getLabel(); - /** - * optional string label = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrContinue} @@ -19822,9 +22286,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = label_.toBuilder(); + } + label_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(label_); + label_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - label_ = bs; break; } } @@ -19877,50 +22348,23 @@ public final class IrKlibProtoBuf { } public static final int LABEL_FIELD_NUMBER = 2; - private java.lang.Object label_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_; /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public boolean hasLabel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } private void initFields() { loopId_ = 0; - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -19932,6 +22376,12 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } memoizedIsInitialized = 1; return true; } @@ -19943,7 +22393,7 @@ public final class IrKlibProtoBuf { output.writeInt32(1, loopId_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getLabelBytes()); + output.writeMessage(2, label_); } output.writeRawBytes(unknownFields); } @@ -19960,7 +22410,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getLabelBytes()); + .computeMessageSize(2, label_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -20058,7 +22508,7 @@ public final class IrKlibProtoBuf { super.clear(); loopId_ = 0; bitField0_ = (bitField0_ & ~0x00000001); - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); return this; } @@ -20101,9 +22551,7 @@ public final class IrKlibProtoBuf { setLoopId(other.getLoopId()); } if (other.hasLabel()) { - bitField0_ |= 0x00000002; - label_ = other.label_; - + mergeLabel(other.getLabel()); } setUnknownFields( getUnknownFields().concat(other.unknownFields)); @@ -20115,6 +22563,12 @@ public final class IrKlibProtoBuf { return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + + return false; + } + } return true; } @@ -20169,79 +22623,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object label_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public boolean hasLabel() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + label_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + label_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * optional string label = 2; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; + */ + public Builder mergeLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + label_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + label_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(label_).mergeFrom(value).buildPartial(); + } else { + label_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 2; */ public Builder clearLabel() { + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - label_ = getDefaultInstance().getLabel(); - - return this; - } - /** - * optional string label = 2; - */ - public Builder setLabelBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - label_ = value; - return this; } @@ -24831,18 +27269,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression getCondition(); /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ boolean hasLabel(); /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ - java.lang.String getLabel(); - /** - * optional string label = 3; - */ - org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel(); /** * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrExpression body = 4; @@ -24922,9 +27355,16 @@ public final class IrKlibProtoBuf { break; } case 26: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = label_.toBuilder(); + } + label_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(label_); + label_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000004; - label_ = bs; break; } case 34: { @@ -25005,45 +27445,18 @@ public final class IrKlibProtoBuf { } public static final int LABEL_FIELD_NUMBER = 3; - private java.lang.Object label_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_; /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ public boolean hasLabel() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } - } - /** - * optional string label = 3; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } public static final int BODY_FIELD_NUMBER = 4; @@ -25064,7 +27477,7 @@ public final class IrKlibProtoBuf { private void initFields() { loopId_ = 0; condition_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); body_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -25085,6 +27498,12 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasBody()) { if (!getBody().isInitialized()) { memoizedIsInitialized = 0; @@ -25105,7 +27524,7 @@ public final class IrKlibProtoBuf { output.writeMessage(2, condition_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getLabelBytes()); + output.writeMessage(3, label_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeMessage(4, body_); @@ -25129,7 +27548,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(3, getLabelBytes()); + .computeMessageSize(3, label_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -25233,7 +27652,7 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000001); condition_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); - label_ = ""; + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); body_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); @@ -25289,9 +27708,7 @@ public final class IrKlibProtoBuf { mergeCondition(other.getCondition()); } if (other.hasLabel()) { - bitField0_ |= 0x00000004; - label_ = other.label_; - + mergeLabel(other.getLabel()); } if (other.hasBody()) { mergeBody(other.getBody()); @@ -25314,6 +27731,12 @@ public final class IrKlibProtoBuf { return false; } + if (hasLabel()) { + if (!getLabel().isInitialized()) { + + return false; + } + } if (hasBody()) { if (!getBody().isInitialized()) { @@ -25434,79 +27857,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object label_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ public boolean hasLabel() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ - public java.lang.String getLabel() { - java.lang.Object ref = label_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - label_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getLabel() { + return label_; } /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ - public org.jetbrains.kotlin.protobuf.ByteString - getLabelBytes() { - java.lang.Object ref = label_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - label_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + label_ = value; + + bitField0_ |= 0x00000004; + return this; } /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ public Builder setLabel( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + label_ = builderForValue.build(); + + bitField0_ |= 0x00000004; return this; } /** - * optional string label = 3; + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; + */ + public Builder mergeLabel(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + label_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + label_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(label_).mergeFrom(value).buildPartial(); + } else { + label_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * optional .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String label = 3; */ public Builder clearLabel() { + label_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); - label_ = getDefaultInstance().getLabel(); - - return this; - } - /** - * optional string label = 3; - */ - public Builder setLabelBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - label_ = value; - return this; } @@ -33410,6 +35817,12 @@ public final class IrKlibProtoBuf { return false; } } + if (hasConst()) { + if (!getConst().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } if (hasContinue()) { if (!getContinue().isInitialized()) { memoizedIsInitialized = 0; @@ -34122,6 +36535,12 @@ public final class IrKlibProtoBuf { return false; } } + if (hasConst()) { + if (!getConst().isInitialized()) { + + return false; + } + } if (hasContinue()) { if (!getContinue().isInitialized()) { @@ -38542,32 +40961,22 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ boolean hasName(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - java.lang.String getName(); - /** - * required string name = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ boolean hasVisibility(); /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ - java.lang.String getVisibility(); - /** - * required string visibility = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility(); /** * required bool is_inline = 3; @@ -38697,15 +41106,29 @@ public final class IrKlibProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000001; - name_ = bs; break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = visibility_.toBuilder(); + } + visibility_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(visibility_); + visibility_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - visibility_ = bs; break; } case 24: { @@ -38829,87 +41252,33 @@ public final class IrKlibProtoBuf { private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int VISIBILITY_FIELD_NUMBER = 2; - private java.lang.Object visibility_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_; /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } - } - /** - * required string visibility = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } public static final int IS_INLINE_FIELD_NUMBER = 3; @@ -39053,8 +41422,8 @@ public final class IrKlibProtoBuf { } private void initFields() { - name_ = ""; - visibility_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); isInline_ = false; isExternal_ = false; typeParameters_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeParameterContainer.getDefaultInstance(); @@ -39094,6 +41463,14 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getVisibility().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (!getTypeParameters().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -39134,10 +41511,10 @@ public final class IrKlibProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getNameBytes()); + output.writeMessage(1, name_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getVisibilityBytes()); + output.writeMessage(2, visibility_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeBool(3, isInline_); @@ -39174,11 +41551,11 @@ public final class IrKlibProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getNameBytes()); + .computeMessageSize(1, name_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getVisibilityBytes()); + .computeMessageSize(2, visibility_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -39306,9 +41683,9 @@ public final class IrKlibProtoBuf { public Builder clear() { super.clear(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - visibility_ = ""; + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); isInline_ = false; bitField0_ = (bitField0_ & ~0x00000004); @@ -39397,14 +41774,10 @@ public final class IrKlibProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrFunctionBase other) { if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrFunctionBase.getDefaultInstance()) return this; if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasVisibility()) { - bitField0_ |= 0x00000002; - visibility_ = other.visibility_; - + mergeVisibility(other.getVisibility()); } if (other.hasIsInline()) { setIsInline(other.getIsInline()); @@ -39467,6 +41840,14 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } + if (!getVisibility().isInitialized()) { + + return false; + } if (!getTypeParameters().isInitialized()) { return false; @@ -39521,155 +41902,123 @@ public final class IrKlibProtoBuf { } private int bitField0_; - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000001; + return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 1; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - return this; } - private java.lang.Object visibility_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (value == null) { + throw new NullPointerException(); } + visibility_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ public Builder setVisibility( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - visibility_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder builderForValue) { + visibility_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string visibility = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; + */ + public Builder mergeVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + visibility_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance()) { + visibility_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.newBuilder(visibility_).mergeFrom(value).buildPartial(); + } else { + visibility_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 2; */ public Builder clearVisibility() { + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - visibility_ = getDefaultInstance().getVisibility(); - - return this; - } - /** - * required string visibility = 2; - */ - public Builder setVisibilityBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - visibility_ = value; - return this; } @@ -40816,32 +43165,22 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression getInitializer(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ boolean hasName(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - java.lang.String getName(); - /** - * required string name = 3; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ boolean hasVisibility(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - java.lang.String getVisibility(); - /** - * required string visibility = 4; - */ - org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility(); /** * required bool is_final = 5; @@ -40956,15 +43295,29 @@ public final class IrKlibProtoBuf { break; } case 26: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000004; - name_ = bs; break; } case 34: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = visibility_.toBuilder(); + } + visibility_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(visibility_); + visibility_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000008; - visibility_ = bs; break; } case 40: { @@ -41060,87 +43413,33 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 3; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public boolean hasName() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 3; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int VISIBILITY_FIELD_NUMBER = 4; - private java.lang.Object visibility_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_; /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } - } - /** - * required string visibility = 4; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } public static final int IS_FINAL_FIELD_NUMBER = 5; @@ -41206,8 +43505,8 @@ public final class IrKlibProtoBuf { private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); initializer_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); - name_ = ""; - visibility_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); isFinal_ = false; isExternal_ = false; isStatic_ = false; @@ -41257,6 +43556,14 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getVisibility().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (!getType().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -41275,10 +43582,10 @@ public final class IrKlibProtoBuf { output.writeMessage(2, initializer_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getNameBytes()); + output.writeMessage(3, name_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getVisibilityBytes()); + output.writeMessage(4, visibility_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeBool(5, isFinal_); @@ -41311,11 +43618,11 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(3, getNameBytes()); + .computeMessageSize(3, name_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(4, getVisibilityBytes()); + .computeMessageSize(4, visibility_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -41431,9 +43738,9 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000001); initializer_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); - visibility_ = ""; + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); isFinal_ = false; bitField0_ = (bitField0_ & ~0x00000010); @@ -41511,14 +43818,10 @@ public final class IrKlibProtoBuf { mergeInitializer(other.getInitializer()); } if (other.hasName()) { - bitField0_ |= 0x00000004; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasVisibility()) { - bitField0_ |= 0x00000008; - visibility_ = other.visibility_; - + mergeVisibility(other.getVisibility()); } if (other.hasIsFinal()) { setIsFinal(other.getIsFinal()); @@ -41576,6 +43879,14 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + + return false; + } + if (!getVisibility().isInitialized()) { + + return false; + } if (!getType().isInitialized()) { return false; @@ -41722,155 +44033,123 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public boolean hasName() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000004; + return this; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000004; return this; } /** - * required string name = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 3; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 3; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - name_ = value; - return this; } - private java.lang.Object visibility_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (value == null) { + throw new NullPointerException(); } + visibility_ = value; + + bitField0_ |= 0x00000008; + return this; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public Builder setVisibility( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - visibility_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder builderForValue) { + visibility_ = builderForValue.build(); + + bitField0_ |= 0x00000008; return this; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; + */ + public Builder mergeVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + visibility_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance()) { + visibility_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.newBuilder(visibility_).mergeFrom(value).buildPartial(); + } else { + visibility_ = value; + } + + bitField0_ |= 0x00000008; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public Builder clearVisibility() { + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000008); - visibility_ = getDefaultInstance().getVisibility(); - - return this; - } - /** - * required string visibility = 4; - */ - public Builder setVisibilityBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - visibility_ = value; - return this; } @@ -42063,32 +44342,22 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference getDescriptor(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ boolean hasName(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - java.lang.String getName(); - /** - * required string name = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ boolean hasVisibility(); /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ - java.lang.String getVisibility(); - /** - * required string visibility = 3; - */ - org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.ModalityKind modality = 4; @@ -42235,15 +44504,29 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - name_ = bs; break; } case 26: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder subBuilder = null; + if (((bitField0_ & 0x00000004) == 0x00000004)) { + subBuilder = visibility_.toBuilder(); + } + visibility_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(visibility_); + visibility_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000004; - visibility_ = bs; break; } case 32: { @@ -42380,87 +44663,33 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int VISIBILITY_FIELD_NUMBER = 3; - private java.lang.Object visibility_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_; /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } - } - /** - * required string visibility = 3; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } public static final int MODALITY_FIELD_NUMBER = 4; @@ -42600,8 +44829,8 @@ public final class IrKlibProtoBuf { private void initFields() { descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); - name_ = ""; - visibility_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); modality_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ModalityKind.FINAL_MODALITY; isVar_ = false; isConst_ = false; @@ -42656,6 +44885,14 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getVisibility().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (hasBackingField()) { if (!getBackingField().isInitialized()) { memoizedIsInitialized = 0; @@ -42685,10 +44922,10 @@ public final class IrKlibProtoBuf { output.writeMessage(1, descriptor_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); + output.writeMessage(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { - output.writeBytes(3, getVisibilityBytes()); + output.writeMessage(3, visibility_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeEnum(4, modality_.getNumber()); @@ -42732,11 +44969,11 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); + .computeMessageSize(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(3, getVisibilityBytes()); + .computeMessageSize(3, visibility_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -42870,9 +45107,9 @@ public final class IrKlibProtoBuf { super.clear(); descriptor_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.DescriptorReference.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); - visibility_ = ""; + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); modality_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ModalityKind.FINAL_MODALITY; bitField0_ = (bitField0_ & ~0x00000008); @@ -42973,14 +45210,10 @@ public final class IrKlibProtoBuf { mergeDescriptor(other.getDescriptor()); } if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasVisibility()) { - bitField0_ |= 0x00000004; - visibility_ = other.visibility_; - + mergeVisibility(other.getVisibility()); } if (other.hasModality()) { setModality(other.getModality()); @@ -43053,6 +45286,14 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + + return false; + } + if (!getVisibility().isInitialized()) { + + return false; + } if (hasBackingField()) { if (!getBackingField().isInitialized()) { @@ -43177,155 +45418,123 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 2; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - return this; } - private java.lang.Object visibility_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000004) == 0x00000004); } /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (value == null) { + throw new NullPointerException(); } + visibility_ = value; + + bitField0_ |= 0x00000004; + return this; } /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ public Builder setVisibility( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - visibility_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder builderForValue) { + visibility_ = builderForValue.build(); + + bitField0_ |= 0x00000004; return this; } /** - * required string visibility = 3; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; + */ + public Builder mergeVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (((bitField0_ & 0x00000004) == 0x00000004) && + visibility_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance()) { + visibility_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.newBuilder(visibility_).mergeFrom(value).buildPartial(); + } else { + visibility_ = value; + } + + bitField0_ |= 0x00000004; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 3; */ public Builder clearVisibility() { + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000004); - visibility_ = getDefaultInstance().getVisibility(); - - return this; - } - /** - * required string visibility = 3; - */ - public Builder setVisibilityBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - visibility_ = value; - return this; } @@ -43720,18 +45929,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ boolean hasName(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - java.lang.String getName(); - /** - * required string name = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrSymbol symbol = 2; @@ -43838,9 +46042,16 @@ public final class IrKlibProtoBuf { break; } case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000001; - name_ = bs; break; } case 18: { @@ -43932,45 +46143,18 @@ public final class IrKlibProtoBuf { private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int SYMBOL_FIELD_NUMBER = 2; @@ -44064,7 +46248,7 @@ public final class IrKlibProtoBuf { } private void initFields() { - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); type_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeIndex.getDefaultInstance(); isVar_ = false; @@ -44102,6 +46286,10 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (!getSymbol().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -44124,7 +46312,7 @@ public final class IrKlibProtoBuf { throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getNameBytes()); + output.writeMessage(1, name_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(2, symbol_); @@ -44155,7 +46343,7 @@ public final class IrKlibProtoBuf { size = 0; if (((bitField0_ & 0x00000001) == 0x00000001)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getNameBytes()); + .computeMessageSize(1, name_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -44275,7 +46463,7 @@ public final class IrKlibProtoBuf { public Builder clear() { super.clear(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); @@ -44347,9 +46535,7 @@ public final class IrKlibProtoBuf { public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrVariable other) { if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrVariable.getDefaultInstance()) return this; if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasSymbol()) { mergeSymbol(other.getSymbol()); @@ -44399,6 +46585,10 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } if (!getSymbol().isInitialized()) { return false; @@ -44435,79 +46625,63 @@ public final class IrKlibProtoBuf { } private int bitField0_; - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public boolean hasName() { return ((bitField0_ & 0x00000001) == 0x00000001); } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000001; + return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000001; return this; } /** - * required string name = 1; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000001) == 0x00000001) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000001; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 1; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 1; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - return this; } @@ -44812,18 +46986,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol getSymbol(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ boolean hasName(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - java.lang.String getName(); - /** - * required string name = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * required int32 index = 3; @@ -44943,9 +47112,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - name_ = bs; break; } case 24: { @@ -45052,45 +47228,18 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int INDEX_FIELD_NUMBER = 3; @@ -45185,7 +47334,7 @@ public final class IrKlibProtoBuf { private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); index_ = 0; type_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeIndex.getDefaultInstance(); varargElementType_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeIndex.getDefaultInstance(); @@ -45227,6 +47376,10 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (!getType().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -45254,7 +47407,7 @@ public final class IrKlibProtoBuf { output.writeMessage(1, symbol_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); + output.writeMessage(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeInt32(3, index_); @@ -45289,7 +47442,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); + .computeMessageSize(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -45411,7 +47564,7 @@ public final class IrKlibProtoBuf { super.clear(); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); index_ = 0; bitField0_ = (bitField0_ & ~0x00000004); @@ -45490,9 +47643,7 @@ public final class IrKlibProtoBuf { mergeSymbol(other.getSymbol()); } if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasIndex()) { setIndex(other.getIndex()); @@ -45546,6 +47697,10 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } if (!getType().isInitialized()) { return false; @@ -45644,79 +47799,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 2; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - return this; } @@ -46021,18 +48160,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol getSymbol(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ boolean hasName(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - java.lang.String getName(); - /** - * required string name = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * required int32 index = 3; @@ -46139,9 +48273,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - name_ = bs; break; } case 24: { @@ -46227,45 +48368,18 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int INDEX_FIELD_NUMBER = 3; @@ -46350,7 +48464,7 @@ public final class IrKlibProtoBuf { private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); index_ = 0; variance_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrTypeVariance.IN; superType_ = java.util.Collections.emptyList(); @@ -46386,6 +48500,10 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } for (int i = 0; i < getSuperTypeCount(); i++) { if (!getSuperType(i).isInitialized()) { memoizedIsInitialized = 0; @@ -46403,7 +48521,7 @@ public final class IrKlibProtoBuf { output.writeMessage(1, symbol_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); + output.writeMessage(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeInt32(3, index_); @@ -46432,7 +48550,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); + .computeMessageSize(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -46546,7 +48664,7 @@ public final class IrKlibProtoBuf { super.clear(); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); index_ = 0; bitField0_ = (bitField0_ & ~0x00000004); @@ -46614,9 +48732,7 @@ public final class IrKlibProtoBuf { mergeSymbol(other.getSymbol()); } if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasIndex()) { setIndex(other.getIndex()); @@ -46667,6 +48783,10 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } for (int i = 0; i < getSuperTypeCount(); i++) { if (!getSuperType(i).isInitialized()) { @@ -46755,79 +48875,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 2; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - return this; } @@ -47573,18 +49677,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol getSymbol(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ boolean hasName(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - java.lang.String getName(); - /** - * required string name = 2; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.ClassKind kind = 3; @@ -47596,18 +49695,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ClassKind getKind(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ boolean hasVisibility(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - java.lang.String getVisibility(); - /** - * required string visibility = 4; - */ - org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility(); /** * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.ModalityKind modality = 5; @@ -47776,9 +49870,16 @@ public final class IrKlibProtoBuf { break; } case 18: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000002) == 0x00000002)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000002; - name_ = bs; break; } case 24: { @@ -47794,9 +49895,16 @@ public final class IrKlibProtoBuf { break; } case 34: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = visibility_.toBuilder(); + } + visibility_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(visibility_); + visibility_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000008; - visibility_ = bs; break; } case 40: { @@ -47936,45 +50044,18 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 2; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 2; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } public static final int KIND_FIELD_NUMBER = 3; @@ -47993,45 +50074,18 @@ public final class IrKlibProtoBuf { } public static final int VISIBILITY_FIELD_NUMBER = 4; - private java.lang.Object visibility_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_; /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } - } - /** - * required string visibility = 4; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } public static final int MODALITY_FIELD_NUMBER = 5; @@ -48214,9 +50268,9 @@ public final class IrKlibProtoBuf { private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); kind_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ClassKind.CLASS; - visibility_ = ""; + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); modality_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ModalityKind.FINAL_MODALITY; isCompanion_ = false; isInner_ = false; @@ -48286,6 +50340,14 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + if (!getVisibility().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } if (hasThisReceiver()) { if (!getThisReceiver().isInitialized()) { memoizedIsInitialized = 0; @@ -48317,13 +50379,13 @@ public final class IrKlibProtoBuf { output.writeMessage(1, symbol_); } if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, getNameBytes()); + output.writeMessage(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { output.writeEnum(3, kind_.getNumber()); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getVisibilityBytes()); + output.writeMessage(4, visibility_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { output.writeEnum(5, modality_.getNumber()); @@ -48370,7 +50432,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000002) == 0x00000002)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(2, getNameBytes()); + .computeMessageSize(2, name_); } if (((bitField0_ & 0x00000004) == 0x00000004)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -48378,7 +50440,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(4, getVisibilityBytes()); + .computeMessageSize(4, visibility_); } if (((bitField0_ & 0x00000010) == 0x00000010)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream @@ -48516,11 +50578,11 @@ public final class IrKlibProtoBuf { super.clear(); symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000001); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000002); kind_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ClassKind.CLASS; bitField0_ = (bitField0_ & ~0x00000004); - visibility_ = ""; + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); modality_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.ModalityKind.FINAL_MODALITY; bitField0_ = (bitField0_ & ~0x00000010); @@ -48632,17 +50694,13 @@ public final class IrKlibProtoBuf { mergeSymbol(other.getSymbol()); } if (other.hasName()) { - bitField0_ |= 0x00000002; - name_ = other.name_; - + mergeName(other.getName()); } if (other.hasKind()) { setKind(other.getKind()); } if (other.hasVisibility()) { - bitField0_ |= 0x00000008; - visibility_ = other.visibility_; - + mergeVisibility(other.getVisibility()); } if (other.hasModality()) { setModality(other.getModality()); @@ -48739,6 +50797,14 @@ public final class IrKlibProtoBuf { return false; } + if (!getName().isInitialized()) { + + return false; + } + if (!getVisibility().isInitialized()) { + + return false; + } if (hasThisReceiver()) { if (!getThisReceiver().isInitialized()) { @@ -48841,79 +50907,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public boolean hasName() { return ((bitField0_ & 0x00000002) == 0x00000002); } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000002; + return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000002; return this; } /** - * required string name = 2; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000002) == 0x00000002) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000002; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 2; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000002); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 2; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - name_ = value; - return this; } @@ -48952,79 +51002,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object visibility_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public boolean hasVisibility() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public java.lang.String getVisibility() { - java.lang.Object ref = visibility_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - visibility_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility getVisibility() { + return visibility_; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ - public org.jetbrains.kotlin.protobuf.ByteString - getVisibilityBytes() { - java.lang.Object ref = visibility_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - visibility_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (value == null) { + throw new NullPointerException(); } + visibility_ = value; + + bitField0_ |= 0x00000008; + return this; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public Builder setVisibility( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - visibility_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.Builder builderForValue) { + visibility_ = builderForValue.build(); + + bitField0_ |= 0x00000008; return this; } /** - * required string visibility = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; + */ + public Builder mergeVisibility(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility value) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + visibility_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance()) { + visibility_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.newBuilder(visibility_).mergeFrom(value).buildPartial(); + } else { + visibility_ = value; + } + + bitField0_ |= 0x00000008; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.Visibility visibility = 4; */ public Builder clearVisibility() { + visibility_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Visibility.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000008); - visibility_ = getDefaultInstance().getVisibility(); - - return this; - } - /** - * required string visibility = 4; - */ - public Builder setVisibilityBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - visibility_ = value; - return this; } @@ -49587,18 +51621,13 @@ public final class IrKlibProtoBuf { org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclaration getCorrespondingClass(); /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ boolean hasName(); /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ - java.lang.String getName(); - /** - * required string name = 4; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrEnumEntry} @@ -49690,9 +51719,16 @@ public final class IrKlibProtoBuf { break; } case 34: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder subBuilder = null; + if (((bitField0_ & 0x00000008) == 0x00000008)) { + subBuilder = name_.toBuilder(); + } + name_ = input.readMessage(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(name_); + name_ = subBuilder.buildPartial(); + } bitField0_ |= 0x00000008; - name_ = bs; break; } } @@ -49775,52 +51811,25 @@ public final class IrKlibProtoBuf { } public static final int NAME_FIELD_NUMBER = 4; - private java.lang.Object name_; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_; /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ public boolean hasName() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 4; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } private void initFields() { symbol_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrSymbol.getDefaultInstance(); initializer_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrExpression.getDefaultInstance(); correspondingClass_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclaration.getDefaultInstance(); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -49852,6 +51861,10 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + memoizedIsInitialized = 0; + return false; + } memoizedIsInitialized = 1; return true; } @@ -49869,7 +51882,7 @@ public final class IrKlibProtoBuf { output.writeMessage(3, correspondingClass_); } if (((bitField0_ & 0x00000008) == 0x00000008)) { - output.writeBytes(4, getNameBytes()); + output.writeMessage(4, name_); } output.writeRawBytes(unknownFields); } @@ -49894,7 +51907,7 @@ public final class IrKlibProtoBuf { } if (((bitField0_ & 0x00000008) == 0x00000008)) { size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(4, getNameBytes()); + .computeMessageSize(4, name_); } size += unknownFields.size(); memoizedSerializedSize = size; @@ -49996,7 +52009,7 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000002); correspondingClass_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclaration.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000004); - name_ = ""; + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -50053,9 +52066,7 @@ public final class IrKlibProtoBuf { mergeCorrespondingClass(other.getCorrespondingClass()); } if (other.hasName()) { - bitField0_ |= 0x00000008; - name_ = other.name_; - + mergeName(other.getName()); } setUnknownFields( getUnknownFields().concat(other.unknownFields)); @@ -50087,6 +52098,10 @@ public final class IrKlibProtoBuf { return false; } } + if (!getName().isInitialized()) { + + return false; + } return true; } @@ -50289,79 +52304,63 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object name_ = ""; + private org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ public boolean hasName() { return ((bitField0_ & 0x00000008) == 0x00000008); } /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } + public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String getName() { + return name_; } /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; + public Builder setName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (value == null) { + throw new NullPointerException(); } + name_ = value; + + bitField0_ |= 0x00000008; + return this; } /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - name_ = value; - + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.Builder builderForValue) { + name_ = builderForValue.build(); + + bitField0_ |= 0x00000008; return this; } /** - * required string name = 4; + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; + */ + public Builder mergeName(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String value) { + if (((bitField0_ & 0x00000008) == 0x00000008) && + name_ != org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance()) { + name_ = + org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.newBuilder(name_).mergeFrom(value).buildPartial(); + } else { + name_ = value; + } + + bitField0_ |= 0x00000008; + return this; + } + /** + * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.String name = 4; */ public Builder clearName() { + name_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.String.getDefaultInstance(); + bitField0_ = (bitField0_ & ~0x00000008); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 4; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - name_ = value; - return this; } @@ -52672,445 +54671,6 @@ public final class IrKlibProtoBuf { // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarator) } - public interface IrDeclarationOriginOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) - org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { - - /** - * required string name = 1; - */ - boolean hasName(); - /** - * required string name = 1; - */ - java.lang.String getName(); - /** - * required string name = 1; - */ - org.jetbrains.kotlin.protobuf.ByteString - getNameBytes(); - } - /** - * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin} - */ - public static final class IrDeclarationOrigin extends - org.jetbrains.kotlin.protobuf.GeneratedMessageLite implements - // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) - IrDeclarationOriginOrBuilder { - // Use IrDeclarationOrigin.newBuilder() to construct. - private IrDeclarationOrigin(org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private IrDeclarationOrigin(boolean noInit) { this.unknownFields = org.jetbrains.kotlin.protobuf.ByteString.EMPTY;} - - private static final IrDeclarationOrigin defaultInstance; - public static IrDeclarationOrigin getDefaultInstance() { - return defaultInstance; - } - - public IrDeclarationOrigin getDefaultInstanceForType() { - return defaultInstance; - } - - private final org.jetbrains.kotlin.protobuf.ByteString unknownFields; - private IrDeclarationOrigin( - org.jetbrains.kotlin.protobuf.CodedInputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - initFields(); - int mutable_bitField0_ = 0; - org.jetbrains.kotlin.protobuf.ByteString.Output unknownFieldsOutput = - org.jetbrains.kotlin.protobuf.ByteString.newOutput(); - org.jetbrains.kotlin.protobuf.CodedOutputStream unknownFieldsCodedOutput = - org.jetbrains.kotlin.protobuf.CodedOutputStream.newInstance( - unknownFieldsOutput, 1); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFieldsCodedOutput, - extensionRegistry, tag)) { - done = true; - } - break; - } - case 10: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); - bitField0_ |= 0x00000001; - name_ = bs; - break; - } - } - } - } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - try { - unknownFieldsCodedOutput.flush(); - } catch (java.io.IOException e) { - // Should not happen - } finally { - unknownFields = unknownFieldsOutput.toByteString(); - } - makeExtensionsImmutable(); - } - } - public static org.jetbrains.kotlin.protobuf.Parser PARSER = - new org.jetbrains.kotlin.protobuf.AbstractParser() { - public IrDeclarationOrigin parsePartialFrom( - org.jetbrains.kotlin.protobuf.CodedInputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return new IrDeclarationOrigin(input, extensionRegistry); - } - }; - - @java.lang.Override - public org.jetbrains.kotlin.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - public static final int NAME_FIELD_NUMBER = 1; - private java.lang.Object name_; - /** - * required string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * required string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } - /** - * required string name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - - private void initFields() { - name_ = ""; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - if (!hasName()) { - memoizedIsInitialized = 0; - return false; - } - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(org.jetbrains.kotlin.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getNameBytes()); - } - output.writeRawBytes(unknownFields); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(1, getNameBytes()); - } - size += unknownFields.size(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - org.jetbrains.kotlin.protobuf.ByteString data) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - org.jetbrains.kotlin.protobuf.ByteString data, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom(byte[] data) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - byte[] data, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - java.io.InputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseDelimitedFrom( - java.io.InputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - org.jetbrains.kotlin.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parseFrom( - org.jetbrains.kotlin.protobuf.CodedInputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - /** - * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin} - */ - public static final class Builder extends - org.jetbrains.kotlin.protobuf.GeneratedMessageLite.Builder< - org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin, Builder> - implements - // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) - org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOriginOrBuilder { - // Construct using org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin getDefaultInstanceForType() { - return org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.getDefaultInstance(); - } - - public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin build() { - org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin buildPartial() { - org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin result = new org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.name_ = name_; - result.bitField0_ = to_bitField0_; - return result; - } - - public Builder mergeFrom(org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin other) { - if (other == org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.getDefaultInstance()) return this; - if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - - } - setUnknownFields( - getUnknownFields().concat(other.unknownFields)); - return this; - } - - public final boolean isInitialized() { - if (!hasName()) { - - return false; - } - return true; - } - - public Builder mergeFrom( - org.jetbrains.kotlin.protobuf.CodedInputStream input, - org.jetbrains.kotlin.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.lang.Object name_ = ""; - /** - * required string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * required string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * required string name = 1; - */ - public org.jetbrains.kotlin.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - /** - * required string name = 1; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - - return this; - } - /** - * required string name = 1; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - - return this; - } - /** - * required string name = 1; - */ - public Builder setNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - - return this; - } - - // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) - } - - static { - defaultInstance = new IrDeclarationOrigin(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarationOrigin) - } - public interface IrDeclarationOrBuilder extends // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclaration) org.jetbrains.kotlin.protobuf.MessageLiteOrBuilder { @@ -53150,32 +54710,6 @@ public final class IrKlibProtoBuf { * required .org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclarator declarator = 4; */ org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarator getDeclarator(); - - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - boolean hasFileName(); - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - java.lang.String getFileName(); - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - org.jetbrains.kotlin.protobuf.ByteString - getFileNameBytes(); } /** * Protobuf type {@code org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclaration} @@ -53279,12 +54813,6 @@ public final class IrKlibProtoBuf { bitField0_ |= 0x00000008; break; } - case 42: { - org.jetbrains.kotlin.protobuf.ByteString bs = input.readBytes(); - bitField0_ |= 0x00000010; - fileName_ = bs; - break; - } } } } catch (org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException e) { @@ -53379,66 +54907,11 @@ public final class IrKlibProtoBuf { return declarator_; } - public static final int FILE_NAME_FIELD_NUMBER = 5; - private java.lang.Object fileName_; - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fileName_ = s; - } - return s; - } - } - /** - * required string file_name = 5; - * - *
-     *repeated IrDeclaration nested = 5;
-     * 
- */ - public org.jetbrains.kotlin.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof java.lang.String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - private void initFields() { origin_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarationOrigin.getDefaultInstance(); coordinates_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Coordinates.getDefaultInstance(); annotations_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.Annotations.getDefaultInstance(); declarator_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarator.getDefaultInstance(); - fileName_ = ""; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -53462,10 +54935,6 @@ public final class IrKlibProtoBuf { memoizedIsInitialized = 0; return false; } - if (!hasFileName()) { - memoizedIsInitialized = 0; - return false; - } if (!getOrigin().isInitialized()) { memoizedIsInitialized = 0; return false; @@ -53501,9 +54970,6 @@ public final class IrKlibProtoBuf { if (((bitField0_ & 0x00000008) == 0x00000008)) { output.writeMessage(4, declarator_); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - output.writeBytes(5, getFileNameBytes()); - } output.writeRawBytes(unknownFields); } @@ -53529,10 +54995,6 @@ public final class IrKlibProtoBuf { size += org.jetbrains.kotlin.protobuf.CodedOutputStream .computeMessageSize(4, declarator_); } - if (((bitField0_ & 0x00000010) == 0x00000010)) { - size += org.jetbrains.kotlin.protobuf.CodedOutputStream - .computeBytesSize(5, getFileNameBytes()); - } size += unknownFields.size(); memoizedSerializedSize = size; return size; @@ -53635,8 +55097,6 @@ public final class IrKlibProtoBuf { bitField0_ = (bitField0_ & ~0x00000004); declarator_ = org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrKlibProtoBuf.IrDeclarator.getDefaultInstance(); bitField0_ = (bitField0_ & ~0x00000008); - fileName_ = ""; - bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -53676,10 +55136,6 @@ public final class IrKlibProtoBuf { to_bitField0_ |= 0x00000008; } result.declarator_ = declarator_; - if (((from_bitField0_ & 0x00000010) == 0x00000010)) { - to_bitField0_ |= 0x00000010; - } - result.fileName_ = fileName_; result.bitField0_ = to_bitField0_; return result; } @@ -53698,11 +55154,6 @@ public final class IrKlibProtoBuf { if (other.hasDeclarator()) { mergeDeclarator(other.getDeclarator()); } - if (other.hasFileName()) { - bitField0_ |= 0x00000010; - fileName_ = other.fileName_; - - } setUnknownFields( getUnknownFields().concat(other.unknownFields)); return this; @@ -53725,10 +55176,6 @@ public final class IrKlibProtoBuf { return false; } - if (!hasFileName()) { - - return false; - } if (!getOrigin().isInitialized()) { return false; @@ -54007,106 +55454,6 @@ public final class IrKlibProtoBuf { return this; } - private java.lang.Object fileName_ = ""; - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public boolean hasFileName() { - return ((bitField0_ & 0x00000010) == 0x00000010); - } - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public java.lang.String getFileName() { - java.lang.Object ref = fileName_; - if (!(ref instanceof java.lang.String)) { - org.jetbrains.kotlin.protobuf.ByteString bs = - (org.jetbrains.kotlin.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - fileName_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public org.jetbrains.kotlin.protobuf.ByteString - getFileNameBytes() { - java.lang.Object ref = fileName_; - if (ref instanceof String) { - org.jetbrains.kotlin.protobuf.ByteString b = - org.jetbrains.kotlin.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fileName_ = b; - return b; - } else { - return (org.jetbrains.kotlin.protobuf.ByteString) ref; - } - } - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public Builder setFileName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - fileName_ = value; - - return this; - } - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public Builder clearFileName() { - bitField0_ = (bitField0_ & ~0x00000010); - fileName_ = getDefaultInstance().getFileName(); - - return this; - } - /** - * required string file_name = 5; - * - *
-       *repeated IrDeclaration nested = 5;
-       * 
- */ - public Builder setFileNameBytes( - org.jetbrains.kotlin.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000010; - fileName_ = value; - - return this; - } - // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.IrDeclaration) } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBufModuleDeserializer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBufModuleDeserializer.kt index 49f9bf5fb8c..a69f8fe791b 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBufModuleDeserializer.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrKlibProtoBufModuleDeserializer.kt @@ -9,9 +9,9 @@ import org.jetbrains.kotlin.backend.common.LoggingContext import org.jetbrains.kotlin.backend.common.descriptors.* import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor -import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.backend.js.lower.serialization.metadata.JsKlibMetadataSerializerProtocol +import org.jetbrains.kotlin.ir.backend.js.utils.Namer import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.* import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.SymbolTable import org.jetbrains.kotlin.ir.util.patchDeclarationParents import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor @@ -44,10 +43,15 @@ class IrKlibProtoBufModuleDeserializer( var deserializedModuleDescriptor: ModuleDescriptor? = null var deserializedModuleProtoSymbolTables = mutableMapOf() + var deserializedModuleProtoStringTables = mutableMapOf() var deserializedModuleProtoTypeTables = mutableMapOf() val resolvedForwardDeclarations = mutableMapOf() - val descriptorReferenceDeserializer = DescriptorReferenceDeserializer(currentModule, resolvedForwardDeclarations) + val descriptorReferenceDeserializer = DescriptorReferenceDeserializer(currentModule, resolvedForwardDeclarations, { + knownBuiltInsDescriptors[it]?.index ?: if (isBuiltInFunction(it)) FUNCTION_INDEX_START + builtInFunctionId(it) else null + }, { (FUNCTION_INDEX_START + BUILT_IN_UNIQ_ID_CLASS_OFFSET) <= it && it < (FUNCTION_INDEX_START + BUILT_IN_UNIQ_ID_GAP) }, { + builtIns.builtIns.getBuiltInClassByFqName(it) + }) val moduleRoot = libraryDir val irDirectory = File(libraryDir, "ir/") @@ -94,7 +98,7 @@ class IrKlibProtoBufModuleDeserializer( ?: WrappedEnumEntryDescriptor() ) IrKlibProtoBuf.IrSymbolKind.STANDALONE_FIELD_SYMBOL -> - IrFieldSymbolImpl(WrappedFieldDescriptor()) + symbolTable.referenceField(WrappedFieldDescriptor()) IrKlibProtoBuf.IrSymbolKind.FIELD_SYMBOL -> symbolTable.referenceField( @@ -135,6 +139,9 @@ class IrKlibProtoBufModuleDeserializer( return deserializeIrTypeData(typeData) } + override fun deserializeString(proto: IrKlibProtoBuf.String) = + deserializedModuleProtoStringTables[deserializedModuleDescriptor]!!.getStrings(proto.index) + fun deserializeIrSymbolData(proto: IrKlibProtoBuf.IrSymbolData): IrSymbol { val key = proto.uniqId.uniqIdKey(deserializedModuleDescriptor!!) val topLevelKey = proto.topLevelUniqId.uniqIdKey(deserializedModuleDescriptor!!) @@ -166,11 +173,18 @@ class IrKlibProtoBufModuleDeserializer( } override fun deserializeDescriptorReference(proto: IrKlibProtoBuf.DescriptorReference) = - descriptorReferenceDeserializer.deserializeDescriptorReference(proto, { - knownBuiltInsDescriptors[it]?.index ?: if (isBuiltInFunction(it)) FUNCTION_INDEX_START + builtInFunctionId(it) else null - }, { (FUNCTION_INDEX_START + BUILT_IN_UNIQ_ID_CLASS_OFFSET) <= it && it < (FUNCTION_INDEX_START + BUILT_IN_UNIQ_ID_GAP) }, { - builtIns.builtIns.getBuiltInClassByFqName(it) - }) + descriptorReferenceDeserializer.deserializeDescriptorReference( + deserializeString(proto.packageFqName), + deserializeString(proto.classFqName), + deserializeString(proto.name), + if (proto.hasUniqId()) proto.uniqId.index else null, + isEnumEntry = proto.isEnumEntry, + isEnumSpecial = proto.isEnumSpecial, + isDefaultConstructor = proto.isDefaultConstructor, + isFakeOverride = proto.isFakeOverride, + isGetter = proto.isGetter, + isSetter = proto.isSetter + ) private val ByteArray.codedInputStream: org.jetbrains.kotlin.protobuf.CodedInputStream get() { @@ -282,6 +296,9 @@ class IrKlibProtoBufModuleDeserializer( classDescriptor, classDescriptor.modality ) { symbol: IrClassSymbol -> IrClassImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, symbol) } + .also { + it.parent = file + } declaration } @@ -290,10 +307,13 @@ class IrKlibProtoBufModuleDeserializer( } fun deserializeIrFile(fileProto: IrKlibProtoBuf.IrFile, moduleDescriptor: ModuleDescriptor, deserializeAllDeclarations: Boolean): IrFile { - val fileEntry = NaiveSourceBasedFileEntryImpl(fileProto.fileEntry.name) + val fileEntry = NaiveSourceBasedFileEntryImpl( + deserializeString(fileProto.fileEntry.name), + fileProto.fileEntry.lineStartOffsetsList.toIntArray() + ) // TODO: we need to store "" in protobuf, I suppose. Or better yet, reuse fqname storage from metadata. - val fqName = if (fileProto.fqName == "") FqName.ROOT else FqName(fileProto.fqName) + val fqName = deserializeString(fileProto.fqName).let { if (it == "") FqName.ROOT else FqName(it) } val packageFragmentDescriptor = EmptyPackageFragmentDescriptor(moduleDescriptor, fqName) @@ -316,18 +336,17 @@ class IrKlibProtoBufModuleDeserializer( deserializedModuleDescriptor = moduleDescriptor deserializedModuleProtoSymbolTables.put(moduleDescriptor, proto.symbolTable) + deserializedModuleProtoStringTables.put(moduleDescriptor, proto.stringTable) deserializedModuleProtoTypeTables.put(moduleDescriptor, proto.typeTable) - var i = 0 val files = proto.fileList.map { - i++ -// if (i >= 41) -// descriptorReferenceDeserializer.doCrash = true deserializeIrFile(it, moduleDescriptor, deserializeAllDeclarations) } val module = IrModuleFragmentImpl(moduleDescriptor, builtIns, files) module.patchDeclarationParents(null) - return module + return module.also { + it.files.removeAll { f -> f.name == Namer.DYNAMIC_FILE_NAME } + } } fun deserializeIrModule(moduleDescriptor: ModuleDescriptor, byteArray: ByteArray, deserializeAllDeclarations: Boolean = false): IrModuleFragment { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleDeserializer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleDeserializer.kt index d967af3665a..6363ff39495 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleDeserializer.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleDeserializer.kt @@ -49,6 +49,7 @@ abstract class IrModuleDeserializer( abstract fun deserializeIrSymbol(proto: IrKlibProtoBuf.IrSymbol): IrSymbol abstract fun deserializeIrType(proto: IrKlibProtoBuf.IrTypeIndex): IrType abstract fun deserializeDescriptorReference(proto: IrKlibProtoBuf.DescriptorReference): DeclarationDescriptor + abstract fun deserializeString(proto: IrKlibProtoBuf.String): String private fun deserializeTypeArguments(proto: IrKlibProtoBuf.TypeArguments): List { logger.log { "### deserializeTypeArguments" } @@ -378,6 +379,8 @@ abstract class IrModuleDeserializer( return IrInstanceInitializerCallImpl(start, end, symbol, builtIns.unitType) } + private val getterToPropertyDescriptorMap = mutableMapOf() + private fun deserializePropertyReference( proto: IrKlibProtoBuf.IrPropertyReference, start: Int, end: Int, type: IrType @@ -386,7 +389,12 @@ abstract class IrModuleDeserializer( val field = if (proto.hasField()) deserializeIrSymbol(proto.field) as IrFieldSymbol else null val getter = if (proto.hasGetter()) deserializeIrSymbol(proto.getter) as IrSimpleFunctionSymbol else null val setter = if (proto.hasSetter()) deserializeIrSymbol(proto.setter) as IrSimpleFunctionSymbol else null - val descriptor = WrappedPropertyDescriptor() + val descriptor = + if (proto.hasDescriptor()) + deserializeDescriptorReference(proto.descriptor) as PropertyDescriptor + else + field?.descriptor as? WrappedPropertyDescriptor // If field's descriptor coincides with property's. + ?: getterToPropertyDescriptorMap.getOrPut(getter!!) { WrappedPropertyDescriptor() } val callable = IrPropertyReferenceImpl( start, end, type, @@ -531,7 +539,7 @@ abstract class IrModuleDeserializer( val loopId = proto.loopId loopIndex.getOrPut(loopId) { loop } - val label = if (proto.hasLabel()) proto.label else null + val label = if (proto.hasLabel()) deserializeString(proto.label) else null val body = if (proto.hasBody()) deserializeExpression(proto.body) else null val condition = deserializeExpression(proto.condition) @@ -559,7 +567,7 @@ abstract class IrModuleDeserializer( } private fun deserializeBreak(proto: IrKlibProtoBuf.IrBreak, start: Int, end: Int, type: IrType): IrBreak { - val label = if (proto.hasLabel()) proto.label else null + val label = if (proto.hasLabel()) deserializeString(proto.label) else null val loopId = proto.loopId val loop = loopIndex[loopId]!! val irBreak = IrBreakImpl(start, end, type, loop) @@ -569,7 +577,7 @@ abstract class IrModuleDeserializer( } private fun deserializeContinue(proto: IrKlibProtoBuf.IrContinue, start: Int, end: Int, type: IrType): IrContinue { - val label = if (proto.hasLabel()) proto.label else null + val label = if (proto.hasLabel()) deserializeString(proto.label) else null val loopId = proto.loopId val loop = loopIndex[loopId]!! val irContinue = IrContinueImpl(start, end, type, loop) @@ -595,7 +603,7 @@ abstract class IrModuleDeserializer( LONG -> IrConstImpl.long(start, end, type, proto.long) STRING - -> IrConstImpl.string(start, end, type, proto.string) + -> IrConstImpl.string(start, end, type, deserializeString(proto.string)) FLOAT -> IrConstImpl.float(start, end, type, proto.float) DOUBLE @@ -684,7 +692,7 @@ abstract class IrModuleDeserializer( origin: IrDeclarationOrigin ): IrTypeParameter { val symbol = deserializeIrSymbol(proto.symbol) as IrTypeParameterSymbol - val name = Name.identifier(proto.name) + val name = Name.identifier(deserializeString(proto.name)) val variance = deserializeIrTypeVariance(proto.variance) val parameter = symbolTable.declareGlobalTypeParameter(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, @@ -733,7 +741,7 @@ abstract class IrModuleDeserializer( IrValueParameterImpl( start, end, origin, paramSymbol, - proto.name.let { if (paramSymbol.descriptor is ReceiverParameterDescriptor) Name.special(it) else Name.identifier(it) }, + deserializeString(proto.name).let { if (paramSymbol.descriptor is ReceiverParameterDescriptor) Name.special(it) else Name.identifier(it) }, proto.index, deserializeIrType(proto.type), varargElementType, @@ -755,11 +763,11 @@ abstract class IrModuleDeserializer( val modality = deserializeModality(proto.modality) val clazz = symbolTable.declareClass(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, - symbol.descriptor, modality) { symbol -> + symbol.descriptor, modality) { IrClassImpl( start, end, origin, - symbol, - proto.name.let { if (it.startsWith('<')) Name.special(it) else Name.identifier(it) }, + it, + deserializeString(proto.name).let { if (it.startsWith('<')) Name.special(it) else Name.identifier(it) }, deserializeClassKind(proto.kind), deserializeVisibility(proto.visibility), modality, @@ -814,7 +822,7 @@ abstract class IrModuleDeserializer( private fun deserializeIrFunction( proto: IrKlibProtoBuf.IrFunction, - start: Int, end: Int, origin: IrDeclarationOrigin, correspondingProperty: IrProperty? = null + start: Int, end: Int, origin: IrDeclarationOrigin, isAccessor: Boolean ): IrSimpleFunction { logger.log { "### deserializing IrFunction ${proto.base.name}" } @@ -824,7 +832,7 @@ abstract class IrModuleDeserializer( symbol.descriptor, { IrFunctionImpl( start, end, origin, it, - proto.base.name.let { if (correspondingProperty != null) Name.special(it) else Name.identifier(it) }, + deserializeString(proto.base.name).let { if (isAccessor) Name.special(it) else Name.identifier(it) }, deserializeVisibility(proto.base.visibility), deserializeModality(proto.modality), deserializeIrType(proto.base.returnType), @@ -839,7 +847,7 @@ abstract class IrModuleDeserializer( val overridden = proto.overriddenList.map { deserializeIrSymbol(it) as IrSimpleFunctionSymbol } function.overriddenSymbols.addAll(overridden) - function.correspondingProperty = correspondingProperty +// function.correspondingProperty = correspondingProperty return function } @@ -861,7 +869,7 @@ abstract class IrModuleDeserializer( end, origin, symbol, - Name.identifier(proto.name), + Name.identifier(deserializeString(proto.name)), type, proto.isVar, proto.isConst, @@ -883,7 +891,7 @@ abstract class IrModuleDeserializer( irrelevantOrigin, symbol.descriptor ) { - IrEnumEntryImpl(start, end, origin, it, Name.identifier(proto.name)) + IrEnumEntryImpl(start, end, origin, it, Name.identifier(deserializeString(proto.name))) } if (proto.hasCorrespondingClass()) { @@ -908,8 +916,8 @@ abstract class IrModuleDeserializer( return initializer } - private fun deserializeVisibility(value: String): Visibility { // TODO: switch to enum - return when (value) { + private fun deserializeVisibility(value: IrKlibProtoBuf.Visibility): Visibility { // TODO: switch to enum + return when (deserializeString(value.name)) { "public" -> Visibilities.PUBLIC "private" -> Visibilities.PRIVATE "private_to_this" -> Visibilities.PRIVATE_TO_THIS @@ -934,7 +942,7 @@ abstract class IrModuleDeserializer( IrConstructorImpl( start, end, origin, it, - Name.special(proto.base.name), + Name.special(deserializeString(proto.base.name)), deserializeVisibility(proto.base.visibility), deserializeIrType(proto.base.returnType), proto.base.isInline, @@ -960,7 +968,7 @@ abstract class IrModuleDeserializer( { IrFieldImpl( start, end, origin, it, - Name.identifier(proto.name), + Name.identifier(deserializeString(proto.name)), type, deserializeVisibility(proto.visibility), proto.isFinal, @@ -990,18 +998,25 @@ abstract class IrModuleDeserializer( origin: IrDeclarationOrigin ): IrProperty { - val backingField = if (proto.hasBackingField()) { - deserializeIrField(proto.backingField, start, end, origin) - } else null + val backingField = if (proto.hasBackingField()) deserializeIrField(proto.backingField, start, end, origin) else null + val getter = if (proto.hasGetter()) deserializeIrFunction(proto.getter, start, end, origin, true) else null + val setter = if (proto.hasSetter()) deserializeIrFunction(proto.setter, start, end, origin, true) else null + + backingField?.let { (it.descriptor as? WrappedFieldDescriptor)?.bind(it) } + getter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } + setter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } val descriptor = - if (proto.hasDescriptor()) deserializeDescriptorReference(proto.descriptor) as PropertyDescriptor else null - ?: WrappedPropertyDescriptor() + if (proto.hasDescriptor()) + deserializeDescriptorReference(proto.descriptor) as PropertyDescriptor + else + backingField?.descriptor as? WrappedPropertyDescriptor // If field's descriptor coincides with property's. + ?: getterToPropertyDescriptorMap.getOrPut(getter!!.symbol) { WrappedPropertyDescriptor() } val property = IrPropertyImpl( start, end, origin, descriptor, - Name.identifier(proto.name), + Name.identifier(deserializeString(proto.name)), deserializeVisibility(proto.visibility), deserializeModality(proto.modality), proto.isVar, @@ -1023,29 +1038,34 @@ abstract class IrModuleDeserializer( } */ property.backingField = backingField + property.getter = getter + property.setter = setter + backingField?.let { it.correspondingProperty = property } + getter?.let { it.correspondingProperty = property } + setter?.let { it.correspondingProperty = property } - property.getter = - if (proto.hasGetter()) deserializeIrFunction(proto.getter, start, end, origin, property) else null - property.setter = - if (proto.hasSetter()) deserializeIrFunction(proto.setter, start, end, origin, property) else null - -// property.getter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } -// property.setter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } - - property.getter?.let { - val descriptor = it.descriptor - if (descriptor is WrappedSimpleFunctionDescriptor) descriptor.bind(it) - symbolTable.declareSimpleFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, - descriptor, { symbol -> it }) - - } - property.setter?.let { - val descriptor = it.descriptor - if (descriptor is WrappedSimpleFunctionDescriptor) descriptor.bind(it) - symbolTable.declareSimpleFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, - descriptor, { symbol -> it }) - } +// property.getter = +// if (proto.hasGetter()) deserializeIrFunction(proto.getter, start, end, origin, property) else null +// property.setter = +// if (proto.hasSetter()) deserializeIrFunction(proto.setter, start, end, origin, property) else null +// +//// property.getter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } +//// property.setter?.let { (it.descriptor as? WrappedSimpleFunctionDescriptor)?.bind(it) } +// +// property.getter?.let { +// val descriptor = it.descriptor +// if (descriptor is WrappedSimpleFunctionDescriptor) descriptor.bind(it) +// symbolTable.declareSimpleFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, +// descriptor, { symbol -> it }) +// +// } +// property.setter?.let { +// val descriptor = it.descriptor +// if (descriptor is WrappedSimpleFunctionDescriptor) descriptor.bind(it) +// symbolTable.declareSimpleFunction(UNDEFINED_OFFSET, UNDEFINED_OFFSET, irrelevantOrigin, +// descriptor, { symbol -> it }) +// } return property } @@ -1063,12 +1083,13 @@ abstract class IrModuleDeserializer( IrDeclarationOrigin::class.nestedClasses.toList() + DeclarationFactory.FIELD_FOR_OUTER_THIS::class val originIndex = allKnownOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name } val irrelevantOrigin = object : IrDeclarationOriginImpl("irrelevant") {} + fun deserializeIrDeclarationOrigin(proto: IrKlibProtoBuf.IrDeclarationOrigin) = originIndex[deserializeString(proto.custom)]!! protected fun deserializeDeclaration(proto: IrKlibProtoBuf.IrDeclaration, parent: IrDeclarationParent?): IrDeclaration { val start = proto.coordinates.startOffset val end = proto.coordinates.endOffset - val origin = originIndex[proto.origin.name]!! + val origin = deserializeIrDeclarationOrigin(proto.origin) val declarator = proto.declarator @@ -1082,7 +1103,7 @@ abstract class IrModuleDeserializer( IR_CLASS -> deserializeIrClass(declarator.irClass, start, end, origin) IR_FUNCTION - -> deserializeIrFunction(declarator.irFunction, start, end, origin) + -> deserializeIrFunction(declarator.irFunction, start, end, origin, false) IR_PROPERTY -> deserializeIrProperty(declarator.irProperty, start, end, origin) IR_TYPE_ALIAS @@ -1104,8 +1125,6 @@ abstract class IrModuleDeserializer( parent?.let { declaration.parent = it } - val sourceFileName = proto.fileName - val descriptor = declaration.descriptor if (descriptor is WrappedDeclarationDescriptor<*>) { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleSerializer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleSerializer.kt index 4071fefe5db..d7ac58dff6c 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleSerializer.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/IrModuleSerializer.kt @@ -389,9 +389,20 @@ internal class IrModuleSerializer( private fun serializeCall(call: IrCall): IrKlibProtoBuf.IrCall { val proto = IrKlibProtoBuf.IrCall.newBuilder() + if (call.dispatchReceiver?.type is IrDynamicType) { + val declaration = call.symbol.owner + dynamicFile.run { + if (!declarations.contains(declaration)) { + declaration.parent = dynamicFile + declarations += declaration + } + } + } + proto.kind = irCallToPrimitiveKind(call) proto.symbol = serializeIrSymbol(call.symbol) + call.superQualifierSymbol?.let { proto.`super` = serializeIrSymbol(it) } @@ -657,68 +668,6 @@ internal class IrModuleSerializer( return proto.build() } - private fun serializeDynamicMemberExpression(expression: IrDynamicMemberExpression): IrKlibProtoBuf.IrDynamicMemberExpression { - val proto = IrKlibProtoBuf.IrDynamicMemberExpression.newBuilder() - .setMemberName(serializeString(expression.memberName)) - .setReceiver(serializeExpression(expression.receiver)) - - return proto.build() - } - - private fun serializeDynamicOperatorExpression(expression: IrDynamicOperatorExpression): IrKlibProtoBuf.IrDynamicOperatorExpression { - val proto = IrKlibProtoBuf.IrDynamicOperatorExpression.newBuilder() - .setOperator(serializeDynamicOperator(expression.operator)) - .setReceiver(serializeExpression(expression.receiver)) - - expression.arguments.forEach { proto.addArgument(serializeExpression(it)) } - - return proto.build() - } - - private fun serializeDynamicOperator(operator: IrDynamicOperator) = when (operator) { - IrDynamicOperator.UNARY_PLUS -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.UNARY_PLUS - IrDynamicOperator.UNARY_MINUS -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.UNARY_MINUS - - IrDynamicOperator.EXCL -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EXCL - - IrDynamicOperator.PREFIX_INCREMENT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.PREFIX_INCREMENT - IrDynamicOperator.PREFIX_DECREMENT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.PREFIX_DECREMENT - - IrDynamicOperator.POSTFIX_INCREMENT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.POSTFIX_INCREMENT - IrDynamicOperator.POSTFIX_DECREMENT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.POSTFIX_DECREMENT - - IrDynamicOperator.BINARY_PLUS -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.BINARY_PLUS - IrDynamicOperator.BINARY_MINUS -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.BINARY_MINUS - IrDynamicOperator.MUL -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.MUL - IrDynamicOperator.DIV -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.DIV - IrDynamicOperator.MOD -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.MOD - - IrDynamicOperator.GT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.GT - IrDynamicOperator.LT -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.LT - IrDynamicOperator.GE -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.GE - IrDynamicOperator.LE -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.LE - - IrDynamicOperator.EQEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EQEQ - IrDynamicOperator.EXCLEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EXCLEQ - - IrDynamicOperator.EQEQEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EQEQEQ - IrDynamicOperator.EXCLEQEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EXCLEQEQ - - IrDynamicOperator.ANDAND -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.ANDAND - IrDynamicOperator.OROR -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.OROR - - IrDynamicOperator.EQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.EQ - IrDynamicOperator.PLUSEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.PLUSEQ - IrDynamicOperator.MINUSEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.MINUSEQ - IrDynamicOperator.MULEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.MULEQ - IrDynamicOperator.DIVEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.DIVEQ - IrDynamicOperator.MODEQ -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.MODEQ - - IrDynamicOperator.ARRAY_ACCESS -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.ARRAY_ACCESS - - IrDynamicOperator.INVOKE -> IrKlibProtoBuf.IrDynamicOperatorExpression.IrDynamicOperator.INVOKE - } - private fun serializeBreak(expression: IrBreak): IrKlibProtoBuf.IrBreak { val proto = IrKlibProtoBuf.IrBreak.newBuilder() val label = expression.label?.let { serializeString(it) } @@ -794,8 +743,6 @@ internal class IrModuleSerializer( is IrVararg -> operationProto.vararg = serializeVararg(expression) is IrWhen -> operationProto.`when` = serializeWhen(expression) is IrWhileLoop -> operationProto.`while` = serializeWhile(expression) - is IrDynamicMemberExpression -> operationProto.dynamicMember = serializeDynamicMemberExpression(expression) - is IrDynamicOperatorExpression -> operationProto.dynamicOperator = serializeDynamicOperatorExpression(expression) else -> { TODO("Expression serialization not implemented yet: ${ir2string(expression)}.") } @@ -1127,7 +1074,7 @@ internal class IrModuleSerializer( fun serializeModule(module: IrModuleFragment): IrKlibProtoBuf.IrModule { val proto = IrKlibProtoBuf.IrModule.newBuilder() .setName(serializeString(module.name.toString())) - + module.addSyntheticDynamicFile() module.files.forEach { proto.addFile(serializeIrFile(it)) } @@ -1146,6 +1093,31 @@ internal class IrModuleSerializer( return proto.build() } + private val dynamicPackage = KnownPackageFragmentDescriptor(builtIns.builtInsModule, FqName("kotlin.js.dynamic")) + private lateinit var dynamicFile: IrFile + + private fun IrModuleFragment.addSyntheticDynamicFile() { + dynamicFile = IrFileImpl(object : SourceManager.FileEntry { + override val name = Namer.DYNAMIC_FILE_NAME + override val maxOffset = UNDEFINED_OFFSET + + override fun getSourceRangeInfo(beginOffset: Int, endOffset: Int) = + SourceRangeInfo( + "", + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + UNDEFINED_OFFSET, + UNDEFINED_OFFSET + ) + + override fun getLineNumber(offset: Int) = UNDEFINED_OFFSET + override fun getColumnNumber(offset: Int) = UNDEFINED_OFFSET + }, dynamicPackage) + files += dynamicFile + } + fun serializedIrModule(module: IrModuleFragment): SerializedIr { val moduleHeader = serializeModule(module).toByteArray() return SerializedIr(moduleHeader, topLevelDeclarations, declarationTable.debugIndex) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/SerializeDescriptorReference.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/SerializeDescriptorReference.kt index 00a523f1db9..88e0aeaa5c3 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/SerializeDescriptorReference.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/SerializeDescriptorReference.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.resolve.descriptorUtil.classId -class DescriptorReferenceSerializer(val declarationTable: DeclarationTable) { +class DescriptorReferenceSerializer(val declarationTable: DeclarationTable, val serializeString: (String) -> IrKlibProtoBuf.String) { // Not all exported descriptors are deserialized, some a synthesized anew during metadata deserialization. // Those created descriptors can't carry the uniqIdIndex, since it is available only for deserialized descriptors. @@ -72,9 +72,9 @@ class DescriptorReferenceSerializer(val declarationTable: DeclarationTable) { uniqId?.let { declarationTable.descriptors.put(discoverableDescriptorsDeclaration.descriptor, it) } val proto = IrKlibProtoBuf.DescriptorReference.newBuilder() - .setPackageFqName(packageFqName) - .setClassFqName(classFqName) - .setName(descriptor.name.toString()) + .setPackageFqName(serializeString(packageFqName)) + .setClassFqName(serializeString(classFqName)) + .setName(serializeString(descriptor.name.toString())) if (uniqId != null) proto.setUniqId(protoUniqId(uniqId)) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/ir.proto b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/ir.proto index 953bdb32e37..8777b53c5fa 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/ir.proto +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/ir.proto @@ -5,9 +5,9 @@ option java_outer_classname = "IrKlibProtoBuf"; option optimize_for = LITE_RUNTIME; message DescriptorReference { - required string package_fq_name = 1; - required string class_fq_name = 2; - required string name = 3; + required String package_fq_name = 1; + required String class_fq_name = 2; + required String name = 3; optional UniqId uniq_id = 4; optional bool is_getter = 5 [default = false]; optional bool is_setter = 6 [default = false]; @@ -28,28 +28,85 @@ message Coordinates { required int32 end_offset = 2; } +message Visibility { + required String name = 1; +} + +message IrStatementOrigin { + required String name = 1; +} + +enum KnownOrigin { + CUSTOM = 1; + DEFINED = 2; + FAKE_OVERRIDE = 3; + FOR_LOOP_ITERATOR = 4; + FOR_LOOP_VARIABLE = 5; + FOR_LOOP_IMPLICIT_VARIABLE = 6; + PROPERTY_BACKING_FIELD = 7; + DEFAULT_PROPERTY_ACCESSOR = 8; + DELEGATE = 9; + DELEGATED_PROPERTY_ACCESSOR = 10; + DELEGATED_MEMBER = 11; + ENUM_CLASS_SPECIAL_MEMBER = 12; + FUNCTION_FOR_DEFAULT_PARAMETER = 13; + FILE_CLASS = 14; + GENERATED_DATA_CLASS_MEMBER = 15; + GENERATED_INLINE_CLASS_MEMBER = 16; + LOCAL_FUNCTION_FOR_LAMBDA = 17; + CATCH_PARAMETER = 19; + INSTANCE_RECEIVER = 20; + PRIMARY_CONSTRUCTOR_PARAMETER = 21; + IR_TEMPORARY_VARIABLE = 22; + IR_EXTERNAL_DECLARATION_STUB = 23; + IR_EXTERNAL_JAVA_DECLARATION_STUB = 24; + IR_BUILTINS_STUB = 25; + BRIDGE = 26; + FIELD_FOR_ENUM_ENTRY = 27; + FIELD_FOR_ENUM_VALUES = 28; + FIELD_FOR_OBJECT_INSTANCE = 29; +} + +message IrDeclarationOrigin { + oneof either { + KnownOrigin origin = 1; + String custom = 2; + } +} + /* ------ Top Level---------------------------------------------- */ message IrDeclarationContainer { repeated IrDeclaration declaration = 1; } -message FileEntry { // TODO: extend me. - required string name = 1; +message FileEntry { + required String name = 1; + repeated int32 line_start_offsets = 2; } message IrFile { repeated UniqId declaration_id = 1; required FileEntry file_entry = 2; - // TODO: we need a better string management. See metadata serialization as an example. - required string fq_name = 3; + required String fq_name = 3; } message IrModule { - required string name = 1; + required String name = 1; repeated IrFile file = 2; required IrSymbolTable symbol_table = 3; required IrTypeTable type_table = 4; + required StringTable string_table = 5; +} + +/* ------ String Table ------------------------------------------ */ + +message String { + required int32 index = 1; +} + +message StringTable { + repeated string strings = 1; } /* ------ IrSymbols --------------------------------------------- */ @@ -74,7 +131,7 @@ message IrSymbolData { required IrSymbolKind kind = 1; required UniqId uniq_id = 2; required UniqId top_level_uniq_id = 3; - optional string fqname = 4; + optional String fqname = 4; optional DescriptorReference descriptor_reference = 5; } @@ -153,7 +210,7 @@ message IrTypeIndex { message IrBreak { required int32 loop_id = 1; - optional string label = 2; + optional String label = 2; } message IrBlock { @@ -183,7 +240,7 @@ message IrCall { message IrFunctionReference { required IrSymbol symbol = 1; - optional string origin = 2; + optional IrStatementOrigin origin = 2; required MemberAccessCommon member_access = 3; } @@ -192,8 +249,9 @@ message IrPropertyReference { optional IrSymbol field = 1; optional IrSymbol getter = 2; optional IrSymbol setter = 3; - optional string origin = 4; + optional IrStatementOrigin origin = 4; required MemberAccessCommon member_access = 5; + optional DescriptorReference descriptor = 6; // IrProperty doesn't have a symbol at all. Preserve this rudiment for now. } message IrComposite { @@ -216,13 +274,13 @@ message IrConst { int64 long = 7; float float = 8; double double = 9; - string string = 10; + String string = 10; } } message IrContinue { required int32 loop_id = 1; - optional string label = 2; + optional String label = 2; } message IrDelegatingConstructorCall { @@ -272,7 +330,7 @@ message IrInstanceInitializerCall { message Loop { required int32 loop_id = 1; required IrExpression condition = 2; - optional string label = 3; + optional String label = 3; optional IrExpression body = 4; } @@ -411,8 +469,8 @@ message IrFunction { } message IrFunctionBase { - required string name = 1; - required string visibility = 2; + required String name = 1; + required Visibility visibility = 2; required bool is_inline = 3; required bool is_external = 4; required IrTypeParameterContainer type_parameters = 5; @@ -433,8 +491,8 @@ message IrConstructor { message IrField { required IrSymbol symbol = 1; optional IrExpression initializer = 2; - required string name = 3; - required string visibility = 4; + required String name = 3; + required Visibility visibility = 4; required bool is_final = 5; required bool is_external = 6; required bool is_static = 7; @@ -443,8 +501,8 @@ message IrField { message IrProperty { optional DescriptorReference descriptor = 1; // IrProperty doesn't have a symbol at all. Preserve this rudiment for now. - required string name = 2; - required string visibility = 3; + required String name = 2; + required Visibility visibility = 3; required ModalityKind modality = 4; required bool is_var = 5; required bool is_const = 6; @@ -457,7 +515,7 @@ message IrProperty { } message IrVariable { - required string name = 1; + required String name = 1; required IrSymbol symbol = 2; required IrTypeIndex type = 3; required bool is_var = 4; @@ -484,7 +542,7 @@ enum ModalityKind { // It is ModalityKind to not clash with Modality in descript message IrValueParameter { required IrSymbol symbol = 1; - required string name = 2; + required String name = 2; required int32 index = 3; required IrTypeIndex type = 4; optional IrTypeIndex vararg_element_type = 5; @@ -495,7 +553,7 @@ message IrValueParameter { message IrTypeParameter { required IrSymbol symbol = 1; - required string name = 2; + required String name = 2; required int32 index = 3; required IrTypeVariance variance = 4; repeated IrTypeIndex super_type = 5; @@ -508,9 +566,9 @@ message IrTypeParameterContainer { message IrClass { required IrSymbol symbol = 1; - required string name = 2; + required String name = 2; required ClassKind kind = 3; - required string visibility = 4; + required Visibility visibility = 4; required ModalityKind modality = 5; // TODO: consider using flags for the booleans. required bool is_companion = 6; @@ -528,7 +586,7 @@ message IrEnumEntry { required IrSymbol symbol = 1; optional IrExpression initializer = 2; optional IrDeclaration corresponding_class = 3; - required string name = 4; + required String name = 4; } message IrAnonymousInit { @@ -554,17 +612,11 @@ message IrDeclarator { } } -message IrDeclarationOrigin { - required string name = 1; -} - message IrDeclaration { required IrDeclarationOrigin origin = 1; required Coordinates coordinates = 2; required Annotations annotations = 3; required IrDeclarator declarator = 4; - //repeated IrDeclaration nested = 5; - required string file_name = 5; // TODO: files should be communicated some other way, I suppose. } /* ------- IrStatements --------------------------------------------- */ diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyDeclarationBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyDeclarationBase.kt index 95ccace5a4d..e8d48c128a7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyDeclarationBase.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyDeclarationBase.kt @@ -58,6 +58,7 @@ abstract class IrLazyDeclarationBase( val containingDeclaration = ((currentDescriptor as? PropertyAccessorDescriptor)?.correspondingProperty ?: currentDescriptor).containingDeclaration + return when (containingDeclaration) { is PackageFragmentDescriptor -> stubGenerator.generateOrGetEmptyExternalPackageFragmentStub(containingDeclaration).also { it.declarations.add(this) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt index 29d4f688328..0134209acf0 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBuiltIns.kt @@ -15,9 +15,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl -import org.jetbrains.kotlin.ir.types.IrSimpleType -import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl +import org.jetbrains.kotlin.ir.types.toIrType import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl @@ -98,8 +96,8 @@ class IrBuiltIns( builtIns.nothing to IrTypeMapper({ nothingType }, { nothingNType }), builtIns.unit to IrTypeMapper({ unitType }, { buildNullableType(unitType) }), builtIns.string to IrTypeMapper({ stringType }, { buildNullableType(stringType) }), - builtIns.throwable to IrTypeMapper({ throwableType }, { buildNullableType(throwableType) }) -// builtIns.array to { arrayClass.owner.defaultType } + builtIns.throwable to IrTypeMapper({ throwableType }, { buildNullableType(throwableType) }), + builtIns.array to IrTypeMapper({ arrayType }, { buildNullableType(arrayType) }) ) fun getPrimitiveTypeOrNullByDescriptor(descriptor: ClassifierDescriptor, isNullable: Boolean) = @@ -165,6 +163,7 @@ class IrBuiltIns( val collectionClass by lazy { builtIns.collection.toIrSymbol() } + val arrayType by lazy { builtIns.array.toIrType(symbolTable = symbolTable) } val arrayClass by lazy { builtIns.array.toIrSymbol() } val throwableType by lazy { builtIns.throwable.defaultType.toIrType() } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt index 8fdf0c5c69a..515a04dd522 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt @@ -70,6 +70,7 @@ fun IrType.makeNullable(addKotlinType:Boolean = true) = else this +// TODO: get rid of this var irTypeKotlinBuiltIns: KotlinBuiltIns? = null fun IrType.toKotlinType(): KotlinType {