4E2002: ARC diff window crashes viewing a companion file

Originator:matt
Number:rdar://11597820 Date Originated:05-Jun-2012 10:53 AM
Status:Open Resolved:
Product:Developer Tools Product Version:4.3.2 (4E2002)
Classification:Crash / Data Loss Reproducible:Always
 
05-Jun-2012 10:53 AM Matt Drance:
Summary:
Xcode 4.3.2 (11E53) throws an assertion failure in +[DVTFilePath filePathForFileURL:]  when attempting to view a companion file from the ARC migration diff window.

Steps to Reproduce:
1) Create a new Single-View iOS Application WITHOUT ARC in Xcode.
2) Edit > Refactor > Convert to Objective-C ARC…
3) Hit Continue / Next until you see the migration diff UI (it will likely show FooAppDelegate.m)
4) In the path control at the top of the diff sheet, click on FooAppDelegate.m and select FooAppDelegate.h. See the attached screenshot for a demonstration

Expected Results:
I was expecting to see either the file I selected, or an explanation of why viewing the file isn't applicable or possible at this time.

Actual Results:
Assertion failure. See attached log.

Regression:
4E2002 on 11E53

Notes:
I unfortunately did not discover this with an empty project. I discovered it with an enormous project in which I had spent more than two hours inspecting and tweaking the pending migration diffs. This is a brutal situation, specifically because (as far as I know) there is no way to save or snapshot your edits to pending changes. I will now have to make those changes all over again, from the beginning.

If the ARC diff tool doesn't support peeking at a companion file, whether because said file is not subject to migration or for some other reason, that's perfectly fine. But it shouldn't be a front-and-center option in the UI if that's the case.

There are plenty of reasons one would want to inspect a companion file during this process: to better understand the impact of the proposed changes; to simply remember what on earth you were thinking when you last looked at the code one or more years ago, etc. I think it's an important piece of functionality, but for now I'll just take no crashes. Please let me know if enabling this behavior for real warrants a separate bug report.

Comments


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!