> 1. The compiler crash should never happen, obviously, so that's a bug report.

To be more clear - it doesn't matter how screwed up your source could
possibly be, the compiler must never crash.  If it does, then it's a
bug in the compiler.

It's quite likely that a slightly more subtle problem in your source
would result in incorrect machine code generation.  I've actually seen
that happen.  In my case I knew I was getting bad machine code;
increasing the number of characters in certain symbol names lead to
the MPW C compiler setting my Mac up the bomb.
Michael David Crawford, Consulting Software Engineer
mdcrawf...@gmail.com
http://www.warplife.com/mdc/

   Available for Software Development in the Portland, Oregon Metropolitan
Area.


On Wed, Apr 29, 2015 at 10:22 AM, Quincey Morris
<quinceymor...@rivergatesoftware.com> wrote:
> On Apr 29, 2015, at 02:08 , Charles Jenkins <cejw...@gmail.com> wrote:
>>
>> override func saveToURL(
>>     url:NSURL,
>>     ofType typeName:String,
>>     forSaveOperation saveOperation:
>>     NSSaveOperationType,
>>     completionHandler:(NSError!) -> Void
>>   ) {
>>     // <snip> Here I prepare my data structures for saving
>>
>>     //super.saveToURL( url, ofType:typeName, forSaveOperation:saveOperation, 
>> completionHandler:completionHandler )
>>
>>     super.saveToURL(
>>       url,
>>       ofType:typeName,
>>       forSaveOperation:saveOperation,
>>       completionHandler:{
>>         ( error:NSError! ) -> Void in {
>>           completionHandler( error )
>>           // TODO: If no error, mark data structures as "clean"
>>         }
>>       }
>>     )
>>   }
>
> 1. The compiler crash should never happen, obviously, so that's a bug report.
>
> 2. The bridged protocol method is apparently wrong. Since the error parameter 
> is explicitly documented as being nil on success, it should be NSError?. 
> (Note that it's possible at runtime for an implicitly unwrapped optional (!) 
> to be nil, and you can test for it being nil, but we saw in your previous 
> adventure that an app will crash if the Swift runtime tries to enter a Swift 
> method with a nil value for an implicitly unwrapped optional, at least when 
> coming from the Obj-C runtime).
>
> 3. The bridged method signature isn't syntactically correct, though it isn't 
> exactly wrong either. There's no need for parentheses in '(NSError!)'. A 
> 1-tuple is by definition the same thing as the element in the tuple, but I 
> wouldn't be surprised if the compiler doesn't handle this in all cases.
>
> 4. Similarly, the parentheses in your super invocation aren't necessary, nor 
> is the default return type (... '( error:NSError! ) -> Void in' ...).
>
> 5. It's not necessary to open an new brace after 'in', though this shouldn't 
> be wrong either.
>
> So, that's a lot of slightly unusual stuff, and the crash could be caused by 
> any one of them. In Xcode 6.3.1, the following compiles for me without 
> errors, warnings or a compiler crash:
>
>         override func saveToURL(url: NSURL, ofType typeName: String, 
> forSaveOperation saveOperation: NSSaveOperationType, completionHandler: 
> NSError? -> Void) {
>                 super.saveToURL(url, ofType: typeName, forSaveOperation: 
> saveOperation) {error in /*...*/ return}
>         }
>
> See if that works for you. (But don't forget your bug report!)
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/mdcrawford%40gmail.com
>
> This email sent to mdcrawf...@gmail.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to