Removed useless as casts from compiler code
It allows compiling code with K2 and enabled `-Werror`
This commit is contained in:
committed by
Space Team
parent
d50c6f1b6d
commit
1827df82c4
+7
-7
@@ -7,23 +7,24 @@ package org.jetbrains.kotlin.backend.konan.descriptors
|
||||
|
||||
import llvm.LLVMABIAlignmentOfType
|
||||
import llvm.LLVMABISizeOfType
|
||||
import llvm.LLVMPreferredAlignmentOfType
|
||||
import llvm.LLVMStoreSizeOfType
|
||||
import org.jetbrains.kotlin.backend.common.lower.coroutines.getOrCreateFunctionWithContinuationStub
|
||||
import org.jetbrains.kotlin.backend.konan.*
|
||||
import org.jetbrains.kotlin.backend.konan.ir.*
|
||||
import org.jetbrains.kotlin.backend.konan.ir.getSuperClassNotAny
|
||||
import org.jetbrains.kotlin.backend.konan.ir.isSpecialClassWithNoSupertypes
|
||||
import org.jetbrains.kotlin.backend.konan.llvm.CodegenLlvmHelpers
|
||||
import org.jetbrains.kotlin.backend.konan.llvm.computeFunctionName
|
||||
import org.jetbrains.kotlin.backend.konan.llvm.toLLVMType
|
||||
import org.jetbrains.kotlin.backend.konan.llvm.localHash
|
||||
import org.jetbrains.kotlin.backend.konan.llvm.toLLVMType
|
||||
import org.jetbrains.kotlin.backend.konan.lower.bridgeTarget
|
||||
import org.jetbrains.kotlin.backend.konan.serialization.KonanIrLinker
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrClassReference
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||
import org.jetbrains.kotlin.ir.objcinterop.*
|
||||
import org.jetbrains.kotlin.ir.objcinterop.canObjCClassMethodBeCalledVirtually
|
||||
import org.jetbrains.kotlin.ir.objcinterop.isKotlinObjCClass
|
||||
import org.jetbrains.kotlin.ir.objcinterop.isObjCClassMethod
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
@@ -470,8 +471,7 @@ internal class ClassLayoutBuilder(val irClass: IrClass, val context: Context) {
|
||||
irClass.annotations.forEach {
|
||||
val irFile = irClass.fileOrNull
|
||||
|
||||
val annotationClass = (it.symbol.owner as? IrConstructor)?.constructedClass
|
||||
?: error(irFile, it, "unexpected annotation")
|
||||
val annotationClass = it.symbol.owner.constructedClass
|
||||
|
||||
if (annotationClass.hasAnnotation(RuntimeNames.associatedObjectKey)) {
|
||||
val argument = it.getValueArgument(0)
|
||||
|
||||
+2
-10
@@ -51,8 +51,6 @@ import org.jetbrains.kotlin.konan.library.KonanLibrary
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.native.interop.ObjCMethodInfo
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
|
||||
internal class InteropLowering(generationState: NativeGenerationState) : FileLoweringPass {
|
||||
// TODO: merge these lowerings.
|
||||
@@ -1034,11 +1032,7 @@ private class InteropTransformer(
|
||||
if (!function.isFromInteropLibrary()) return null
|
||||
if (!function.isGetter) return null
|
||||
|
||||
val constantProperty = (function as? IrSimpleFunction)
|
||||
?.correspondingPropertySymbol
|
||||
?.owner
|
||||
?.takeIf { it.isConst }
|
||||
?: return null
|
||||
val constantProperty = function.correspondingPropertySymbol?.owner?.takeIf { it.isConst } ?: return null
|
||||
|
||||
val initializer = constantProperty.backingField?.initializer?.expression
|
||||
require(initializer is IrConst<*>) { renderCompilerError(expression) }
|
||||
@@ -1088,9 +1082,7 @@ private class InteropTransformer(
|
||||
builder.at(expression)
|
||||
val function = expression.symbol.owner
|
||||
|
||||
if ((function as? IrSimpleFunction)?.resolveFakeOverrideMaybeAbstract()?.symbol
|
||||
== symbols.interopNativePointedRawPtrGetter) {
|
||||
|
||||
if (function.resolveFakeOverrideMaybeAbstract()?.symbol == symbols.interopNativePointedRawPtrGetter) {
|
||||
// Replace by the intrinsic call to be handled by code generator:
|
||||
return builder.irCall(symbols.interopNativePointedGetRawPointer).apply {
|
||||
extensionReceiver = expression.dispatchReceiver
|
||||
|
||||
+1
-3
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.*
|
||||
import org.jetbrains.kotlin.ir.objcinterop.*
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.util.irCall
|
||||
|
||||
internal fun Context.getObjectClassInstanceFunction(clazz: IrClass) = mapping.objectInstanceGetter.getOrPut(clazz) {
|
||||
when {
|
||||
@@ -159,8 +158,7 @@ internal class ObjectClassLowering(val generationState: NativeGenerationState) :
|
||||
val statements = this.body?.statements ?: return false
|
||||
if (statements.isEmpty()) return false
|
||||
val constructorCall = statements[0] as? IrDelegatingConstructorCall ?: return false
|
||||
val constructor = constructorCall.symbol.owner as? IrConstructor ?: return false
|
||||
if (!constructor.constructedClass.isAny()) return false
|
||||
if (!constructorCall.symbol.owner.constructedClass.isAny()) return false
|
||||
return statements.asSequence().drop(1).all {
|
||||
it is IrBlock && it.origin == IrStatementOrigin.INITIALIZE_FIELD
|
||||
}
|
||||
|
||||
+1
-2
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.backend.konan.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.BodyLoweringPass
|
||||
import org.jetbrains.kotlin.backend.common.ir.Symbols
|
||||
import org.jetbrains.kotlin.backend.common.lower.at
|
||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||
import org.jetbrains.kotlin.backend.konan.Context
|
||||
@@ -83,7 +82,7 @@ internal class PostInlineLowering(val context: Context) : BodyLoweringPass {
|
||||
val builder = StringBuilder()
|
||||
args.elements.forEach {
|
||||
require(it is IrConst<*>) { renderCompilerError(irFile, it, "expected const") }
|
||||
val value = (it as? IrConst<*>)?.value
|
||||
val value = it.value
|
||||
require(value is Short && value >= 0 && value <= 0xff) {
|
||||
renderCompilerError(irFile, it, "incorrect value for binary data: $value")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user