Hi,

If I declare a variable and initialize it with an array literal whose elements 
are integer literals and nil literals,
the compiler will infer the type Array<Optional<Int>> for that variable:

let arr = [1, nil, 3]
print(type(of: arr))    // Array<Optional<Int>>

However, that only works with nominal types such as Int and String. If I do the 
same thing with an array of tuples,
I get a compile error:

let arr = [(1, false), nil, (3, true)]          // error: type of expression is 
ambiguous without more context
print(type(of: arr))

Why can't the compiler infer the type Array<Optional<(Int, Bool)>> in this 
example? Is there a reason for this or is it a bug?

Thanks and best regards,
Toni

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to