Merge pull request #59623 from rxwei/cherry-42611 (#61793)

* Merge pull request #59623 from rxwei/cherry-42611

* Fixup switch.swift test from bad merge.

Co-authored-by: Richard Wei <rxrwei@gmail.com>
This commit is contained in:
Stephen Canon
2022-11-02 14:02:16 -04:00
committed by GitHub
parent 66f6769757
commit 33d178cf60
4 changed files with 30 additions and 3 deletions

View File

@@ -496,6 +496,27 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
= A->getOption().matches(OPT_enable_deserialization_recovery);
}
// Whether '/.../' regex literals are enabled. This implies experimental
// string processing.
if (Args.hasArg(OPT_enable_bare_slash_regex)) {
Opts.EnableBareSlashRegexLiterals = true;
Opts.EnableExperimentalStringProcessing = true;
}
// Experimental string processing.
if (auto A = Args.getLastArg(OPT_enable_experimental_string_processing,
OPT_disable_experimental_string_processing)) {
Opts.EnableExperimentalStringProcessing =
A->getOption().matches(OPT_enable_experimental_string_processing);
// When experimental string processing is explicitly disabled, also disable
// forward slash regex `/.../`.
if (!Opts.EnableExperimentalStringProcessing)
Opts.EnableBareSlashRegexLiterals = false;
} else {
Opts.EnableExperimentalStringProcessing = true;
}
Opts.DisableAvailabilityChecking |=
Args.hasArg(OPT_disable_availability_checking);
Opts.CheckAPIAvailabilityOnly |=

View File

@@ -1787,6 +1787,12 @@ function(add_swift_target_library name)
"-Xfrontend;-disable-implicit-string-processing-module-import")
endif()
# Turn off implicit import of _StringProcessing when building libraries
if(SWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING)
list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS
"-Xfrontend;-disable-implicit-string-processing-module-import")
endif()
if(SWIFTLIB_IS_STDLIB AND SWIFT_STDLIB_ENABLE_PRESPECIALIZATION)
list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-Xfrontend;-prespecialize-generic-metadata")
endif()

View File

@@ -336,9 +336,9 @@ func f1(x: String, y: Whichever) {
break
case Whichever.buzz: // expected-error {{type 'Whichever' has no member 'buzz'}}
break
// expected-note @+1 {{overloads for '~=' exist with these partially matching parameter lists: (Substring, String)}}
case Whichever.alias: // expected-error {{expression pattern of type 'Whichever' cannot match values of type 'String'}}
// expected-note@-1 {{overloads for '~=' exist}}
// expected-error@-2 {{'case' label in a 'switch' must have at least one executable statement}}
// expected-error@-1 {{'case' label in a 'switch' must have at least one executable statement}}
default:
break
}

View File

@@ -14,7 +14,7 @@ func f(s : inout [Int]) {
// GROUP-EMPTY: <GROUPS>
// GROUP-EMPTY-NEXT: <\GROUPS>
// RUN: %swift -emit-module -o %t.mod/swift_mod_syn.swiftmodule %S/Inputs/swift_mod_syn.swift -parse-as-library -disable-implicit-concurrency-module-import
// RUN: %swift -emit-module -o %t.mod/swift_mod_syn.swiftmodule %S/Inputs/swift_mod_syn.swift -parse-as-library -disable-implicit-concurrency-module-import -disable-implicit-string-processing-module-import
// RUN: %sourcekitd-test -req=interface-gen-open -module swift_mod_syn -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t.mod == -req=cursor -pos=4:7 %s -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import %s -I %t.mod | %FileCheck -check-prefix=SYNTHESIZED-USR1 %s
// SYNTHESIZED-USR1: s:SMsSkRzSL7ElementSTRpzrlE4sortyyF::SYNTHESIZED::s:Sa