Commits

Slava Pestov committed 02b6753e936
Sema: Diagnose overrides of an @objc declaration that cannot be @objc Now that generic subclasses of @objc classes are supported, dust off Doug Gregor's fix for <rdar://problem/20385288>. It is now an error to override an @objc declaration with something that cannot be represented as @objc. For example, the override of foo() here will not compile unless it is explicitly marked @nonobjc: func foo(i: Int) {} ... override func foo(i: Int?) {} Note that I updated IRGen to delete some logic for figuring out when to emit @objc metadata. We can now rely on Sema to correctly set isObjC(), instead of checking overrides ourselves. This was wrong anyway, now that we can have @nonobjc overrides of @objc methods, and vice versa. Swift SVN r29263