JVM_IR: specify correct type for defaultConstructorMarker arguments
This commit is contained in:
+2
-1
@@ -368,8 +368,9 @@ open class DefaultParameterInjector(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (expression.symbol is IrConstructorSymbol) {
|
if (expression.symbol is IrConstructorSymbol) {
|
||||||
|
val defaultArgumentMarker = context.ir.symbols.defaultConstructorMarker
|
||||||
params += markerParameterDeclaration(realFunction) to
|
params += markerParameterDeclaration(realFunction) to
|
||||||
IrConstImpl.constNull(startOffset, endOffset, context.irBuiltIns.nothingNType)
|
IrConstImpl.constNull(startOffset, endOffset, defaultArgumentMarker.owner.defaultType.makeNullable())
|
||||||
} else if (context.ir.shouldGenerateHandlerParameterForDefaultBodyFun()) {
|
} else if (context.ir.shouldGenerateHandlerParameterForDefaultBodyFun()) {
|
||||||
params += realFunction.valueParameters.last() to
|
params += realFunction.valueParameters.last() to
|
||||||
IrConstImpl.constNull(startOffset, endOffset, context.irBuiltIns.nothingNType)
|
IrConstImpl.constNull(startOffset, endOffset, context.irBuiltIns.nothingNType)
|
||||||
|
|||||||
+2
-1
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.ir.symbols.*
|
|||||||
import org.jetbrains.kotlin.ir.types.classOrNull
|
import org.jetbrains.kotlin.ir.types.classOrNull
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrNull
|
import org.jetbrains.kotlin.ir.types.classifierOrNull
|
||||||
import org.jetbrains.kotlin.ir.types.isSubtypeOfClass
|
import org.jetbrains.kotlin.ir.types.isSubtypeOfClass
|
||||||
|
import org.jetbrains.kotlin.ir.types.makeNullable
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
||||||
@@ -329,7 +330,7 @@ internal class SyntheticAccessorLowering(val context: JvmBackendContext) : IrEle
|
|||||||
IrConstImpl.constNull(
|
IrConstImpl.constNull(
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET,
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET,
|
||||||
context.ir.symbols.defaultConstructorMarker.owner.defaultType
|
context.ir.symbols.defaultConstructorMarker.owner.defaultType.makeNullable()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
class A (i: Int = 0)
|
class A (i: Int = 0)
|
||||||
|
|
||||||
// 0 ATHROW
|
// 0 ATHROW
|
||||||
|
// 0 CHECKCAST
|
||||||
Reference in New Issue
Block a user