Swift: conversión del compilador de tipo a tipo opcional

Parece que el compilador convierte automáticamente un tipo en un tipo opcional cuando es necesario, a pesar de que aquí no hay una relación de herencia.

¿En qué parte de la documentación se especifica este comportamiento?

func test(value: String?) {
    // String passed in is now an optional String instead.
    print(value ?? "")
}

// Pass an actual string
test(value: "test")

Respuestas a la pregunta(1)

Su respuesta a la pregunta