¿Por qué no puedo usar la sintaxis corta del constructor de matrices al crear una matriz de una estructura anidada? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Matriz de tipo anidado: ¿por qué se queja el compilador? 3 respuestas

Considere una estructura anidada dentro de otra estructura:

struct Struct1 {
    struct Struct2 {
        var name: String?
    }
}

Quiero crear una serie deStruct2 valores. Al principio intenté:

var struct2Array = [Struct1.Struct2]()

Pero esto da el error del compilador:

error: invalid use of '()' to call a value of non-function type '[Struct1.Struct2.Type]'
var struct2Array = [Struct1.Struct2]()

Puedo crear una matriz declarando el tipo de la variable y usando una matriz vacía, o con la sintaxis más detallada:

var struct2Array: [Struct1.Struct2] = []
var struct2ArrayVerbose = Array<Struct1.Struct2>()

Pero, ¿por qué no puedo usar el inicializador abreviado para un Struct anidado?

Respuestas a la pregunta(1)

Su respuesta a la pregunta