@@ -29,8 +29,7 @@ struct ContainKlass {
29
29
// CHECK: [[X:%.*]] = apply {{%.*}}({{%.*}}) : $@convention(method) (@thin ContainKlass.Type) -> @owned ContainKlass
30
30
// CHECK: [[MOVE:%.*]] = move_value [lexical] [var_decl] [[X]]
31
31
// CHECK: [[BORROW:%.*]] = begin_borrow [[MOVE]]
32
- // CHECK: [[COPY_BORROW:%.*]] = copy_value [[BORROW]]
33
- // CHECK: explicit_copy_value [[COPY_BORROW]]
32
+ // CHECK: [[COPY_BORROW:%.*]] = explicit_copy_value [[BORROW]]
34
33
// CHECK: } // end sil function '$s9copy_expr22testCopyLoadableRValueyyF'
35
34
func testCopyLoadableRValue( ) {
36
35
let x = ContainKlass ( )
@@ -121,43 +120,35 @@ func testCopyAddressOnlyLValueArg<T : P>(_ x: inout T) {
121
120
// CHECK: [[X:%.*]] = begin_borrow [[MOVE]]
122
121
//
123
122
// Calling consumeFunc.
124
- // CHECK: [[COPY_X:%.*]] = copy_value [[X]]
125
- // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[COPY_X]]
123
+ // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[X]]
126
124
// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV11consumeFuncyyF : $@convention(method) (@owned ContainKlass) -> ()
127
125
// CHECK: apply [[FUNC]]([[EXPLICIT_COPY_X]])
128
- // CHECK: destroy_value [[COPY_X]]
129
126
//
130
127
// Calling borrowingFunc.
131
128
// CHECK: [[X:%.*]] = begin_borrow [[MOVE]]
132
- // CHECK: [[COPY_X:%.*]] = copy_value [[X]]
133
- // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[COPY_X]]
129
+ // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[X]]
134
130
// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV13borrowingFuncyyF : $@convention(method) (@guaranteed ContainKlass) -> ()
135
131
// CHECK: apply [[FUNC]]([[EXPLICIT_COPY_X]])
136
132
// CHECK: destroy_value [[EXPLICIT_COPY_X]]
137
- // CHECK: destroy_value [[COPY_X]]
138
133
//
139
134
// Calling computedK. It is borrowed.
140
135
// CHECK: [[X:%.*]] = begin_borrow [[MOVE]]
141
- // CHECK: [[COPY_X:%.*]] = copy_value [[X]]
142
- // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[COPY_X]]
136
+ // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[X]]
143
137
// CHECK: [[BORROW_EXPLICIT_COPY_X:%.*]] = begin_borrow [[EXPLICIT_COPY_X]]
144
138
// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV9computedKAA0D0Cvg : $@convention(method) (@guaranteed ContainKlass) -> @owned Klass
145
139
// CHECK: apply [[FUNC]]([[BORROW_EXPLICIT_COPY_X]])
146
140
// CHECK: end_borrow [[BORROW_EXPLICIT_COPY_X]]
147
141
// CHECK: destroy_value [[EXPLICIT_COPY_X]]
148
- // CHECK: destroy_value [[COPY_X]]
149
142
//
150
143
// Calling computed getter.
151
144
// CHECK: [[X:%.*]] = begin_borrow [[MOVE]]
152
- // CHECK: [[COPY_X:%.*]] = copy_value [[X]]
153
- // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[COPY_X]]
145
+ // CHECK: [[EXPLICIT_COPY_X:%.*]] = explicit_copy_value [[X]]
154
146
// CHECK: [[BORROW_EXPLICIT_COPY_X:%.*]] = begin_borrow [[EXPLICIT_COPY_X]]
155
147
// CHECK: [[COPY_BORROW_EXPLICIT_COPY_X:%.*]] = copy_value [[BORROW_EXPLICIT_COPY_X]]
156
148
// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV18consumingComputedKAA0D0Cvg : $@convention(method) (@owned ContainKlass) -> @owned Klass
157
149
// CHECK: apply [[FUNC]]([[COPY_BORROW_EXPLICIT_COPY_X]])
158
150
// CHECK: end_borrow [[BORROW_EXPLICIT_COPY_X]]
159
151
// CHECK: destroy_value [[EXPLICIT_COPY_X]]
160
- // CHECK: destroy_value [[COPY_X]]
161
152
// CHECK: } // end sil function '$s9copy_expr31testCallMethodOnLoadableLetCopyyyF'
162
153
func testCallMethodOnLoadableLetCopy( ) {
163
154
let x = ContainKlass ( )
0 commit comments