@@ -29,8 +29,7 @@ struct ContainKlass {
2929// CHECK: [[X:%.*]] = apply {{%.*}}({{%.*}}) : $@convention(method) (@thin ContainKlass.Type) -> @owned ContainKlass
3030// CHECK: [[MOVE:%.*]] = move_value [lexical] [var_decl] [[X]]
3131// 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]]
3433// CHECK: } // end sil function '$s9copy_expr22testCopyLoadableRValueyyF'
3534func testCopyLoadableRValue( ) {
3635 let x = ContainKlass ( )
@@ -121,43 +120,35 @@ func testCopyAddressOnlyLValueArg<T : P>(_ x: inout T) {
121120// CHECK: [[X:%.*]] = begin_borrow [[MOVE]]
122121//
123122// 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]]
126124// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV11consumeFuncyyF : $@convention(method) (@owned ContainKlass) -> ()
127125// CHECK: apply [[FUNC]]([[EXPLICIT_COPY_X]])
128- // CHECK: destroy_value [[COPY_X]]
129126//
130127// Calling borrowingFunc.
131128// 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]]
134130// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV13borrowingFuncyyF : $@convention(method) (@guaranteed ContainKlass) -> ()
135131// CHECK: apply [[FUNC]]([[EXPLICIT_COPY_X]])
136132// CHECK: destroy_value [[EXPLICIT_COPY_X]]
137- // CHECK: destroy_value [[COPY_X]]
138133//
139134// Calling computedK. It is borrowed.
140135// 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]]
143137// CHECK: [[BORROW_EXPLICIT_COPY_X:%.*]] = begin_borrow [[EXPLICIT_COPY_X]]
144138// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV9computedKAA0D0Cvg : $@convention(method) (@guaranteed ContainKlass) -> @owned Klass
145139// CHECK: apply [[FUNC]]([[BORROW_EXPLICIT_COPY_X]])
146140// CHECK: end_borrow [[BORROW_EXPLICIT_COPY_X]]
147141// CHECK: destroy_value [[EXPLICIT_COPY_X]]
148- // CHECK: destroy_value [[COPY_X]]
149142//
150143// Calling computed getter.
151144// 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]]
154146// CHECK: [[BORROW_EXPLICIT_COPY_X:%.*]] = begin_borrow [[EXPLICIT_COPY_X]]
155147// CHECK: [[COPY_BORROW_EXPLICIT_COPY_X:%.*]] = copy_value [[BORROW_EXPLICIT_COPY_X]]
156148// CHECK: [[FUNC:%.*]] = function_ref @$s9copy_expr12ContainKlassV18consumingComputedKAA0D0Cvg : $@convention(method) (@owned ContainKlass) -> @owned Klass
157149// CHECK: apply [[FUNC]]([[COPY_BORROW_EXPLICIT_COPY_X]])
158150// CHECK: end_borrow [[BORROW_EXPLICIT_COPY_X]]
159151// CHECK: destroy_value [[EXPLICIT_COPY_X]]
160- // CHECK: destroy_value [[COPY_X]]
161152// CHECK: } // end sil function '$s9copy_expr31testCallMethodOnLoadableLetCopyyyF'
162153func testCallMethodOnLoadableLetCopy( ) {
163154 let x = ContainKlass ( )
0 commit comments