What does the direct call do differently from the safe call?

from Extensions
Kotlin 2.4.10 intermediate 2 min

What does the direct call do differently from the safe call?

kotlin
fun String?.orLabel(): String = this ?: "missing"

fun main() {
    val label: String? = null

    println(label.orLabel())
    println(label?.orLabel())
}
Open in playground
Report an error