| // RUN: %target-typecheck-verify-swift |
| |
| class C : B { } // expected-error{{circular class inheritance 'C' -> 'B' -> 'A' -> 'C'}} |
| class B : A { } // expected-note{{class 'B' declared here}} |
| class A : C { } // expected-note{{class 'A' declared here}} |
| |
| class TrivialCycle : TrivialCycle {} // expected-error{{circular class inheritance TrivialCycle}} |
| protocol P : P {} // expected-error 2{{circular protocol inheritance P}} |
| |
| class Isomorphism : Automorphism { } |
| class Automorphism : Automorphism { } // expected-error{{circular class inheritance Automorphism}} |
| |
| // FIXME: Useless error |
| let _ = A() // expected-error{{'A' cannot be constructed because it has no accessible initializers}} |
| |
| class Left : Right.Hand { |
| class Hand {} |
| } |
| |
| class Right : Left.Hand { |
| class Hand {} |
| } |
| |
| class Outer { |
| class Inner : Outer {} |
| } |
| |
| class Outer2 : Outer2.Inner { |
| class Inner {} |
| } |
| |
| class Outer3 : Outer3.Inner<Int> { |
| class Inner<T> {} |
| } |