File tree Expand file tree Collapse file tree 2 files changed +34
-24
lines changed Expand file tree Collapse file tree 2 files changed +34
-24
lines changed Original file line number Diff line number Diff line change 1
1
// RUN: %target-typecheck-verify-swift
2
2
3
- protocol P : Copyable { } // expected-error {{'Copyable' is unavailable}}
4
- struct S : P { }
5
3
6
- typealias PleaseLetMeDoIt = Copyable // expected-error {{'Copyable' is unavailable}}
7
- typealias WhatIfIQualify = Swift . Copyable // expected-error {{'Copyable' is unavailable}}
8
-
9
- class C : Copyable { } // expected-error {{'Copyable' is unavailable}}
10
-
11
- @_moveOnly struct MOStruct : Copyable { }
12
- // expected-error@-1 {{move-only struct 'MOStruct' cannot conform to 'Copyable'}}
13
- // expected-error@-2 {{'Copyable' is unavailable}}
14
-
15
-
16
- func whatever< T> ( _ t: T ) where T: Copyable { } // expected-error {{'Copyable' is unavailable}}
17
- func vatever< T: Copyable > ( _ t: T ) { } // expected-error {{'Copyable' is unavailable}}
18
- func buttever( _ t: any Copyable ) { } // expected-error {{'Copyable' is unavailable}}
19
- func zuttever( _ t: some Copyable ) { } // expected-error 2{{'Copyable' is unavailable}}
20
-
21
- enum RockNRoll < T: Copyable > { // expected-error {{'Copyable' is unavailable}}
22
- case isNoisePollution( Copyable ) // expected-error {{'Copyable' is unavailable}}
23
- case isMusic( T )
4
+ struct AVX : Copyable , ~ Copyable, Sendable { // expected-error {{move-only struct 'AVX' cannot conform to 'Copyable'}}
5
+ deinit { }
24
6
}
25
7
26
- enum namespace {
27
- typealias Copyable = Int
28
-
29
- func Copyable( ) -> Copyable { return 0 }
8
+ extension Copyable { // expected-error {{this should be illegal}}
9
+ func clone( ) -> Self { return self }
30
10
}
Original file line number Diff line number Diff line change
1
+ // RUN: %empty-directory(%t)
2
+ // RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -module-name Library
3
+ // RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -I %t
4
+ // RUN: %FileCheck %s < %t/Library.swiftinterface
5
+
6
+ // CHECK: todo -- make sure Copyable doesn't show up in the module or its interface!
7
+
8
+ public protocol P : Copyable { }
9
+ public struct S : P { }
10
+
11
+ public typealias PleaseLetMeDoIt = Copyable
12
+ public typealias WhatIfIQualify = Swift . Copyable
13
+
14
+ public class C : Swift . Copyable { }
15
+
16
+ public func whatever< T> ( _ t: T ) where T: Copyable { }
17
+ public func vatever< T: Copyable > ( _ t: T ) { }
18
+ public func buttever( _ t: any Copyable ) { }
19
+ public func zuttever( _ t: some Copyable ) { }
20
+
21
+ public enum RockNRoll < T: Copyable > {
22
+ case isNoisePollution( Copyable )
23
+ case isMusic( T )
24
+ }
25
+
26
+ public enum namespace {
27
+ typealias Copyable = Int
28
+
29
+ func Copyable( ) -> Copyable { return 0 }
30
+ }
You can’t perform that action at this time.
0 commit comments