3
3
class CopyableKlass { }
4
4
@_moveOnly
5
5
class MoveOnlyKlass { }
6
+ @_moveOnly
7
+ class MoveOnlyStruct { }
6
8
7
9
class C {
8
10
var copyable : CopyableKlass ? = nil
9
- var moveOnly : MoveOnlyKlass ? = nil
11
+ var moveOnlyC : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
12
+ var moveOnlyS : MoveOnlyStruct ? = nil // expected-error {{move-only type 'MoveOnlyStruct' cannot be used with generics yet}}
10
13
}
11
14
12
15
@_moveOnly
13
16
class CMoveOnly {
14
17
var copyable : CopyableKlass ? = nil
15
- var moveOnly : MoveOnlyKlass ? = nil
18
+ var moveOnlyC : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
19
+ var moveOnlyS : MoveOnlyStruct ? = nil // expected-error {{move-only type 'MoveOnlyStruct' cannot be used with generics yet}}
16
20
}
17
21
18
22
struct OptionalGrandField < T> { // expected-error {{generic struct 'OptionalGrandField' cannot contain a move-only type without also being move-only}}
@@ -21,7 +25,8 @@ struct OptionalGrandField<T> { // expected-error {{generic struct 'OptionalGrand
21
25
}
22
26
23
27
struct S0 {
24
- var moveOnly3 : OptionalGrandField < MoveOnlyKlass >
28
+ var moveOnly3 : OptionalGrandField < MoveOnlyKlass > // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
29
+ var moveOnly4 : OptionalGrandField < MoveOnlyStruct > // expected-error {{move-only type 'MoveOnlyStruct' cannot be used with generics yet}}
25
30
}
26
31
27
32
struct SCopyable {
@@ -30,9 +35,10 @@ struct SCopyable {
30
35
31
36
struct S { // expected-error {{struct 'S' cannot contain a move-only type without also being move-only}}
32
37
var copyable : CopyableKlass
33
- var moveOnly2 : MoveOnlyKlass ?
34
- var moveOnly : MoveOnlyKlass // expected-note {{contained move-only property 'S.moveOnly'}}
35
- var moveOnly3 : OptionalGrandField < MoveOnlyKlass >
38
+ var moveOnly2 : MoveOnlyStruct ? // expected-error {{move-only type 'MoveOnlyStruct' cannot be used with generics yet}}
39
+ var moveOnly : MoveOnlyStruct // expected-note {{contained move-only property 'S.moveOnly'}}
40
+ var moveOnly3 : OptionalGrandField < MoveOnlyKlass > // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
41
+ var moveOnly3 : OptionalGrandField < MoveOnlyStruct > // expected-error {{move-only type 'MoveOnlyStruct' cannot be used with generics yet}}
36
42
}
37
43
38
44
@_moveOnly
@@ -44,7 +50,7 @@ struct SMoveOnly {
44
50
enum E { // expected-error {{enum 'E' cannot contain a move-only type without also being move-only}}
45
51
case lhs( CopyableKlass )
46
52
case rhs( MoveOnlyKlass ) // expected-note {{contained move-only enum case 'E.rhs'}}
47
- case rhs2( OptionalGrandField < MoveOnlyKlass > )
53
+ case rhs2( OptionalGrandField < MoveOnlyKlass > ) // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
48
54
}
49
55
50
56
@_moveOnly
@@ -56,13 +62,13 @@ enum EMoveOnly {
56
62
func foo( ) {
57
63
class C2 {
58
64
var copyable : CopyableKlass ? = nil
59
- var moveOnly : MoveOnlyKlass ? = nil
65
+ var moveOnly : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
60
66
}
61
67
62
68
@_moveOnly
63
69
class C2MoveOnly {
64
70
var copyable : CopyableKlass ? = nil
65
- var moveOnly : MoveOnlyKlass ? = nil
71
+ var moveOnly : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
66
72
}
67
73
68
74
struct S2 { // expected-error {{struct 'S2' cannot contain a move-only type without also being move-only}}
@@ -89,13 +95,13 @@ func foo() {
89
95
{
90
96
class C3 {
91
97
var copyable : CopyableKlass ? = nil
92
- var moveOnly : MoveOnlyKlass ? = nil
98
+ var moveOnly : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
93
99
}
94
100
95
101
@_moveOnly
96
102
class C3MoveOnly {
97
103
var copyable : CopyableKlass ? = nil
98
- var moveOnly : MoveOnlyKlass ? = nil
104
+ var moveOnly : MoveOnlyKlass ? = nil // expected-error {{move-only type 'MoveOnlyKlass' cannot be used with generics yet}}
99
105
}
100
106
101
107
struct S3 { // expected-error {{struct 'S3' cannot contain a move-only type without also being move-only}}
0 commit comments