From 1a07152ee00ead04aeba8c0a3dab06ed40e26f25 Mon Sep 17 00:00:00 2001 From: Holly Borla Date: Wed, 19 Jun 2024 20:09:01 -0700 Subject: [PATCH 1/2] [NFC][Concurrency] Remove `-disable-region-based-isolation-with-strict-concurrency` from tests. --- .../LLDBDebuggerFunctionActorExtension.swift | 1 - .../actor_call_implicitly_async.swift | 21 ++++--------------- test/Concurrency/actor_inout_isolation.swift | 12 +++-------- test/Concurrency/async_cancellation.swift | 2 -- test/Concurrency/async_let_isolation.swift | 3 --- test/Concurrency/async_sequence_syntax.swift | 1 - test/Concurrency/concurrency_warnings.swift | 1 - .../concurrent_value_checking.swift | 1 - .../concurrent_value_checking_objc.swift | 1 - ...perimental_feature_strictconcurrency.swift | 7 +++---- .../global_actor_from_ordinary_context.swift | 5 ++--- .../global_actor_function_types.swift | 3 --- test/Concurrency/isolated_captures.swift | 1 - test/Concurrency/isolated_parameters.swift | 1 - test/Concurrency/issue-57376.swift | 1 - .../predates_concurrency_import.swift | 3 +-- test/Concurrency/sendable_checking.swift | 5 ++--- .../sendable_without_preconcurrency_2.swift | 1 - .../strict_concurrency_minimal.swift | 5 ++--- test/Concurrency/transfernonsendable.swift | 1 - .../transfernonsendable_asynclet.swift | 1 - .../transfernonsendable_global_actor.swift | 1 - ...ransfernonsendable_nonisolatedunsafe.swift | 1 - ...nonsendable_region_based_sendability.swift | 1 - test/Concurrency/unavailable_from_async.swift | 1 - .../unsafe_inherit_executor_lib.swift | 1 - test/Sema/moveonly_sendable.swift | 1 - 27 files changed, 17 insertions(+), 66 deletions(-) diff --git a/test/Concurrency/LLDBDebuggerFunctionActorExtension.swift b/test/Concurrency/LLDBDebuggerFunctionActorExtension.swift index 606c66adc3d41..e1baf1833251c 100644 --- a/test/Concurrency/LLDBDebuggerFunctionActorExtension.swift +++ b/test/Concurrency/LLDBDebuggerFunctionActorExtension.swift @@ -1,6 +1,5 @@ // RUN: %target-swift-frontend -disable-availability-checking -debugger-support %s -emit-sil -o /dev/null -verify // RUN: %target-swift-frontend -disable-availability-checking -debugger-support %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -// RUN: %target-swift-frontend -disable-availability-checking -debugger-support %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking -debugger-support %s -emit-sil -o /dev/null -verify -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Concurrency/actor_call_implicitly_async.swift b/test/Concurrency/actor_call_implicitly_async.swift index 32fc1d79e70de..0f555256131c9 100644 --- a/test/Concurrency/actor_call_implicitly_async.swift +++ b/test/Concurrency/actor_call_implicitly_async.swift @@ -1,5 +1,4 @@ -// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify -verify-additional-prefix complete- -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify +// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete -enable-upcoming-feature InferSendableFromCaptures -parse-as-library %s -emit-sil -o /dev/null -verify // REQUIRES: concurrency // REQUIRES: asserts @@ -291,35 +290,23 @@ func blender(_ peeler : () -> Void) { await wisk({}) - // expected-complete-warning@-1{{passing argument of non-sendable type '() -> ()' into global actor 'BananaActor'-isolated context may introduce data races}} - // expected-complete-note@-2{{a function type must be marked '@Sendable' to conform to 'Sendable'}} await wisk(1) await (peelBanana)() await (((((peelBanana)))))() await (((wisk)))((wisk)((wisk)(1))) blender((peelBanana)) - // expected-warning@-1 {{converting function value of type '@BananaActor () -> ()' to '() -> Void' loses global actor 'BananaActor'}} + // expected-warning@-1 {{converting function value of type '@BananaActor @Sendable () -> ()' to '() -> Void' loses global actor 'BananaActor'}} await wisk(peelBanana) - // expected-complete-warning@-1{{passing argument of non-sendable type '() -> ()' into global actor 'BananaActor'-isolated context may introduce data races}} - // expected-complete-note@-2{{a function type must be marked '@Sendable' to conform to 'Sendable'}} await wisk(wisk) - // expected-complete-warning@-1{{passing argument of non-sendable type '(Any) -> ()' into global actor 'BananaActor'-isolated context may introduce data races}} - // expected-complete-note@-2{{a function type must be marked '@Sendable' to conform to 'Sendable'}} await (((wisk)))(((wisk))) - // expected-complete-warning@-1{{passing argument of non-sendable type '(Any) -> ()' into global actor 'BananaActor'-isolated context may introduce data races}} - // expected-complete-note@-2{{a function type must be marked '@Sendable' to conform to 'Sendable'}} await {wisk}()(1) - // FIXME: Poor diagnostic. The issue is that the invalid function conversion - // to remove '@BananaActor' on 'wisk' cannot influence which solution is chosen. - // So, the constraint system cannot determine whether the type of this expression - // is '(Any) -> Void' or '@BananaActor (Any) -> Void'. - await (true ? wisk : {n in return})(1) - // expected-error@-1 {{type of expression is ambiguous without a type annotation}} + (true ? wisk : {n in return})(1) + // expected-warning@-1 {{converting function value of type '@BananaActor @Sendable (Any) -> ()' to '(Any) -> ()' loses global actor 'BananaActor'; this is an error in the Swift 6 language mode}} } actor Chain { diff --git a/test/Concurrency/actor_inout_isolation.swift b/test/Concurrency/actor_inout_isolation.swift index 63395b700964d..14d2eda3c9ad5 100644 --- a/test/Concurrency/actor_inout_isolation.swift +++ b/test/Concurrency/actor_inout_isolation.swift @@ -1,6 +1,4 @@ -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -verify-additional-prefix minimal-targeted- -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -verify-additional-prefix targeted-complete-tns- -verify-additional-prefix targeted-complete- -verify-additional-prefix minimal-targeted- -strict-concurrency=targeted -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -verify-additional-prefix targeted-complete-tns- -verify-additional-prefix targeted-complete- -verify-additional-prefix complete-tns- -verify-additional-prefix complete- -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency +// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -verify-additional-prefix minimal- // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -verify-additional-prefix targeted-complete-tns- -verify-additional-prefix complete-tns- -strict-concurrency=complete // REQUIRES: concurrency @@ -101,7 +99,7 @@ extension TestActor { // external class method call @available(SwiftStdlib 5.1, *) -class NonAsyncClass { // expected-targeted-complete-note {{class 'NonAsyncClass' does not conform to the 'Sendable' protocol}} +class NonAsyncClass { // expected-targeted-complete-tns-note @-1 {{class 'NonAsyncClass' does not conform to the 'Sendable' protocol}} // expected-tns-note @-2 {{class 'NonAsyncClass' does not conform to the 'Sendable' protocol}} func modifyOtherAsync(_ other : inout Int) async { @@ -124,7 +122,6 @@ extension TestActor { // expected-targeted-complete-tns-warning @-1 {{non-sendable type 'NonAsyncClass' exiting actor-isolated context in call to non-isolated instance method 'modifyOtherAsync' cannot cross actor boundary}} await other.modifyOtherAsync(&value2) // expected-error @-1 {{actor-isolated property 'value2' cannot be passed 'inout' to 'async' function call}} - // expected-targeted-complete-warning @-2 {{passing argument of non-sendable type 'NonAsyncClass' outside of actor-isolated context may introduce data races}} await otherCurry(&value1) // expected-error @-1 {{actor-isolated property 'value1' cannot be passed 'inout' to 'async' function call}} @@ -134,13 +131,11 @@ extension TestActor { } func callMutatingFunctionOnStruct() async { - // expected-targeted-complete-warning @+4 {{passing argument of non-sendable type 'inout Point' outside of actor-isolated context may introduce data races}} // expected-error@+3:20{{cannot call mutating async function 'setComponents(x:y:)' on actor-isolated property 'position'}} // expected-error@+2:38{{actor-isolated property 'nextPosition' cannot be passed 'inout' to 'async' function call}} // expected-error@+1:58{{actor-isolated property 'nextPosition' cannot be passed 'inout' to 'async' function call}} await position.setComponents(x: &nextPosition.x, y: &nextPosition.y) - // expected-targeted-complete-warning @+4 {{passing argument of non-sendable type 'inout Point' outside of actor-isolated context may introduce data races}} // expected-error@+3:20{{cannot call mutating async function 'setComponents(x:y:)' on actor-isolated property 'position'}} // expected-error@+2:38{{actor-isolated property 'value1' cannot be passed 'inout' to 'async' function call}} // expected-error@+1:50{{actor-isolated property 'value2' cannot be passed 'inout' to 'async' function call}} @@ -224,7 +219,7 @@ struct MyGlobalActor { if #available(SwiftStdlib 5.1, *) { let _ = Task.detached { await { (_ foo: inout Int) async in foo += 1 }(&number) } // expected-error @-1 {{actor-isolated var 'number' cannot be passed 'inout' to 'async' function call}} - // expected-minimal-targeted-error @-2 {{global actor 'MyGlobalActor'-isolated var 'number' can not be used 'inout' from a non-isolated context}} + // expected-minimal-error @-2 {{global actor 'MyGlobalActor'-isolated var 'number' can not be used 'inout' from a non-isolated context}} // expected-complete-tns-error @-3 {{main actor-isolated var 'number' can not be used 'inout' from a non-isolated context}} } @@ -319,6 +314,5 @@ actor ProtectDictionary { func invalid() async { await dict[0].mutate() // expected-warning@-1 {{cannot call mutating async function 'mutate()' on actor-isolated property 'dict'; this is an error in the Swift 6 language mode}} - // expected-targeted-complete-warning@-2 {{passing argument of non-sendable type 'inout Optional' outside of actor-isolated context may introduce data races}} } } diff --git a/test/Concurrency/async_cancellation.swift b/test/Concurrency/async_cancellation.swift index 3c48cf256f4e6..5672e8bab1f95 100644 --- a/test/Concurrency/async_cancellation.swift +++ b/test/Concurrency/async_cancellation.swift @@ -1,6 +1,4 @@ // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Concurrency/async_let_isolation.swift b/test/Concurrency/async_let_isolation.swift index 2895fe19ca618..47ca7a0ad6e4c 100644 --- a/test/Concurrency/async_let_isolation.swift +++ b/test/Concurrency/async_let_isolation.swift @@ -4,9 +4,6 @@ // Then with targeted. // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -verify-additional-prefix without-transferring- -// Then with strict concurrency without region isolation. -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency -verify-additional-prefix without-transferring- - // Then strict-concurrency with everything. // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -verify-additional-prefix tns- diff --git a/test/Concurrency/async_sequence_syntax.swift b/test/Concurrency/async_sequence_syntax.swift index 20b25ee23cc57..c94aac7f31cd1 100644 --- a/test/Concurrency/async_sequence_syntax.swift +++ b/test/Concurrency/async_sequence_syntax.swift @@ -1,6 +1,5 @@ // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Concurrency/concurrency_warnings.swift b/test/Concurrency/concurrency_warnings.swift index 4511111a0497d..76873edf00f04 100644 --- a/test/Concurrency/concurrency_warnings.swift +++ b/test/Concurrency/concurrency_warnings.swift @@ -2,7 +2,6 @@ // RUN: %target-swift-frontend -emit-module -emit-module-path %t/GlobalVariables.swiftmodule -module-name GlobalVariables %S/Inputs/GlobalVariables.swift -disable-availability-checking -parse-as-library -// RUN: %target-swift-frontend -I %t -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -I %t -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify // REQUIRES: concurrency diff --git a/test/Concurrency/concurrent_value_checking.swift b/test/Concurrency/concurrent_value_checking.swift index 7b415554405c6..036ae2d8a86f2 100644 --- a/test/Concurrency/concurrent_value_checking.swift +++ b/test/Concurrency/concurrent_value_checking.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify -verify-additional-prefix complete- -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete -parse-as-library %s -emit-sil -o /dev/null -verify // REQUIRES: concurrency diff --git a/test/Concurrency/concurrent_value_checking_objc.swift b/test/Concurrency/concurrent_value_checking_objc.swift index c9cf90ed01370..920f0a46a8a8a 100644 --- a/test/Concurrency/concurrent_value_checking_objc.swift +++ b/test/Concurrency/concurrent_value_checking_objc.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete %s -emit-sil -o /dev/null -verify -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete %s -emit-sil -o /dev/null -verify // REQUIRES: concurrency diff --git a/test/Concurrency/experimental_feature_strictconcurrency.swift b/test/Concurrency/experimental_feature_strictconcurrency.swift index 7a30b77474150..240b35aaf924f 100644 --- a/test/Concurrency/experimental_feature_strictconcurrency.swift +++ b/test/Concurrency/experimental_feature_strictconcurrency.swift @@ -1,7 +1,6 @@ -// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-feature StrictConcurrency -emit-sil -o /dev/null -verify %s -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-feature StrictConcurrency=complete -emit-sil -o /dev/null -verify %s -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking -enable-upcoming-feature StrictConcurrency -emit-sil -o /dev/null -verify %s -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking -enable-upcoming-feature StrictConcurrency -emit-sil -o /dev/null -verify -verify-additional-prefix region-isolation- %s +// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-feature StrictConcurrency -emit-sil -o /dev/null -verify %s +// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-feature StrictConcurrency=complete -emit-sil -o /dev/null -verify %s +// RUN: %target-swift-frontend -disable-availability-checking -enable-upcoming-feature StrictConcurrency -emit-sil -o /dev/null -verify %s // REQUIRES: concurrency // REQUIRES: asserts diff --git a/test/Concurrency/global_actor_from_ordinary_context.swift b/test/Concurrency/global_actor_from_ordinary_context.swift index 69001da13a7dd..1e0f939e3b2ef 100644 --- a/test/Concurrency/global_actor_from_ordinary_context.swift +++ b/test/Concurrency/global_actor_from_ordinary_context.swift @@ -1,6 +1,5 @@ -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix minimal-and-targeted- -verify -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix minimal-and-targeted- -verify -strict-concurrency=targeted -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix complete-and-tns- -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency +// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix minimal-and-targeted- -verify +// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix minimal-and-targeted- -verify -strict-concurrency=targeted // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify-additional-prefix complete-and-tns- -verify -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Concurrency/global_actor_function_types.swift b/test/Concurrency/global_actor_function_types.swift index ac6bc1b1c9e16..d4709407f9960 100644 --- a/test/Concurrency/global_actor_function_types.swift +++ b/test/Concurrency/global_actor_function_types.swift @@ -7,9 +7,6 @@ // Emit SIL with targeted concurrency. // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -verify-additional-prefix without-transferring- -// Emit SIL with strict concurrency but without region based isolation -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -verify-additional-prefix complete-tns- -verify-additional-prefix without-transferring- -disable-region-based-isolation-with-strict-concurrency - // Emit SIL with strict concurrency + region based isolation + transferring // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -verify-additional-prefix complete-tns- diff --git a/test/Concurrency/isolated_captures.swift b/test/Concurrency/isolated_captures.swift index 68e9181844ef7..3121782efb7ee 100644 --- a/test/Concurrency/isolated_captures.swift +++ b/test/Concurrency/isolated_captures.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -verify -disable-availability-checking -strict-concurrency=complete -verify-additional-prefix complete- -emit-sil -o /dev/null %s -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -verify -disable-availability-checking -strict-concurrency=complete -verify-additional-prefix region-isolation- -emit-sil -o /dev/null %s // REQUIRES: concurrency diff --git a/test/Concurrency/isolated_parameters.swift b/test/Concurrency/isolated_parameters.swift index 9f990bd70e435..d0c37f00e0dd5 100644 --- a/test/Concurrency/isolated_parameters.swift +++ b/test/Concurrency/isolated_parameters.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete %s -emit-sil -o /dev/null -verify -verify-additional-prefix complete- -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=complete %s -emit-sil -o /dev/null -verify // REQUIRES: asserts diff --git a/test/Concurrency/issue-57376.swift b/test/Concurrency/issue-57376.swift index 0a7f494532a1b..15b7959a30934 100644 --- a/test/Concurrency/issue-57376.swift +++ b/test/Concurrency/issue-57376.swift @@ -1,5 +1,4 @@ // RUN: %target-swift-frontend -disable-availability-checking -strict-concurrency=targeted %s -emit-sil -o /dev/null -verify -verify-additional-prefix targeted-and-complete- -// RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -verify-additional-prefix tns- -verify-additional-prefix no-transferring-tns- -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -disable-availability-checking %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -verify-additional-prefix tns- -verify-additional-prefix transferring-tns- // REQUIRES: concurrency diff --git a/test/Concurrency/predates_concurrency_import.swift b/test/Concurrency/predates_concurrency_import.swift index 03bf6aecc8398..0e53fee9703be 100644 --- a/test/Concurrency/predates_concurrency_import.swift +++ b/test/Concurrency/predates_concurrency_import.swift @@ -4,8 +4,7 @@ // RUN: %target-swift-frontend -emit-module -emit-module-path %t/OtherActors.swiftmodule -module-name OtherActors %S/Inputs/OtherActors.swift -disable-availability-checking // RUN: %target-swift-frontend -I %t %s -emit-sil -o /dev/null -verify -parse-as-library -enable-upcoming-feature GlobalConcurrency -// RUN: %target-swift-frontend -I %t %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -disable-region-based-isolation-with-strict-concurrency -parse-as-library -enable-upcoming-feature GlobalConcurrency -// RUN: %target-swift-frontend -I %t %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency -parse-as-library -enable-upcoming-feature GlobalConcurrency +// RUN: %target-swift-frontend -I %t %s -emit-sil -o /dev/null -verify -strict-concurrency=targeted -parse-as-library -enable-upcoming-feature GlobalConcurrency // RUN: %target-swift-frontend -I %t %s -emit-sil -o /dev/null -verify -strict-concurrency=complete -parse-as-library -enable-upcoming-feature GlobalConcurrency // REQUIRES: concurrency diff --git a/test/Concurrency/sendable_checking.swift b/test/Concurrency/sendable_checking.swift index eea110603a57b..0c20cb6100b39 100644 --- a/test/Concurrency/sendable_checking.swift +++ b/test/Concurrency/sendable_checking.swift @@ -1,5 +1,4 @@ -// RUN: %target-swift-frontend -verify -strict-concurrency=targeted -verify-additional-prefix targeted-and-complete- -emit-sil -o /dev/null %s -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -verify -strict-concurrency=complete -verify-additional-prefix targeted-and-complete- -verify-additional-prefix complete-and-tns- -verify-additional-prefix complete- -emit-sil -o /dev/null %s -disable-region-based-isolation-with-strict-concurrency +// RUN: %target-swift-frontend -verify -strict-concurrency=targeted -verify-additional-prefix targeted-and-complete- -emit-sil -o /dev/null %s // RUN: %target-swift-frontend -verify -strict-concurrency=complete -verify-additional-prefix tns- -verify-additional-prefix complete-and-tns- -emit-sil -o /dev/null %s // REQUIRES: concurrency @@ -490,4 +489,4 @@ func checkOpaqueType() -> some Sendable { @available(SwiftStdlib 5.1, *) class MainActorSub: MainActorSuper { struct Nested {} // no cycle -} \ No newline at end of file +} diff --git a/test/Concurrency/sendable_without_preconcurrency_2.swift b/test/Concurrency/sendable_without_preconcurrency_2.swift index 294f00a5543b8..2a9a911544103 100644 --- a/test/Concurrency/sendable_without_preconcurrency_2.swift +++ b/test/Concurrency/sendable_without_preconcurrency_2.swift @@ -3,7 +3,6 @@ // RUN: %target-swift-frontend -emit-module -emit-module-path %t/NonStrictModule.swiftmodule -module-name NonStrictModule %S/Inputs/NonStrictModule.swift // RUN: %target-swift-frontend -strict-concurrency=minimal -disable-availability-checking -I %t %s -verify -emit-sil -o /dev/null // RUN: %target-swift-frontend -strict-concurrency=targeted -verify-additional-prefix targeted-complete- -disable-availability-checking -I %t %s -verify -emit-sil -o /dev/null -// RUN: %target-swift-frontend -strict-concurrency=complete -verify-additional-prefix targeted-complete- -verify-additional-prefix complete- -disable-availability-checking -I %t %s -verify -emit-sil -o /dev/null -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -strict-concurrency=complete -verify-additional-prefix targeted-complete- -verify-additional-prefix complete- -disable-availability-checking -I %t %s -verify -emit-sil -o /dev/null // REQUIRES: concurrency diff --git a/test/Concurrency/strict_concurrency_minimal.swift b/test/Concurrency/strict_concurrency_minimal.swift index 08d4e68ae158a..a73473a708b55 100644 --- a/test/Concurrency/strict_concurrency_minimal.swift +++ b/test/Concurrency/strict_concurrency_minimal.swift @@ -1,6 +1,5 @@ -// RUN: %target-swift-frontend -strict-concurrency=minimal -o /dev/null -emit-sil %s -verify -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -strict-concurrency=targeted -verify-additional-prefix targeted- -o /dev/null -emit-sil %s -verify -disable-region-based-isolation-with-strict-concurrency -// RUN: %target-swift-frontend -strict-concurrency=complete -verify-additional-prefix targeted- -o /dev/null -emit-sil %s -verify -disable-region-based-isolation-with-strict-concurrency +// RUN: %target-swift-frontend -strict-concurrency=minimal -o /dev/null -emit-sil %s -verify +// RUN: %target-swift-frontend -strict-concurrency=targeted -verify-additional-prefix targeted- -o /dev/null -emit-sil %s -verify // RUN: %target-swift-frontend -strict-concurrency=complete -verify-additional-prefix targeted- -o /dev/null -emit-sil %s -verify // REQUIRES: concurrency diff --git a/test/Concurrency/transfernonsendable.swift b/test/Concurrency/transfernonsendable.swift index 244ceaa6a3791..b42c8665f5362 100644 --- a/test/Concurrency/transfernonsendable.swift +++ b/test/Concurrency/transfernonsendable.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix complete- -verify-additional-prefix typechecker-only- -DTYPECHECKER_ONLY %s -o /dev/null -disable-region-based-isolation-with-strict-concurrency -enable-upcoming-feature GlobalActorIsolatedTypesUsability // RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix tns- %s -o /dev/null -enable-upcoming-feature GlobalActorIsolatedTypesUsability // This run validates that for specific test cases around closures, we properly diff --git a/test/Concurrency/transfernonsendable_asynclet.swift b/test/Concurrency/transfernonsendable_asynclet.swift index d41bed7366251..91cfa6f36b6e0 100644 --- a/test/Concurrency/transfernonsendable_asynclet.swift +++ b/test/Concurrency/transfernonsendable_asynclet.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix complete- %s -o /dev/null -disable-region-based-isolation-with-strict-concurrency -enable-upcoming-feature GlobalActorIsolatedTypesUsability // RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix tns- %s -o /dev/null -enable-upcoming-feature GlobalActorIsolatedTypesUsability // REQUIRES: concurrency diff --git a/test/Concurrency/transfernonsendable_global_actor.swift b/test/Concurrency/transfernonsendable_global_actor.swift index 258fbab46f182..bb452169abdd2 100644 --- a/test/Concurrency/transfernonsendable_global_actor.swift +++ b/test/Concurrency/transfernonsendable_global_actor.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix complete- %s -o /dev/null -parse-as-library -disable-region-based-isolation-with-strict-concurrency -enable-upcoming-feature GlobalActorIsolatedTypesUsability // RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix tns- %s -o /dev/null -parse-as-library -enable-upcoming-feature GlobalActorIsolatedTypesUsability // REQUIRES: concurrency diff --git a/test/Concurrency/transfernonsendable_nonisolatedunsafe.swift b/test/Concurrency/transfernonsendable_nonisolatedunsafe.swift index fa90955f5dd40..4627cfc235aac 100644 --- a/test/Concurrency/transfernonsendable_nonisolatedunsafe.swift +++ b/test/Concurrency/transfernonsendable_nonisolatedunsafe.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix complete- %s -o /dev/null -disable-region-based-isolation-with-strict-concurrency -enable-upcoming-feature GlobalActorIsolatedTypesUsability // RUN: %target-swift-frontend -emit-sil -strict-concurrency=complete -disable-availability-checking -verify -verify-additional-prefix tns- %s -o /dev/null -enable-upcoming-feature GlobalActorIsolatedTypesUsability // READ THIS: This test is intended to centralize all tests that use diff --git a/test/Concurrency/transfernonsendable_region_based_sendability.swift b/test/Concurrency/transfernonsendable_region_based_sendability.swift index 68ef08953383b..c3bb7e3fda6c4 100644 --- a/test/Concurrency/transfernonsendable_region_based_sendability.swift +++ b/test/Concurrency/transfernonsendable_region_based_sendability.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -strict-concurrency=complete -disable-availability-checking -parse-as-library -emit-sil -o /dev/null -verify -verify-additional-prefix complete- %s -disable-region-based-isolation-with-strict-concurrency -enable-upcoming-feature GlobalActorIsolatedTypesUsability // RUN: %target-swift-frontend -strict-concurrency=complete -disable-availability-checking -parse-as-library -emit-sil -o /dev/null -verify -verify-additional-prefix tns- %s -enable-upcoming-feature GlobalActorIsolatedTypesUsability // REQUIRES: concurrency diff --git a/test/Concurrency/unavailable_from_async.swift b/test/Concurrency/unavailable_from_async.swift index 0ec46890a555e..f39c18ce31077 100644 --- a/test/Concurrency/unavailable_from_async.swift +++ b/test/Concurrency/unavailable_from_async.swift @@ -2,7 +2,6 @@ // RUN: %target-swift-frontend -emit-module -emit-module-path %t/UnavailableFunction.swiftmodule -module-name UnavailableFunction -strict-concurrency=complete %S/Inputs/UnavailableFunction.swift // RUN: %target-swift-frontend -verify -I %t %s -emit-sil -o /dev/null // RUN: %target-swift-frontend -verify -I %t %s -emit-sil -o /dev/null -strict-concurrency=targeted -// RUN: %target-swift-frontend -verify -I %t %s -emit-sil -o /dev/null -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -verify -I %t %s -emit-sil -o /dev/null -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Concurrency/unsafe_inherit_executor_lib.swift b/test/Concurrency/unsafe_inherit_executor_lib.swift index a28e7993af756..f1f36e93f8a98 100644 --- a/test/Concurrency/unsafe_inherit_executor_lib.swift +++ b/test/Concurrency/unsafe_inherit_executor_lib.swift @@ -1,4 +1,3 @@ -// RUN: %target-swift-frontend -emit-sil -verify -o /dev/null -disable-availability-checking %s -strict-concurrency=complete -disable-region-based-isolation-with-strict-concurrency // RUN: %target-swift-frontend -emit-sil -verify -o /dev/null -disable-availability-checking %s -strict-concurrency=complete // REQUIRES: concurrency diff --git a/test/Sema/moveonly_sendable.swift b/test/Sema/moveonly_sendable.swift index 1660e544fc94a..4f5d669bb331d 100644 --- a/test/Sema/moveonly_sendable.swift +++ b/test/Sema/moveonly_sendable.swift @@ -1,4 +1,3 @@ -// RUN: %target-typecheck-verify-swift -strict-concurrency=complete -disable-availability-checking -disable-region-based-isolation-with-strict-concurrency -verify-additional-prefix complete- // RUN: %target-typecheck-verify-swift -strict-concurrency=complete -disable-availability-checking // REQUIRES: concurrency From de78fd4da53f39de08f981f51809bcf0ff6effb1 Mon Sep 17 00:00:00 2001 From: Holly Borla Date: Wed, 19 Jun 2024 20:57:25 -0700 Subject: [PATCH 2/2] [Concurrency] Remove the `disable-region-based-isolation-with-strict-concurrency` flag. --- include/swift/Option/FrontendOptions.td | 5 ----- lib/DriverTool/sil_opt_main.cpp | 8 +------- lib/Frontend/CompilerInvocation.cpp | 11 +---------- 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/include/swift/Option/FrontendOptions.td b/include/swift/Option/FrontendOptions.td index 2dc7e18b04240..a2bd936693890 100644 --- a/include/swift/Option/FrontendOptions.td +++ b/include/swift/Option/FrontendOptions.td @@ -1371,11 +1371,6 @@ def disable_experimental_parser_round_trip : Flag<["-"], "disable-experimental-parser-round-trip">, HelpText<"Disable round trip through the new swift parser">; -def disable_strict_concurrency_region_based_isolation : Flag<["-"], - "disable-region-based-isolation-with-strict-concurrency">, - HelpText<"Disable region based isolation when running with strict concurrency enabled. Only enabled with asserts">, - Flags<[HelpHidden]>; - def disable_transferring_args_and_results_with_region_isolation : Flag<["-"], "disable-transferring-args-and-results-with-region-based-isolation">, HelpText<"Disable transferring args and results when region based isolation is enabled. Only enabled with asserts">, diff --git a/lib/DriverTool/sil_opt_main.cpp b/lib/DriverTool/sil_opt_main.cpp index 3401605927636..fe51511e92b62 100644 --- a/lib/DriverTool/sil_opt_main.cpp +++ b/lib/DriverTool/sil_opt_main.cpp @@ -571,11 +571,6 @@ struct SILOptOptions { "Xcc", llvm::cl::desc("option to pass to clang")); - llvm::cl::opt DisableRegionBasedIsolationWithStrictConcurrency = - llvm::cl::opt( - "disable-region-based-isolation-with-strict-concurrency", - llvm::cl::init(false)); - llvm::cl::opt SwiftVersionString = llvm::cl::opt( "swift-version", llvm::cl::desc( @@ -789,8 +784,7 @@ int sil_opt_main(ArrayRef argv, void *MainAddr) { // If we have strict concurrency set as a feature and were told to turn off // region based isolation... do so now. - if (Invocation.getLangOptions().hasFeature(Feature::StrictConcurrency) && - !options.DisableRegionBasedIsolationWithStrictConcurrency) { + if (Invocation.getLangOptions().hasFeature(Feature::StrictConcurrency)) { Invocation.getLangOptions().enableFeature(Feature::RegionBasedIsolation); } diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 26e5f319e9407..0060aae58466e 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -1101,16 +1101,7 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args, if (Opts.StrictConcurrencyLevel == StrictConcurrency::Complete) { Opts.enableFeature(Feature::IsolatedDefaultValues); Opts.enableFeature(Feature::GlobalConcurrency); - - // If asserts are enabled, allow for region based isolation to be disabled - // with a flag. This is intended only to be used with tests. - bool enableRegionIsolation = true; -#ifndef NDEBUG - enableRegionIsolation = - !Args.hasArg(OPT_disable_strict_concurrency_region_based_isolation); -#endif - if (enableRegionIsolation) - Opts.enableFeature(Feature::RegionBasedIsolation); + Opts.enableFeature(Feature::RegionBasedIsolation); } Opts.WarnImplicitOverrides =