// RUN: %target-swift-frontend -typecheck -verify %s // REQUIRES: objc_interop import Foundation // Tests for correct detection of the "objc_in_generic_extension" error, // declared in {Swift Source}/include/swift/AST/DiagnosticsSema.def // Test "0 levels" deep class A : NSObject { init(a: ()) { super.init() } } extension A { // This should throw an error @objc func a1() {} // expected-error{{@objc is not supported within extensions of generic classes or classes that inherit from generic classes}} // This should *not* throw an error func a2() {} } // Test "1 level" deep class B : A { init(b: ()) { super.init(a: ()) } } extension B { // This should throw an error @objc func b1() {} // expected-error{{@objc is not supported within extensions of generic classes or classes that inherit from generic classes}} // This should *not* throw an error func b2() {} } // Test "many levels" deep class C : B {} class D : C { init(d: ()) { super.init(b: ()) } } extension D { // This should throw an error @objc func d1() {} // expected-error{{@objc is not supported within extensions of generic classes or classes that inherit from generic classes}} // This should *not* throw an error func d2() {} }