From 8c30ae38b6cc5b9da20d872073833f5f84a065e2 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Thu, 30 Mar 2017 14:41:27 +0300 Subject: [PATCH] Serializer warning cleanup. --- .../serialization/IrDescriptorDeserializer.kt | 14 +++++----- .../serialization/IrDescriptorSerializer.kt | 4 +-- .../serialization/KonanClassDataFinder.kt | 1 - .../backend/konan/serialization/KonanIr.proto | 2 +- .../serialization/KonanPackageFragment.kt | 2 +- .../serialization/KonanSerializerExtension.kt | 22 +++++++-------- .../LocalDeclarationDeserializer.kt | 2 +- .../konan/serialization/SerializeIr.kt | 27 +++++++++---------- 8 files changed, 35 insertions(+), 39 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorDeserializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorDeserializer.kt index 32a86bd401a..6643b452282 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorDeserializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorDeserializer.kt @@ -81,7 +81,7 @@ internal class IrDescriptorDeserializer(val context: Context, val index = proto.getIndex() val text = proto.getDebugText() - val typeProto = localDeserializer.typeTable!![index] + val typeProto = localDeserializer.typeTable[index] val type = localDeserializer.deserializeInlineType(typeProto) context.log("### deserialized Kotlin Type index=$index, text=$text:\t$type") @@ -313,7 +313,7 @@ internal class IrDescriptorDeserializer(val context: Context, } fun parentByFqNameIndex(index: Int): DeclarationDescriptor { - val module = context.moduleDescriptor!! + val module = context.moduleDescriptor val parent = nameResolver.getDescriptorByFqNameIndex(module, nameTable, index) return parent @@ -327,7 +327,7 @@ internal class IrDescriptorDeserializer(val context: Context, KotlinDescriptor.Kind.CLASS -> { val parentScope = parentMemberScopeByFqNameIndex(classOrPackage) - val clazz = parentScope.getContributedClassifier( + val clazz = parentScope.getContributedClassifier( Name.identifier(name), NoLookupLocation.FROM_BACKEND) return listOf(clazz!!) @@ -351,10 +351,10 @@ internal class IrDescriptorDeserializer(val context: Context, fun selectFunction( functions: Collection, - proto: KonanIr.KotlinDescriptor ): + descriptorProto: KonanIr.KotlinDescriptor): DeserializedSimpleFunctionDescriptor { - val originalIndex = proto.originalIndex + val originalIndex = descriptorProto.originalIndex return functions.single() { val proto = (it as DeserializedSimpleFunctionDescriptor).proto proto.getExtension(KonanLinkData.functionIndex) == originalIndex @@ -363,10 +363,10 @@ internal class IrDescriptorDeserializer(val context: Context, fun selectConstructor( constructors: Collection, - proto: KonanIr.KotlinDescriptor): + descriptorProto: KonanIr.KotlinDescriptor): DeserializedClassConstructorDescriptor { - val originalIndex = proto.originalIndex + val originalIndex = descriptorProto.originalIndex return constructors.single { val proto = (it as DeserializedClassConstructorDescriptor).proto proto.getExtension(KonanLinkData.constructorIndex) == originalIndex diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt index ffd4686244e..6088ab1058a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/IrDescriptorSerializer.kt @@ -40,7 +40,7 @@ internal class IrDescriptorSerializer( var rootFunction: FunctionDescriptor) { fun serializeKotlinType(type: KotlinType): KonanIr.KotlinType { - val index = this.typeSerializer!!(type) + val index = this.typeSerializer(type) val proto = KonanIr.KotlinType.newBuilder() .setIndex(index) .setDebugText(type.toString()) @@ -94,7 +94,7 @@ internal class IrDescriptorSerializer( proto.setExtensionReceiverIndex( descriptorTable.indexByValue(extensionReceiver)) proto.setExtensionReceiverType( - serializeKotlinType(extensionReceiver.type!!)) + serializeKotlinType(extensionReceiver.type)) } proto.setType(serializeKotlinType( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanClassDataFinder.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanClassDataFinder.kt index 78d56772051..9a9aeb91d85 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanClassDataFinder.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanClassDataFinder.kt @@ -36,7 +36,6 @@ class KonanClassDataFinder( ) : ClassDataFinder { override fun findClassData(classId: ClassId): ClassDataWithSource? { val proto = fragment.classes - val classList = proto.getClassesList() val nameList = proto.getClassNameList() val index = nameList.indexOfFirst({ diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto index d434ce8b27c..24f13fd2b78 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIr.proto @@ -252,7 +252,7 @@ message IrClass { } message IrEnumEntry { - optional IrExpression initializer = 1; + required IrExpression initializer = 1; optional IrDeclaration corresponding_class = 2; } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt index ba8a7821857..08a507530ba 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt @@ -53,7 +53,7 @@ class KonanPackageFragment( val proto: KonanLinkData.PackageFragment, if (!classId.isNestedClass) shortName else null } - return names ?: listOf() + return names } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt index 04be673721c..671ab53e3d6 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt @@ -49,15 +49,15 @@ internal class KonanSerializerExtension(val context: Context, val util: KonanSer override val stringTable = KonanStringTable() override fun shouldUseTypeTable(): Boolean = true - override fun serializeType(descriptor: KotlinType, proto: ProtoBuf.Type.Builder) { + override fun serializeType(type: KotlinType, proto: ProtoBuf.Type.Builder) { - proto.setExtension(KonanLinkData.typeText, descriptor.toString()) + proto.setExtension(KonanLinkData.typeText, type.toString()) - super.serializeType(descriptor, proto) + super.serializeType(type, proto) } - override fun serializeTypeParameter(descriptor: TypeParameterDescriptor, proto: ProtoBuf.TypeParameter.Builder) { - super.serializeTypeParameter(descriptor, proto) + override fun serializeTypeParameter(typeParameter: TypeParameterDescriptor, proto: ProtoBuf.TypeParameter.Builder) { + super.serializeTypeParameter(typeParameter, proto) } override fun serializeValueParameter(descriptor: ValueParameterDescriptor, proto: ProtoBuf.ValueParameter.Builder) { @@ -131,21 +131,21 @@ internal class KonanSerializerExtension(val context: Context, val util: KonanSer backingFieldClass, emptyMap(), SourceElement.NO_SOURCE) - override fun serializeProperty(property: PropertyDescriptor, proto: ProtoBuf.Property.Builder) { - val parentIndex = property.parentFqNameIndex() + override fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder) { + val parentIndex = descriptor.parentFqNameIndex() proto.setExtension(KonanLinkData.propertyParent, parentIndex) - val variable = originalVariables[property] + val variable = originalVariables[descriptor] if (variable != null) { proto.setExtension(KonanLinkData.usedAsVariable, true) proto.setExtension(KonanLinkData.propertyIndex, inlineDescriptorTable.indexByValue(variable)) } else { - proto.setExtension(KonanLinkData.propertyIndex, inlineDescriptorTable.indexByValue(property)) + proto.setExtension(KonanLinkData.propertyIndex, inlineDescriptorTable.indexByValue(descriptor)) } - super.serializeProperty(property, proto) + super.serializeProperty(descriptor, proto) - if (context.ir.propertiesWithBackingFields.contains(property)) { + if (context.ir.propertiesWithBackingFields.contains(descriptor)) { proto.addExtension(KonanLinkData.propertyAnnotation, annotationSerializer.serializeAnnotation(backingFieldAnnotation)) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/LocalDeclarationDeserializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/LocalDeclarationDeserializer.kt index 9be74ff5902..077f792d656 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/LocalDeclarationDeserializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/LocalDeclarationDeserializer.kt @@ -64,7 +64,6 @@ class LocalDeclarationDeserializer(val rootFunction: FunctionDescriptor, val mod fun getDescriptorByFqNameIndex(module: ModuleDescriptor, fqNameIndex: Int): DeclarationDescriptor { val packageName = nameResolver.getPackageFqName(fqNameIndex) - val shortName = nameResolver.getString(fqNameIndex) // Here we using internals of NameresolverImpl. val proto = nameTable.getQualifiedName(fqNameIndex) when (proto.kind) { @@ -73,6 +72,7 @@ class LocalDeclarationDeserializer(val rootFunction: FunctionDescriptor, val mod return module.findClassAcrossModuleDependencies(nameResolver.getClassId(fqNameIndex))!! QualifiedName.Kind.PACKAGE -> return module.getPackage(packageName) + else -> error("Unexpected descriptor kind.") } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt index 198466d821a..8dc1e617f55 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/SerializeIr.kt @@ -50,7 +50,7 @@ internal class IrSerializer(val context: Context, fun serializeInlineBody(): String { val declaration = context.ir.originalModuleIndex.functions[rootFunction]!! context.log("INLINE: ${ir2stringWhole(declaration)}") - return encodeDeclaration(declaration as IrFunction) + return encodeDeclaration(declaration) } fun serializeKotlinType(type: KotlinType): KonanIr.KotlinType { @@ -174,7 +174,7 @@ internal class IrSerializer(val context: Context, assert(it.varargElementType != null || it.declaresDefaultValue()) } else { - val arg = actual!! + val arg = actual val argProto = serializeExpression(arg) proto.addValueArgument(argProto) } @@ -366,7 +366,7 @@ internal class IrSerializer(val context: Context, if (label != null) { proto.setLabel(label) } - val loopId = loopIndex[expression.loop!!]!! + val loopId = loopIndex[expression.loop]!! proto.setLoopId(loopId) return proto.build() @@ -378,7 +378,7 @@ internal class IrSerializer(val context: Context, if (label != null) { proto.setLabel(label) } - val loopId = loopIndex[expression.loop!!]!! + val loopId = loopIndex[expression.loop]!! proto.setLoopId(loopId) return proto.build() @@ -490,9 +490,7 @@ internal class IrSerializer(val context: Context, fun serializeIrEnumEntry(enumEntry: IrEnumEntry): KonanIr.IrEnumEntry { val proto = KonanIr.IrEnumEntry.newBuilder() val initializer = enumEntry.initializerExpression - if (initializer != null) { - proto.setInitializer(serializeExpression(initializer)) - } + proto.setInitializer(serializeExpression(initializer)) val correspondingClass = enumEntry.correspondingClass if (correspondingClass != null) { proto.setCorrespondingClass(serializeDeclaration(correspondingClass)) @@ -566,7 +564,7 @@ internal class IrDeserializer(val context: Context, val loopIndex = mutableMapOf() - val localDeserializer = LocalDeclarationDeserializer(rootFunction, context.moduleDescriptor!!) + val localDeserializer = LocalDeclarationDeserializer(rootFunction, context.moduleDescriptor) val descriptorDeserializer = IrDescriptorDeserializer( context, descriptorIndex, rootFunction, localDeserializer) @@ -657,7 +655,7 @@ internal class IrDeserializer(val context: Context, return block } - fun deserializeMemberAccessCommon(access: IrMemberAccessExpression, descriptor: CallableDescriptor, proto: KonanIr.MemberAccessCommon) { + fun deserializeMemberAccessCommon(access: IrMemberAccessExpression, proto: KonanIr.MemberAccessCommon) { proto.valueArgumentList.mapIndexed { i, expr -> access.putValueArgument(i, deserializeExpression(expr)) @@ -689,8 +687,9 @@ internal class IrDeserializer(val context: Context, IrUnaryPrimitiveImpl(start, end, null, descriptor) KonanIr.IrCall.Primitive.BINARY -> IrBinaryPrimitiveImpl(start, end, null, descriptor) + else -> error("Unexpected primitive IrCall.") } - deserializeMemberAccessCommon(call, descriptor, proto.memberAccess) + deserializeMemberAccessCommon(call, proto.memberAccess) return call } @@ -709,14 +708,14 @@ internal class IrDeserializer(val context: Context, val call = IrDelegatingConstructorCallImpl(start, end, descriptor, typeArgs) - deserializeMemberAccessCommon(call, descriptor, proto.memberAccess) + deserializeMemberAccessCommon(call, proto.memberAccess) return call } fun deserializeEnumConstructorCall(proto: KonanIr.IrEnumConstructorCall, start: Int, end: Int, type: KotlinType): IrEnumConstructorCall { val descriptor = deserializeDescriptor(proto.getDescriptor()) as ClassConstructorDescriptor val call = IrEnumConstructorCallImpl(start, end, descriptor) - deserializeMemberAccessCommon(call, descriptor, proto.memberAccess) + deserializeMemberAccessCommon(call, proto.memberAccess) return call } @@ -991,9 +990,7 @@ internal class IrDeserializer(val context: Context, if (proto.hasCorrespondingClass()) { enumEntry.correspondingClass = deserializeDeclaration(proto.correspondingClass) as IrClass } - if (proto.hasInitializer()) { - enumEntry.initializerExpression = deserializeExpression(proto.initializer) - } + enumEntry.initializerExpression = deserializeExpression(proto.initializer) return enumEntry }