Commit Graph

14 Commits

Author SHA1 Message Date
Doug Gregor
2bf69a0ea0 Require witnesses for @objc requirements to be @objc.
Previously, we attempted to infer @objc-ness based on conformance, but
doing so is fraught with ordering dependencies, and just doesn't work
in the general case. Among other crimes, this allowed us to
retroactively mark a non-@objc method from an imported module as
@objc... even though nobody would ever then emit the @objc entry
points for it.

Fixes the rest of rdar://problem/18383574.

Swift SVN r24831
2015-01-29 22:53:53 +00:00
Dmitri Hrybenko
3b04d1b013 tests: reorganize tests so that they actually use the target platform
Most tests were using %swift or similar substitutions, which did not
include the target triple and SDK.  The driver was defaulting to the
host OS.  Thus, we could not run the tests when the standard library was
not built for OS X.

Swift SVN r24504
2015-01-19 06:52:49 +00:00
Doug Gregor
c1c51b4e8b Move checking of non-failable-to-failable initializer calls into constraint application.
This makes sure we get the same checking for initializer delegation in
structs/enums as we do for classes, fixing rdar://problem/18458622.

Swift SVN r23128
2014-11-06 06:29:35 +00:00
Doug Gregor
92aae25a7b Allow a failabile initializer spelled init! to satisfy a non-failable initializer requirement.
This is useful when making an Objective-C class conform to a Swift
protocol. Note that we can only implement this safely for non-@objc
protocols, where we have a witnes function that can perform the
checked unwrapping.

Swift SVN r21782
2014-09-08 19:58:36 +00:00
Doug Gregor
ebf4c1e5ca Allow "return nil" in a failable initializer to initiate failure.
Basic semantic analysis only; AST to follow.

Swift SVN r21309
2014-08-20 17:22:34 +00:00
Doug Gregor
38bc16f698 A non-failable initializer requirement cannot be satisfied by a failable initializer.
Swift SVN r21308
2014-08-20 16:34:41 +00:00
Doug Gregor
9c26f899cb QoI: Provide a specific diagnostic when a failable initializer overrides a non-failable one.
Swift SVN r21299
2014-08-19 23:22:04 +00:00
Doug Gregor
ce9ce59e97 Diagnose delegating from a non-failable initializer to a failable one.
Swift SVN r21298
2014-08-19 22:34:28 +00:00
Doug Gregor
a1d27734f3 Diagnose attempts to chain to a failable superclass initializer from a non-failable one.
Only failable initializers spelled with "?" trigger the error; for the
"!" case, we will trap if the error occurs.




Swift SVN r21296
2014-08-19 22:04:43 +00:00
Doug Gregor
9be2802761 Calls to failable initializers produce the appropriate optional type.
Swift SVN r21295
2014-08-19 21:08:17 +00:00
Doug Gregor
42dc448e7e Reflect failability of an initializer in the optionality of its result type.
Don't verify this for the Optional and ImplicitlyUnwrappedOptional types.


Swift SVN r21293
2014-08-19 20:42:06 +00:00
Doug Gregor
c06e22d406 Revert r21291; it's breaking the standard library build.
Swift SVN r21292
2014-08-19 20:37:05 +00:00
Doug Gregor
e6f051fcd2 Reflect failability of an initializer in the optionality of its result type.
Swift SVN r21291
2014-08-19 20:22:25 +00:00
Doug Gregor
64bd844e0e Parse failable initializers.
Parsing, representation, (de-)serialization, printing, and dumping for
failable initializers.


Swift SVN r21290
2014-08-19 18:41:30 +00:00