Por que não consigo usar a sintaxe curta do construtor Array ao criar uma matriz de uma estrutura aninhada? [duplicado]

Esta pergunta já tem uma resposta aqui:

Matriz do tipo aninhado: por que o compilador se queixa? 3 respostas

Considere uma estrutura aninhada dentro de outra estrutura:

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

Eu quero criar uma matriz deStruct2 valores. No começo eu tentei:

var struct2Array = [Struct1.Struct2]()

Mas isso dá o erro do compilador:

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

Eu posso criar uma matriz declarando o tipo da variável e usando uma matriz vazia, ou com a sintaxe mais detalhada:

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

Mas por que não posso usar o inicializador abreviado para um Struct aninhado?

questionAnswers(1)

yourAnswerToTheQuestion