Swift: Covariant array assignment crashes at runtime with EXC_BAD_ACCESS error

Originator:adrian.kashivskyy
Number:rdar://17894354 Date Originated:02-Aug-2014 11:52 AM
Status:Closed/Duplicate Resolved:Yes
Product:Developer Tools Product Version:Xcode 6.0 Beta 4 (6A267n)
Classification:Other Bug Reproducible:Always
 
Summary:
Covariant array assignment doesn't work as expected in Swift – it should either be prevented at compile-time or work properly at runtime.

In Xcode6-Beta4, things like

    let array : [MyProtocol] = [MyClass()] as [MyClass] // MyClass conforms to MyProtocol

should work without any error, since MyClass is a subtype of MyProtocol.

Yet doing such operation ends up with a runtime EXC_BAD_ACCESS error.

Steps to Reproduce:
1. Install Xcode6-Beta4
2. Open the attached "covariant-array-assignment.playground" file
3. Execute the playground

Expected Results:
No runtime error, console displaying "1" (the array's count)

Actual Results:
Runtime EXC_BAD_ACCESS error, console displaying the backtrace (attached as "error-backtrace.log" for reference)

Version:
Xcode 6.0 Beta 4 (6A267n)
OS X 10.9.4 (13E28)
MacPro5,1

Notes:
Related Apple Developer Forums thread: https://devforums.apple.com/message/1015772

Configuration:
Issue is always reproducible, on any installation of Xcode6-Beta4 (6A267n)

Attachments:
'error-backtrace.log' and 'covariant-array-assignment.playground.zip' were successfully uploaded.

--- 28-Aug-2014 07:54 PM

I noticed that the uploaded playground file is damaged. Here is a link to the valid archive.

http://cl.ly/3j0a2b2t2D3K/download/rdar-17894354.zip

--- 22-Jan-2015 05:43 AM / ADR

Engineering has determined that your bug report is a duplicate of another issue and will be closed. 

18480439

Comments

Attachments

http://cl.ly/3j0a2b2t2D3K/download/rdar-17894354.zip

By adrian.kashivskyy at Aug. 2, 2014, 9:59 a.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!