Skip to content

Commit 883a0f5

Browse files
authored
Merge pull request #66251 from slavapestov/variadic-generics-feature-5.9
Basic: Remove VariadicGenerics feature [5.9]
2 parents 0cadf31 + 9f54d51 commit 883a0f5

32 files changed

+30
-130
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5411,9 +5411,6 @@ ERROR(vararg_not_allowed,none,
54115411
"variadic parameter cannot appear outside of a function parameter list",
54125412
())
54135413

5414-
ERROR(experimental_type_with_parameter_pack,none,
5415-
"generic types with parameter packs are experimental",
5416-
())
54175414
ERROR(more_than_one_pack_in_type,none,
54185415
"generic type cannot declare more than one type pack", ())
54195416
ERROR(enum_with_pack,none,

include/swift/Basic/Features.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ UPCOMING_FEATURE(ExistentialAny, 335, 6)
115115
UPCOMING_FEATURE(ImportObjcForwardDeclarations, 384, 6)
116116

117117
EXPERIMENTAL_FEATURE(StaticAssert, false)
118-
EXPERIMENTAL_FEATURE(VariadicGenerics, false)
119118
EXPERIMENTAL_FEATURE(NamedOpaqueTypes, false)
120119
EXPERIMENTAL_FEATURE(FlowSensitiveConcurrencyCaptures, false)
121120
EXPERIMENTAL_FEATURE(CodeItemMacros, true)

lib/AST/ASTPrinter.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3204,10 +3204,6 @@ static bool usesFeatureBareSlashRegexLiterals(Decl *decl) {
32043204
return false;
32053205
}
32063206

3207-
static bool usesFeatureVariadicGenerics(Decl *decl) {
3208-
return false;
3209-
}
3210-
32113207
static bool usesFeatureTupleConformances(Decl *decl) {
32123208
return false;
32133209
}

lib/Sema/TypeCheckDeclPrimary.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,10 +480,6 @@ static void checkGenericParams(GenericContext *ownerCtx) {
480480
// is not enabled.
481481
auto &ctx = decl->getASTContext();
482482
if (gp->isParameterPack() && isGenericType) {
483-
if (!ctx.LangOpts.hasFeature(Feature::VariadicGenerics)) {
484-
decl->diagnose(diag::experimental_type_with_parameter_pack);
485-
}
486-
487483
TypeChecker::checkAvailability(
488484
gp->getSourceRange(),
489485
ownerCtx->getASTContext().getVariadicGenericTypeAvailability(),

test/Constraints/one_element_tuple.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
let t1: (_: Int) = (_: 3)
64

test/Constraints/pack-expansion-expressions.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -disable-availability-checking -enable-experimental-feature VariadicGenerics
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
func tuplify<each T>(_ t: repeat each T) -> (repeat each T) {
64
return (repeat each t)

test/Constraints/variadic_generic_types.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
// Parsing an UnresolvedSpecializeExpr containing a PackExpansionType
64
struct G<each T> {}

test/DebugInfo/variadic-generics-count.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
// REQUIRES: asserts
21
// RUN: %target-swift-frontend -emit-ir %s -g -o - \
3-
// RUN: -parse-as-library -module-name a -enable-experimental-feature VariadicGenerics -disable-availability-checking | %FileCheck %s
2+
// RUN: -parse-as-library -module-name a -disable-availability-checking | %FileCheck %s
43

54
public func f1<each T>(ts: repeat each T) {
65
// CHECK: define {{.*}} @"$s1a2f12tsyxxQp_tRvzlF"(%swift.opaque** {{.*}}, i{{32|64}} [[COUNT1_1:.*]], %swift.type** {{.*}})

test/Frontend/experimental_feature.swift

Lines changed: 0 additions & 16 deletions
This file was deleted.

test/Generics/pack-shape-requirements.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-swift-frontend -typecheck -enable-experimental-feature VariadicGenerics %s -debug-generic-signatures -disable-availability-checking 2>&1 | %FileCheck %s
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -disable-availability-checking 2>&1 | %FileCheck %s
42

53
protocol P {
64
associatedtype A

test/Generics/variadic_generic_requirements.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
struct Conformance<each T: Equatable> {}
64

test/Generics/variadic_generic_types.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
52

63
// Disallowed cases
74
struct MultiplePack<each T, each U> {} // expected-error {{generic type cannot declare more than one type pack}}

test/Generics/variadic_generic_types_availability.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift
52

63
// REQUIRES: OS=macosx
74

test/IRGen/pack_archetype_canonicalization.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-frontend -emit-ir %s -disable-availability-checking
52

63
// This would crash.
74
public struct G<T> {}

test/IRGen/variadic_generic_fulfillment.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics -disable-availability-checking | %FileCheck %s -DINT=i%target-ptrsize
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-frontend -emit-ir %s -disable-availability-checking | %FileCheck %s -DINT=i%target-ptrsize
52

63
public struct G<T> {}
74

test/IRGen/variadic_generic_fulfillments.sil

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir -primary-file %s -enable-experimental-feature VariadicGenerics | %IRGenFileCheck %s
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-frontend -emit-ir -primary-file %s | %IRGenFileCheck %s
52

63
import Builtin
74
import Swift

test/IRGen/variadic_generic_types.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir -primary-file %s -enable-experimental-feature VariadicGenerics -disable-availability-checking | %FileCheck %s
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-frontend -emit-ir -primary-file %s -disable-availability-checking | %FileCheck %s
52

63
// REQUIRES: PTRSIZE=64
74

test/Interpreter/variadic_generic_conformances.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
// RUN: %target-run-simple-swift(-enable-experimental-feature VariadicGenerics -Xfrontend -disable-availability-checking)
1+
// RUN: %target-run-simple-swift(-Xfrontend -disable-availability-checking)
22

33
// REQUIRES: executable_test
44

5-
// Because of -enable-experimental-feature VariadicGenerics
6-
// REQUIRES: asserts
7-
85
// UNSUPPORTED: use_os_stdlib
96
// UNSUPPORTED: back_deployment_runtime
107

test/Interpreter/variadic_generic_types.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
// RUN: %target-run-simple-swift(-enable-experimental-feature VariadicGenerics -Xfrontend -disable-concrete-type-metadata-mangled-name-accessors -Xfrontend -disable-availability-checking)
2-
// RUN: %target-run-simple-swift(-enable-experimental-feature VariadicGenerics -Xfrontend -disable-availability-checking)
1+
// RUN: %target-run-simple-swift(-Xfrontend -disable-concrete-type-metadata-mangled-name-accessors -Xfrontend -disable-availability-checking)
2+
// RUN: %target-run-simple-swift(-Xfrontend -disable-availability-checking)
33

44
// REQUIRES: executable_test
55

6-
// Because of -enable-experimental-feature VariadicGenerics
7-
// REQUIRES: asserts
8-
96
// UNSUPPORTED: use_os_stdlib
107
// UNSUPPORTED: back_deployment_runtime
118

test/ModuleInterface/pack_expansion_type.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-emit-module-interface(%t/PackExpansionType.swiftinterface) %s -module-name PackExpansionType -enable-experimental-feature VariadicGenerics -disable-availability-checking
2+
// RUN: %target-swift-emit-module-interface(%t/PackExpansionType.swiftinterface) %s -module-name PackExpansionType -disable-availability-checking
33
// RUN: %FileCheck %s < %t/PackExpansionType.swiftinterface
44

5-
// Experimental features require an asserts compiler
6-
// REQUIRES: asserts
7-
85
// CHECK: #if compiler(>=5.3) && $ParameterPacks
96
// CHECK-NEXT: public func variadicFunction<each T, each U>(t: repeat each T, u: repeat each U) -> (repeat (each T, each U)) where (repeat (each T, each U)) : Any
107
public func variadicFunction<each T, each U>(t: repeat each T, u: repeat each U) -> (repeat (each T, each U)) {}

test/Parse/type_parameter_packs.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
protocol P {}
64

test/SIL/Serialization/pack_expansion_type.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend -emit-module %s -emit-module-path %t/pack_expansion_type.swiftmodule -DLIB -enable-experimental-feature VariadicGenerics
3-
// RUN: %target-swift-frontend -emit-ir %s -I %t -DAPP -module-name main -enable-experimental-feature VariadicGenerics
4-
5-
// Because of -enable-experimental-feature VariadicGenerics
6-
// REQUIRES: asserts
2+
// RUN: %target-swift-frontend -emit-module %s -emit-module-path %t/pack_expansion_type.swiftmodule -DLIB
3+
// RUN: %target-swift-frontend -emit-ir %s -I %t -DAPP -module-name main
74

85
#if LIB
96

test/SILGen/pack_expansion_type.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-emit-silgen %s -enable-experimental-feature VariadicGenerics -disable-availability-checking | %FileCheck %s
2-
3-
// Experimental features require an asserts compiler
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-emit-silgen %s -disable-availability-checking | %FileCheck %s
52

63
// CHECK-LABEL: sil [ossa] @$s19pack_expansion_type16variadicFunction1t1ux_q_txQp_txxQp_q_xQptRvzRv_q_Rhzr0_lF : $@convention(thin) <each T, each U where (repeat (each T, each U)) : Any> (@pack_guaranteed Pack{repeat each T}, @pack_guaranteed Pack{repeat each U}) -> @pack_out Pack{repeat (each T, each U)} {
74
// CHECK: bb0(%0 : $*Pack{repeat (each T, each U)}, %1 : $*Pack{repeat each T}, %2 : $*Pack{repeat each U}):

test/SILGen/parameterized_existentials_variadic.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-emit-silgen -module-name parameterized -disable-availability-checking %s -enable-experimental-feature VariadicGenerics | %FileCheck %s
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-emit-silgen -module-name parameterized -disable-availability-checking %s | %FileCheck %s
52

63
protocol P<A> {
74
associatedtype A

test/SILGen/variadic-generic-closures.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-emit-silgen -enable-experimental-feature VariadicGenerics -disable-availability-checking %s | %FileCheck %s
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-emit-silgen -disable-availability-checking %s | %FileCheck %s
52

63
public struct G<T> {}
74

test/SILGen/variadic-generic-tuples.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-emit-silgen -enable-experimental-feature VariadicGenerics -disable-availability-checking %s | %FileCheck %s
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-emit-silgen -disable-availability-checking %s | %FileCheck %s
52

63
func takeAny(_ arg: Any) {}
74

test/SILGen/variadic-generic-vanishing-tuples.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
// RUN: %target-swift-emit-silgen -enable-experimental-feature VariadicGenerics -disable-availability-checking %s | %FileCheck %s
1+
// RUN: %target-swift-emit-silgen -disable-availability-checking %s | %FileCheck %s
22

33
// rdar://107459964
44
// rdar://107478603
55

6-
// Because of -enable-experimental-feature VariadicGenerics
7-
// REQUIRES: asserts
8-
96
public struct G<Value> {
107
public let id: Int
118
}

test/SILGen/variadic_generic_types.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-swift-emit-silgen %s -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-swift-emit-silgen %s -disable-availability-checking
52

63
struct Variadic<each T> where repeat each T: Equatable {}
74

test/Serialization/pack_expansion_type.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-frontend %S/Inputs/pack_expansion_type_other.swift -emit-module -emit-module-path %t/pack_expansion_type_other.swiftmodule -enable-experimental-feature VariadicGenerics -disable-availability-checking
3-
// RUN: %target-typecheck-verify-swift -I %t -enable-experimental-feature VariadicGenerics -disable-availability-checking
4-
5-
// Experimental features require an asserts compiler
6-
// REQUIRES: asserts
2+
// RUN: %target-swift-frontend %S/Inputs/pack_expansion_type_other.swift -emit-module -emit-module-path %t/pack_expansion_type_other.swiftmodule -disable-availability-checking
3+
// RUN: %target-typecheck-verify-swift -I %t -disable-availability-checking
74

85
import pack_expansion_type_other
96

test/TypeDecoder/variadic_nominal_types.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
// RUN: %empty-directory(%t)
22

3-
// RUN: %target-build-swift -emit-executable %s -g -o %t/variadic_nominal_types -emit-module -enable-experimental-feature VariadicGenerics -Xfrontend -disable-availability-checking
3+
// RUN: %target-build-swift -emit-executable %s -g -o %t/variadic_nominal_types -emit-module -Xfrontend -disable-availability-checking
44

55
// RUN: sed -ne '/\/\/ *DEMANGLE-TYPE: /s/\/\/ *DEMANGLE-TYPE: *//p' < %s > %t/input
66
// RUN: %lldb-moduleimport-test-with-sdk %t/variadic_nominal_types -type-from-mangled=%t/input | %FileCheck %s --check-prefix=CHECK-TYPE
77

8-
// Because of -enable-experimental-feature VariadicGenerics
9-
// REQUIRES: asserts
10-
118
struct Variadic<each T, U> {
129
struct Inner<each V, W> {}
1310
}

test/decl/protocol/conforms/variadic_generic_type.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// Because of -enable-experimental-feature VariadicGenerics
4-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
52

63
// Generic parameter packs cannot witness associated type requirements
74
protocol HasAssoc {

test/type/pack_expansion.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
2-
3-
// REQUIRES: asserts
1+
// RUN: %target-typecheck-verify-swift -disable-availability-checking
42

53
func f1<each T>() -> repeat each T {}
64
// expected-error@-1 {{pack expansion 'repeat each T' can only appear in a function parameter list, tuple element, or generic argument list}}

0 commit comments

Comments
 (0)