Skip to content

Commit 3dad053

Browse files
authored
Merge pull request #62064 from hborla/experimental-feature-flags
[FrontendOptions] Remove bespoke experimental feature flags in favor of `-enable-experimental-feature X`.
2 parents cb21a40 + c1dcb9c commit 3dad053

15 files changed

+40
-28
lines changed

include/swift/Option/FrontendOptions.td

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -571,18 +571,10 @@ def disable_experimental_string_processing :
571571
Flag<["-"], "disable-experimental-string-processing">,
572572
HelpText<"Disable experimental string processing">;
573573

574-
def enable_experimental_variadic_generics :
575-
Flag<["-"], "enable-experimental-variadic-generics">,
576-
HelpText<"Enable experimental support for variadic generic types">;
577-
578574
def enable_experimental_associated_type_inference :
579575
Flag<["-"], "enable-experimental-associated-type-inference">,
580576
HelpText<"Enable experimental associated type inference via type witness systems">;
581577

582-
def enable_experimental_implicit_some :
583-
Flag<["-"], "enable-experimental-implicit-some">,
584-
HelpText<"Enable experimental implicit some">;
585-
586578
def disable_availability_checking : Flag<["-"],
587579
"disable-availability-checking">,
588580
HelpText<"Disable checking for potentially unavailable APIs">;

lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -693,8 +693,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
693693

694694
// Map historical flags over to experimental features. We do this for all
695695
// compilers because that's how existing experimental feature flags work.
696-
if (Args.hasArg(OPT_enable_experimental_variadic_generics))
697-
Opts.Features.insert(Feature::VariadicGenerics);
698696
if (Args.hasArg(OPT_enable_experimental_static_assert))
699697
Opts.Features.insert(Feature::StaticAssert);
700698
if (Args.hasArg(OPT_enable_experimental_named_opaque_types))
@@ -714,10 +712,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
714712

715713
if (Args.hasArg(OPT_enable_experimental_opaque_type_erasure))
716714
Opts.Features.insert(Feature::OpaqueTypeErasure);
717-
if (Args.hasArg(OPT_enable_experimental_implicit_some)){
718-
Opts.Features.insert(Feature::ImplicitSome);
719-
Opts.Features.insert(Feature::ExistentialAny);
720-
}
721715

722716
Opts.EnableAppExtensionRestrictions |= Args.hasArg(OPT_enable_app_extension);
723717

test/Constraints/one_element_tuple.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
let t1: (_: Int) = (_: 3)
46
let t2: (x: Int) = (x: 3)

test/Constraints/pack-expansion-expressions.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
func tuplify<T...>(_ t: T...) -> (T...) {
46
return (t...)

test/Constraints/pack_expansion_types.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
func returnTuple1<T...>() -> (T...) { fatalError() }
46

@@ -229,4 +231,4 @@ func patternInstantiationGenericInvalid<T...>(t: T...) where T: Hashable {
229231
// expected-error@-1 {{generic parameter 'T' could not be inferred}}
230232

231233
let _: (Array<T>..., Set<String>) = patternInstantiationTupleTest1() // expected-error {{type of expression is ambiguous without more context}}
232-
}
234+
}

test/Constraints/variadic_generic_constraints.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
// Test instantiation of constraint solver constraints from generic requirements
46
// involving type pack parameters

test/Constraints/variadic_generic_functions.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
func debugPrint<T...>(_ items: T...)
46
where T: CustomDebugStringConvertible

test/Generics/pack-shape-requirements.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-swift-frontend -typecheck -enable-experimental-variadic-generics %s -debug-generic-signatures 2>&1 | %FileCheck %s
1+
// RUN: %target-swift-frontend -typecheck -enable-experimental-feature VariadicGenerics %s -debug-generic-signatures 2>&1 | %FileCheck %s
2+
3+
// REQUIRES: asserts
24

35
protocol P {
46
associatedtype A

test/Generics/tuple-conformances.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics -parse-stdlib
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -parse-stdlib
2+
3+
// REQUIRES: asserts
24

35
import Swift
46

test/Generics/variadic_generic_types.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
struct TupleStruct<First, Rest...> {
46
var first: First

test/Parse/type_parameter_packs.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
protocol P {}
46

test/type/implicit_some/opaque_parameters.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -disable-availability-checking -warn-redundant-requirements -enable-experimental-implicit-some
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking -warn-redundant-requirements -enable-experimental-feature ImplicitSome
2+
3+
// REQUIRES: asserts
24

35
protocol P { }
46

test/type/implicit_some/opaque_return.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -disable-availability-checking -warn-redundant-requirements -enable-experimental-implicit-some
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking -warn-redundant-requirements -enable-experimental-feature ImplicitSome
2+
3+
// REQUIRES: asserts
24

35
protocol Eatery {
46
func lunch()

test/type/opaque_parameterized_existential.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// RUN: %target-swift-frontend -disable-availability-checking -typecheck -verify %s
2-
// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-implicit-some -typecheck -verify %s
2+
// RUN: %target-swift-frontend -disable-availability-checking -enable-experimental-feature ImplicitSome -typecheck -verify %s
3+
4+
// REQUIRES: asserts
35

46
// I do not like nested some type params,
57
// I do not like them Σam-i-am

test/type/pack_expansion.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-variadic-generics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// REQUIRES: asserts
24

35
func f1<T...>() -> T... {}
46
// expected-error@-1 {{variadic expansion 'T' cannot appear outside of a function parameter list, function result, tuple element or generic argument list}}

0 commit comments

Comments
 (0)