Multiplicación de Kotlin entre los errores de flotación que aceptan nulos y los que no admiten nulos incluso con verificación nula

Estoy portando una class llamada ShapeData de Java que está llena de types que ShapeData . Se parece a esto:

 class ShapeData { var type: Shape.Type? = null // Circle, Edge, Polygon, Chain // PolygonShape / ChainShape var vertices: FloatArray? = null var offset: Int? = null var len: Int? = null // setAsBox var hx: Float? = null var hy: Float? = null var center: Vector2? = null var angle: Int? = null // CircleShape var radius: Float? = null var position: Vector2? = null // EdgeShape var v1: Vector2? = null var v2: Vector2? = null } 

Estas properties son anulables porque se leen de JSON y pueden no existir, y dado que ciertos campos permiten valores negativos -1 no es un valor pnetworkingeterminado válido.

Ciertas properties deben escalarse si existen, por lo que estoy convirtiendo un método previamente estático en una function de nivel superior de Kotlin, sin embargo, me he encontrado con un problema:

 fun scaledShapeData(data: ShapeData, scalar: Float): ShapeData { return ShapeData().apply { type = data.type vertices = data.vertices?.map { it * scalar }?.toFloatArray() offset = data.offset len = data.len hx = if(data.hx != null) data.hx * scalar else null // This is marked as an error with "None of the following functions can be called with the arguments supplied" message } } 

El post preciso que recibo es este (image desde Android Studio no me permite seleccionar y copyr el post):

advertencia kotlin / mensaje de error

También intenté replicar esto en el patio de Kotlin con esta pieza de código:

 fun main(args: Array<String>) { var test1 : Float? = 2f val test2 : Float = 2f var test3 : Float? = if(test1 != null) test1 * test2 else null print(test3) } 

Y esto comstack y saca 4.0 como se esperaba. Por lo que puedo ver, las dos muestras de código son casi idénticas.

¿Qué estoy haciendo exactamente mal y cómo puedo solucionarlo?