Skip to content

Commit 4b8621e

Browse files
committed
[move-only] Convert __shared tests to use borrowing instead.
This is what final users will use and the only difference is mangling, so it makes sense to just test a single thing.
1 parent 0be1ad1 commit 4b8621e

14 files changed

+430
-430
lines changed

test/Constraints/moveonly_constraints.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ enum Maybe<T> {
4242
case just(T)
4343
}
4444

45-
func takeConcrete(_ m: __shared MO) {}
45+
func takeConcrete(_ m: borrowing MO) {}
4646
func takeGeneric<T>(_ t: T) {}
4747
func takeGenericSendable<T>(_ t: T) where T: Sendable {}
4848
func takeMaybe<T>(_ m: Maybe<T>) {}
@@ -71,7 +71,7 @@ func testAny() {
7171
takeAny(MO()) // expected-error {{move-only type 'MO' cannot be used with generics yet}}
7272
}
7373

74-
func testBasic(_ mo: __shared MO) {
74+
func testBasic(_ mo: borrowing MO) {
7575
takeConcrete(globalMO)
7676
takeConcrete(MO())
7777

@@ -139,7 +139,7 @@ func checkMethodCalls() {
139139
takeMaybe(true ? .none : .just(MO())) // expected-error 3{{move-only type 'MO' cannot be used with generics yet}}
140140
}
141141

142-
func checkCasting(_ b: any Box, _ mo: __shared MO, _ a: Any) {
142+
func checkCasting(_ b: any Box, _ mo: borrowing MO, _ a: Any) {
143143
// casting dynamically is allowed, but should always fail since you can't
144144
// construct such a type.
145145
let box = b as! ValBox<MO> // expected-error {{move-only type 'MO' cannot be used with generics yet}}
@@ -220,7 +220,7 @@ func checkCasting(_ b: any Box, _ mo: __shared MO, _ a: Any) {
220220

221221
}
222222

223-
func checkStdlibTypes(_ mo: __shared MO) {
223+
func checkStdlibTypes(_ mo: borrowing MO) {
224224
let _: [MO] = // expected-error {{move-only type 'MO' cannot be used with generics yet}}
225225
[MO(), MO()]
226226
let _: [MO] = // expected-error {{move-only type 'MO' cannot be used with generics yet}}

test/Interpreter/moveonly_bufferview.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public struct BufferView<T> {
2323
}
2424

2525
extension Array {
26-
public mutating func withBufferView<U>(_ f: (__shared BufferView<Element>) -> U) -> U {
26+
public mutating func withBufferView<U>(_ f: (borrowing BufferView<Element>) -> U) -> U {
2727
return withUnsafeBufferPointer {
2828
return f(BufferView(ptr: $0))
2929
}

test/SILGen/moveonly.swift

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ public enum NonTrivialEnum {
4747
var varGlobal = NonTrivialStruct()
4848
let letGlobal = NonTrivialStruct()
4949

50-
public func borrowVal(_ e : __shared NonTrivialEnum) {}
51-
public func borrowVal(_ e : __shared FD) {}
52-
public func borrowVal(_ k: __shared CopyableKlass) {}
53-
public func borrowVal(_ k: __shared NonTrivialCopyableStruct) {}
54-
public func borrowVal(_ k: __shared NonTrivialCopyableStruct2) {}
55-
public func borrowVal(_ s: __shared NonTrivialStruct) {}
56-
public func borrowVal(_ s: __shared NonTrivialStruct2) {}
50+
public func borrowVal(_ e : borrowing NonTrivialEnum) {}
51+
public func borrowVal(_ e : borrowing FD) {}
52+
public func borrowVal(_ k: borrowing CopyableKlass) {}
53+
public func borrowVal(_ k: borrowing NonTrivialCopyableStruct) {}
54+
public func borrowVal(_ k: borrowing NonTrivialCopyableStruct2) {}
55+
public func borrowVal(_ s: borrowing NonTrivialStruct) {}
56+
public func borrowVal(_ s: borrowing NonTrivialStruct2) {}
5757

5858
public func consumeVal(_ e : __owned NonTrivialEnum) {}
5959
public func consumeVal(_ e : __owned FD) {}
@@ -71,12 +71,12 @@ public func consumeVal(_ s: __owned NonTrivialStruct2) {}
7171
// Function Arguments
7272
//
7373

74-
// CHECK-LABEL: sil [ossa] @$s8moveonly19useNonTrivialStructyyAA0cdE0VhF : $@convention(thin) (@guaranteed NonTrivialStruct) -> () {
74+
// CHECK-LABEL: sil [ossa] @$s8moveonly19useNonTrivialStructyyAA0cdE0VF : $@convention(thin) (@guaranteed NonTrivialStruct) -> () {
7575
// CHECK: bb0([[ARG:%.*]] : @guaranteed $NonTrivialStruct):
7676
// CHECK: [[COPIED_ARG:%.*]] = copy_value [[ARG]]
7777
// CHECK: mark_must_check [no_consume_or_assign] [[COPIED_ARG]]
78-
// CHECK: } // end sil function '$s8moveonly19useNonTrivialStructyyAA0cdE0VhF'
79-
public func useNonTrivialStruct(_ s: __shared NonTrivialStruct) {
78+
// CHECK: } // end sil function '$s8moveonly19useNonTrivialStructyyAA0cdE0VF'
79+
public func useNonTrivialStruct(_ s: borrowing NonTrivialStruct) {
8080
borrowVal(s)
8181
let s2 = s
8282
let k = s.fd
@@ -101,12 +101,12 @@ public func useNonTrivialOwnedStruct(_ s: __owned NonTrivialStruct) {
101101
let _ = s2
102102
}
103103

104-
// CHECK-LABEL: sil [ossa] @$s8moveonly17useNonTrivialEnumyyAA0cdE0OhF : $@convention(thin) (@guaranteed NonTrivialEnum) -> () {
104+
// CHECK-LABEL: sil [ossa] @$s8moveonly17useNonTrivialEnumyyAA0cdE0OF : $@convention(thin) (@guaranteed NonTrivialEnum) -> () {
105105
// CHECK: bb0([[ARG:%.*]] : @guaranteed $NonTrivialEnum):
106106
// CHECK: [[COPIED_ARG:%.*]] = copy_value [[ARG]]
107107
// CHECK: mark_must_check [no_consume_or_assign] [[COPIED_ARG]]
108-
// CHECK: } // end sil function '$s8moveonly17useNonTrivialEnumyyAA0cdE0OhF'
109-
public func useNonTrivialEnum(_ s: __shared NonTrivialEnum) {
108+
// CHECK: } // end sil function '$s8moveonly17useNonTrivialEnumyyAA0cdE0OF'
109+
public func useNonTrivialEnum(_ s: borrowing NonTrivialEnum) {
110110
borrowVal(s)
111111
let s2 = s
112112
switch s {
@@ -286,7 +286,7 @@ func blackHoleVarInitialization3() {
286286
//
287287
// CHECK: [[CLS:%.*]] = mark_must_check [no_consume_or_assign] [[PROJECT]]
288288
// CHECK: [[BORROW:%.*]] = load_borrow [[CLS]]
289-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA2FDVhF :
289+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA2FDVF :
290290
// CHECK: apply [[FN]]([[BORROW]])
291291
// CHECK: end_borrow [[BORROW]]
292292
// CHECK: } // end sil function '$s8moveonly24borrowObjectFunctionCallyyF'
@@ -308,7 +308,7 @@ func borrowObjectFunctionCall() {
308308
// CHECK: [[ACCESS:%.*]] = begin_access [read] [unknown] [[PROJECT]]
309309
// CHECK: [[MARKED_ADDR:%.*]] = mark_must_check [no_consume_or_assign] [[ACCESS]]
310310
// CHECK: [[BORROW:%.*]] = load_borrow [[MARKED_ADDR]]
311-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA16NonTrivialStructVhF :
311+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA16NonTrivialStructVF :
312312
// CHECK: apply [[FN]]([[BORROW]])
313313
// CHECK: end_borrow [[BORROW]]
314314
// CHECK: end_access [[ACCESS]]
@@ -331,7 +331,7 @@ func moveOnlyStructNonConsumingUse() {
331331
// CHECK: [[MARKED_ADDR:%.*]] = mark_must_check [no_consume_or_assign] [[ACCESS]]
332332
// CHECK: [[GEP:%.*]] = struct_element_addr [[MARKED_ADDR]] : $*NonTrivialStruct, #NonTrivialStruct.nonTrivialStruct2
333333
// CHECK: [[BORROW:%.*]] = load_borrow [[GEP]]
334-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA17NonTrivialStruct2VhF : $@convention(thin) (@guaranteed NonTrivialStruct2) -> ()
334+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA17NonTrivialStruct2VF : $@convention(thin) (@guaranteed NonTrivialStruct2) -> ()
335335
// CHECK: apply [[FN]]([[BORROW]])
336336
// CHECK: end_borrow [[BORROW]]
337337
// CHECK: end_access [[ACCESS]]
@@ -356,7 +356,7 @@ func moveOnlyStructMoveOnlyStructNonConsumingUse() {
356356
// CHECK: [[GEP2:%.*]] = struct_element_addr [[GEP1]] : $*NonTrivialStruct2, #NonTrivialStruct2.copyableKlass
357357
// CHECK: [[COPY:%.*]] = load [copy] [[GEP2]] : $*CopyableKlass
358358
// CHECK: end_access [[ACCESS]]
359-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassChF : $@convention(thin) (@guaranteed CopyableKlass) -> ()
359+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassCF : $@convention(thin) (@guaranteed CopyableKlass) -> ()
360360
// CHECK: apply [[FN]]([[COPY]])
361361
// CHECK: destroy_value [[COPY]] : $CopyableKlass
362362
// CHECK: } // end sil function '$s8moveonly018moveOnlyStructMovecD28CopyableKlassNonConsumingUseyyF'
@@ -404,7 +404,7 @@ func moveOnlyStructSetMoveOnlyField() {
404404
// CHECK: [[GEP:%.*]] = struct_element_addr [[MARKED_ADDR]] : $*NonTrivialStruct, #NonTrivialStruct.nonTrivialCopyableStruct
405405
// CHECK: [[COPY:%.*]] = load [copy] [[GEP]] : $*NonTrivialCopyableStruct
406406
// CHECK: end_access [[ACCESS]]
407-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA24NonTrivialCopyableStructVhF :
407+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA24NonTrivialCopyableStructVF :
408408
// CHECK: apply [[FN]]([[COPY]])
409409
// CHECK: destroy_value [[COPY]] : $NonTrivialCopyableStruct
410410
// CHECK: } // end sil function '$s8moveonly022moveOnlyStructCopyableD15NonConsumingUseyyF'
@@ -428,7 +428,7 @@ func moveOnlyStructCopyableStructNonConsumingUse() {
428428
// CHECK: [[GEP2:%.*]] = struct_element_addr [[GEP1]] : $*NonTrivialCopyableStruct, #NonTrivialCopyableStruct.copyableKlass
429429
// CHECK: [[COPY:%.*]] = load [copy] [[GEP2]] : $*CopyableKlass
430430
// CHECK: end_access [[ACCESS]]
431-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassChF :
431+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassCF :
432432
// CHECK: apply [[FN]]([[COPY]])
433433
// CHECK: destroy_value [[COPY]] : $CopyableKlass
434434
// CHECK: } // end sil function '$s8moveonly022moveOnlyStructCopyabledE20KlassNonConsumingUseyyF'
@@ -452,7 +452,7 @@ func moveOnlyStructCopyableStructCopyableKlassNonConsumingUse() {
452452
// CHECK: [[GEP2:%.*]] = struct_element_addr [[GEP1]] : $*NonTrivialCopyableStruct, #NonTrivialCopyableStruct.nonTrivialCopyableStruct2
453453
// CHECK: [[COPY:%.*]] = load [copy] [[GEP2]] : $*NonTrivialCopyableStruct2
454454
// CHECK: end_access [[ACCESS]]
455-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA25NonTrivialCopyableStruct2VhF :
455+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA25NonTrivialCopyableStruct2VF :
456456
// CHECK: apply [[FN]]([[COPY]])
457457
// CHECK: destroy_value [[COPY]] : $NonTrivialCopyableStruct2
458458
// CHECK: } // end sil function '$s8moveonly022moveOnlyStructCopyabledeD15NonConsumingUseyyF'
@@ -477,7 +477,7 @@ func moveOnlyStructCopyableStructCopyableStructNonConsumingUse() {
477477
// CHECK: [[GEP3:%.*]] = struct_element_addr [[GEP2]] : $*NonTrivialCopyableStruct2, #NonTrivialCopyableStruct2.copyableKlass
478478
// CHECK: [[COPY:%.*]] = load [copy] [[GEP3]] : $*CopyableKlass
479479
// CHECK: end_access [[ACCESS]]
480-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassChF :
480+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA13CopyableKlassCF :
481481
// CHECK: apply [[FN]]([[COPY]])
482482
// CHECK: destroy_value [[COPY]] : $CopyableKlass
483483
// CHECK: } // end sil function '$s8moveonly022moveOnlyStructCopyablededE20KlassNonConsumingUseyyF'
@@ -509,7 +509,7 @@ func moveOnlyStructCopyableStructCopyableStructCopyableKlassNonConsumingUse() {
509509
// CHECK: [[ACCESS:%.*]] = begin_access [read] [dynamic] [[FIELD]]
510510
// CHECK: [[ACCESS_MARK:%.*]] = mark_must_check [no_consume_or_assign] [[ACCESS]]
511511
// CHECK: [[BORROWED_MOVEONLY_KLASS:%.*]] = load_borrow [[ACCESS_MARK]]
512-
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA2FDVhF :
512+
// CHECK: [[FN:%.*]] = function_ref @$s8moveonly9borrowValyyAA2FDVF :
513513
// CHECK: apply [[FN]]([[BORROWED_MOVEONLY_KLASS]])
514514
// CHECK: end_borrow [[BORROWED_MOVEONLY_KLASS]]
515515
// CHECK: destroy_value [[COPYABLE_KLASS]]
@@ -561,7 +561,7 @@ func consumeVal(_ e: __owned EnumSwitchTests.E2) {}
561561
var booleanGuard: Bool { false }
562562
var booleanGuard2: Bool { false }
563563

564-
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly15enumSwitchTest1yyAA04EnumC5TestsO1EOhF : $@convention(thin) (@guaranteed EnumSwitchTests.E) -> () {
564+
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly15enumSwitchTest1yyAA04EnumC5TestsO1EOF : $@convention(thin) (@guaranteed EnumSwitchTests.E) -> () {
565565
// CHECK: bb0([[ARG:%.*]] : @guaranteed
566566
// CHECK: [[COPY_ARG:%.*]] = copy_value [[ARG]]
567567
// CHECK: [[MARKED_VALUE:%.*]] = mark_must_check [no_consume_or_assign] [[COPY_ARG]]
@@ -618,8 +618,8 @@ var booleanGuard2: Bool { false }
618618
//
619619
// CHECK: [[BB_CONT]]:
620620
// CHECK: destroy_value [[MARKED_VALUE]]
621-
// CHECK: } // end sil function '$s8moveonly15enumSwitchTest1yyAA04EnumC5TestsO1EOhF'
622-
func enumSwitchTest1(_ e: __shared EnumSwitchTests.E) {
621+
// CHECK: } // end sil function '$s8moveonly15enumSwitchTest1yyAA04EnumC5TestsO1EOF'
622+
func enumSwitchTest1(_ e: borrowing EnumSwitchTests.E) {
623623
switch e {
624624
case .first:
625625
break

test/SILGen/moveonly_deinit_access.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public struct FD {
99
var i = 5
1010
}
1111

12-
public func borrowVal(_ e : __shared FD) {}
12+
public func borrowVal(_ e : borrowing FD) {}
1313
public func consumeVal(_ s: __owned FD) {}
1414

1515
// CHECK: sil hidden [ossa] @$s22moveonly_deinit_access0B17AccessConsumeTestyyAA2FDVzF : $@convention(thin) (@inout FD) -> () {

test/SILGen/moveonly_var.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class Klass {
2424
}
2525
}
2626

27-
public func nonConsumingUseKlass(_ k: __shared Klass) {}
27+
public func nonConsumingUseKlass(_ k: borrowing Klass) {}
2828

2929
///////////
3030
// Tests //

0 commit comments

Comments
 (0)