File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 1+ // RUN: %target-typecheck-verify-swift \
2+ // RUN: -enable-experimental-feature NoncopyableGenerics \
3+ // RUN: -enable-experimental-feature NonescapableTypes
4+
5+ struct Turtle < T> { }
6+ extension Turtle where T: ~ Copyable { } // expected-error {{'T' required to be 'Copyable' but is marked with '~Copyable'}}
7+
8+ struct Rabbit < T> where T: ~ Copyable { }
9+ extension Rabbit where T: ~ Escapable { } // expected-error {{'T' required to be 'Escapable' but is marked with '~Escapable'}}
10+
11+ protocol P { }
12+ extension P where Self: ~ Escapable { } // expected-error {{'Self' required to be 'Escapable' but is marked with '~Escapable'}}
13+
14+ protocol HasAssoc {
15+ associatedtype A
16+ }
17+ extension HasAssoc where Self. A: ~ Copyable { }
18+ // expected-error@-1 {{cannot add inverse constraint 'Self.A: ~Copyable' on generic parameter 'Self.A' defined in outer scope}}
19+ // expected-error@-2 {{'Self.A' required to be 'Copyable' but is marked with '~Copyable'}}
20+
21+ class Box < T: ~ Copyable> { }
22+ extension Box where T: ~ Copyable { }
You can’t perform that action at this time.
0 commit comments