Skip to content

Commit b6a2791

Browse files
authored
Merge pull request #65899 from slavapestov/variadic-type-availability
Variadic type availability
2 parents ee5b3b1 + 4318a36 commit b6a2791

31 files changed

+102
-118
lines changed

include/swift/AST/ASTContext.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -929,6 +929,10 @@ class ASTContext final {
929929
/// needed to place array buffers into constant data sections.
930930
AvailabilityContext getImmortalRefCountSymbolsAvailability();
931931

932+
/// Get the runtime availability of runtime functions for
933+
/// variadic generic types.
934+
AvailabilityContext getVariadicGenericTypeAvailability();
935+
932936
/// Get the runtime availability of features introduced in the Swift 5.2
933937
/// compiler for the target platform.
934938
AvailabilityContext getSwift52Availability();

include/swift/AST/DiagnosticsSema.def

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,10 +2160,10 @@ NOTE(decl_import_via_here,none,
21602160

21612161
// Opaque return types
21622162
ERROR(opaque_type_invalid_constraint,none,
2163-
"an 'opaque' type must specify only 'Any', 'AnyObject', protocols, "
2163+
"a 'some' type must specify only 'Any', 'AnyObject', protocols, "
21642164
"and/or a base class", ())
21652165
NOTE(opaque_of_optional_rewrite,none,
2166-
"did you mean to write an optional of an 'opaque' type?", ())
2166+
"did you mean to write an optional of an 'some' type?", ())
21672167
ERROR(inferred_opaque_type,none,
21682168
"property definition has inferred type %0, involving the 'some' "
21692169
"return type of another declaration", (Type))
@@ -6148,6 +6148,10 @@ ERROR(availability_parameterized_protocol_only_version_newer, none,
61486148
"%0 %1 or newer",
61496149
(StringRef, llvm::VersionTuple))
61506150

6151+
ERROR(availability_variadic_type_only_version_newer, none,
6152+
"parameter packs in generic types are only available in %0 %1 or newer",
6153+
(StringRef, llvm::VersionTuple))
6154+
61516155
NOTE(availability_guard_with_version_check, none,
61526156
"add 'if #available' version check", ())
61536157

lib/AST/Availability.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,11 @@ ASTContext::getImmortalRefCountSymbolsAvailability() {
518518
return getSwiftFutureAvailability();
519519
}
520520

521+
AvailabilityContext
522+
ASTContext::getVariadicGenericTypeAvailability() {
523+
return getSwift59Availability();
524+
}
525+
521526
AvailabilityContext ASTContext::getSwift52Availability() {
522527
auto target = LangOpts.Target;
523528

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 32 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -2008,67 +2008,56 @@ static void fixAvailability(SourceRange ReferenceRange,
20082008
}
20092009
}
20102010

2011-
void TypeChecker::diagnosePotentialOpaqueTypeUnavailability(
2012-
SourceRange ReferenceRange, const DeclContext *ReferenceDC,
2011+
void TypeChecker::diagnosePotentialUnavailability(
2012+
SourceRange ReferenceRange, Diag<StringRef, llvm::VersionTuple> Diag,
2013+
const DeclContext *ReferenceDC,
20132014
const UnavailabilityReason &Reason) {
20142015
ASTContext &Context = ReferenceDC->getASTContext();
20152016

20162017
auto RequiredRange = Reason.getRequiredOSVersionRange();
20172018
{
20182019
auto Err =
20192020
Context.Diags.diagnose(
2020-
ReferenceRange.Start, diag::availability_opaque_types_only_version_newer,
2021+
ReferenceRange.Start, Diag,
20212022
prettyPlatformString(targetPlatform(Context.LangOpts)),
20222023
Reason.getRequiredOSVersionRange().getLowerEndpoint());
20232024

20242025
// Direct a fixit to the error if an existing guard is nearly-correct
2025-
if (fixAvailabilityByNarrowingNearbyVersionCheck(ReferenceRange,
2026-
ReferenceDC,
2027-
RequiredRange, Context, Err))
2028-
return;
2029-
}
2030-
fixAvailability(ReferenceRange, ReferenceDC, RequiredRange, Context);
2031-
}
2032-
2033-
static void diagnosePotentialConcurrencyUnavailability(
2034-
SourceRange ReferenceRange, const DeclContext *ReferenceDC,
2035-
const UnavailabilityReason &Reason) {
2036-
ASTContext &Context = ReferenceDC->getASTContext();
2037-
2038-
auto RequiredRange = Reason.getRequiredOSVersionRange();
2039-
{
2040-
auto Err =
2041-
Context.Diags.diagnose(
2042-
ReferenceRange.Start,
2043-
diag::availability_concurrency_only_version_newer,
2044-
prettyPlatformString(targetPlatform(Context.LangOpts)),
2045-
Reason.getRequiredOSVersionRange().getLowerEndpoint());
2046-
2047-
// Direct a fixit to the error if an existing guard is nearly-correct
2048-
if (fixAvailabilityByNarrowingNearbyVersionCheck(ReferenceRange,
2049-
ReferenceDC,
2050-
RequiredRange, Context, Err))
2026+
if (fixAvailabilityByNarrowingNearbyVersionCheck(
2027+
ReferenceRange, ReferenceDC, RequiredRange, Context, Err))
20512028
return;
20522029
}
20532030
fixAvailability(ReferenceRange, ReferenceDC, RequiredRange, Context);
20542031
}
20552032

2056-
void TypeChecker::checkConcurrencyAvailability(SourceRange ReferenceRange,
2057-
const DeclContext *ReferenceDC) {
2058-
// Check the availability of concurrency runtime support.
2033+
bool TypeChecker::checkAvailability(SourceRange ReferenceRange,
2034+
AvailabilityContext Availability,
2035+
Diag<StringRef, llvm::VersionTuple> Diag,
2036+
const DeclContext *ReferenceDC) {
20592037
ASTContext &ctx = ReferenceDC->getASTContext();
20602038
if (ctx.LangOpts.DisableAvailabilityChecking)
2061-
return;
2039+
return false;
20622040

20632041
auto runningOS =
20642042
TypeChecker::overApproximateAvailabilityAtLocation(
20652043
ReferenceRange.Start, ReferenceDC);
2066-
auto availability = ctx.getBackDeployedConcurrencyAvailability();
2067-
if (!runningOS.isContainedIn(availability)) {
2068-
diagnosePotentialConcurrencyUnavailability(
2069-
ReferenceRange, ReferenceDC,
2070-
UnavailabilityReason::requiresVersionRange(availability.getOSVersion()));
2044+
if (!runningOS.isContainedIn(Availability)) {
2045+
diagnosePotentialUnavailability(
2046+
ReferenceRange, Diag, ReferenceDC,
2047+
UnavailabilityReason::requiresVersionRange(Availability.getOSVersion()));
2048+
return true;
20712049
}
2050+
2051+
return false;
2052+
}
2053+
2054+
void TypeChecker::checkConcurrencyAvailability(SourceRange ReferenceRange,
2055+
const DeclContext *ReferenceDC) {
2056+
checkAvailability(
2057+
ReferenceRange,
2058+
ReferenceDC->getASTContext().getBackDeployedConcurrencyAvailability(),
2059+
diag::availability_concurrency_only_version_newer,
2060+
ReferenceDC);
20722061
}
20732062

20742063
/// Returns the diagnostic to emit for the potentially unavailable decl and sets
@@ -2996,45 +2985,13 @@ bool isSubscriptReturningString(const ValueDecl *D, ASTContext &Context) {
29962985
return resultTy->isString();
29972986
}
29982987

2999-
static bool diagnosePotentialParameterizedProtocolUnavailability(
3000-
SourceRange ReferenceRange, const DeclContext *ReferenceDC,
3001-
const UnavailabilityReason &Reason) {
3002-
ASTContext &Context = ReferenceDC->getASTContext();
3003-
3004-
auto RequiredRange = Reason.getRequiredOSVersionRange();
3005-
{
3006-
auto Err = Context.Diags.diagnose(
3007-
ReferenceRange.Start,
3008-
diag::availability_parameterized_protocol_only_version_newer,
3009-
prettyPlatformString(targetPlatform(Context.LangOpts)),
3010-
Reason.getRequiredOSVersionRange().getLowerEndpoint());
3011-
3012-
// Direct a fixit to the error if an existing guard is nearly-correct
3013-
if (fixAvailabilityByNarrowingNearbyVersionCheck(
3014-
ReferenceRange, ReferenceDC, RequiredRange, Context, Err))
3015-
return true;
3016-
}
3017-
fixAvailability(ReferenceRange, ReferenceDC, RequiredRange, Context);
3018-
return true;
3019-
}
3020-
30212988
bool swift::diagnoseParameterizedProtocolAvailability(
30222989
SourceRange ReferenceRange, const DeclContext *ReferenceDC) {
3023-
// Check the availability of parameterized existential runtime support.
3024-
ASTContext &ctx = ReferenceDC->getASTContext();
3025-
if (ctx.LangOpts.DisableAvailabilityChecking)
3026-
return false;
3027-
3028-
auto runningOS = TypeChecker::overApproximateAvailabilityAtLocation(
3029-
ReferenceRange.Start, ReferenceDC);
3030-
auto availability = ctx.getParameterizedExistentialRuntimeAvailability();
3031-
if (!runningOS.isContainedIn(availability)) {
3032-
return diagnosePotentialParameterizedProtocolUnavailability(
3033-
ReferenceRange, ReferenceDC,
3034-
UnavailabilityReason::requiresVersionRange(
3035-
availability.getOSVersion()));
3036-
}
3037-
return false;
2990+
return TypeChecker::checkAvailability(
2991+
ReferenceRange,
2992+
ReferenceDC->getASTContext().getParameterizedExistentialRuntimeAvailability(),
2993+
diag::availability_parameterized_protocol_only_version_newer,
2994+
ReferenceDC);
30382995
}
30392996

30402997
static void

lib/Sema/TypeCheckDeclPrimary.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,12 @@ static void checkGenericParams(GenericContext *ownerCtx) {
484484
decl->diagnose(diag::experimental_type_with_parameter_pack);
485485
}
486486

487+
TypeChecker::checkAvailability(
488+
gp->getSourceRange(),
489+
ownerCtx->getASTContext().getVariadicGenericTypeAvailability(),
490+
diag::availability_variadic_type_only_version_newer,
491+
ownerCtx);
492+
487493
if (hasPack) {
488494
gp->diagnose(diag::more_than_one_pack_in_type);
489495
}

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,11 @@ OpaqueResultTypeRequest::evaluate(Evaluator &evaluator,
8585
}
8686

8787
// Check the availability of the opaque type runtime support.
88-
if (!ctx.LangOpts.DisableAvailabilityChecking) {
89-
auto runningOS =
90-
TypeChecker::overApproximateAvailabilityAtLocation(
91-
repr->getLoc(),
92-
originatingDecl->getInnermostDeclContext());
93-
auto availability = ctx.getOpaqueTypeAvailability();
94-
if (!runningOS.isContainedIn(availability)) {
95-
TypeChecker::diagnosePotentialOpaqueTypeUnavailability(
96-
repr->getSourceRange(),
97-
originatingDecl->getInnermostDeclContext(),
98-
UnavailabilityReason::requiresVersionRange(availability.getOSVersion()));
99-
}
100-
}
88+
TypeChecker::checkAvailability(
89+
repr->getSourceRange(),
90+
ctx.getOpaqueTypeAvailability(),
91+
diag::availability_opaque_types_only_version_newer,
92+
originatingDecl->getInnermostDeclContext());
10193

10294
// Create a generic signature for the opaque environment. This is the outer
10395
// generic signature with an added generic parameters representing the opaque

lib/Sema/TypeChecker.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,16 +1117,22 @@ void diagnosePotentialUnavailability(const RootProtocolConformance *rootConf,
11171117
const UnavailabilityReason &reason);
11181118

11191119
void
1120-
diagnosePotentialOpaqueTypeUnavailability(SourceRange ReferenceRange,
1121-
const DeclContext *ReferenceDC,
1122-
const UnavailabilityReason &Reason);
1120+
diagnosePotentialUnavailability(SourceRange ReferenceRange,
1121+
Diag<StringRef, llvm::VersionTuple> Diag,
1122+
const DeclContext *ReferenceDC,
1123+
const UnavailabilityReason &Reason);
11231124

11241125
/// Type check a 'distributed actor' declaration.
11251126
void checkDistributedActor(SourceFile *SF, NominalTypeDecl *decl);
11261127

11271128
/// Type check a single 'distributed func' declaration.
11281129
void checkDistributedFunc(FuncDecl *func);
11291130

1131+
bool checkAvailability(SourceRange ReferenceRange,
1132+
AvailabilityContext Availability,
1133+
Diag<StringRef, llvm::VersionTuple> Diag,
1134+
const DeclContext *ReferenceDC);
1135+
11301136
void checkConcurrencyAvailability(SourceRange ReferenceRange,
11311137
const DeclContext *ReferenceDC);
11321138

test/Constraints/one_element_tuple.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// REQUIRES: asserts
44

test/Constraints/variadic_generic_types.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// REQUIRES: asserts
44

test/DebugInfo/variadic-generics-count.swift

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

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

test/Generics/pack-shape-requirements.swift

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

33
// REQUIRES: asserts
44

test/Generics/variadic_generic_requirements.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// REQUIRES: asserts
44

test/Generics/variadic_generic_types.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
2+
3+
// Because of -enable-experimental-feature VariadicGenerics
4+
// REQUIRES: asserts
5+
6+
// REQUIRES: OS=macosx
7+
8+
struct G<each T> {}
9+
// expected-note@-1 {{add @available attribute to enclosing generic struct}}
10+
// expected-error@-2 {{parameter packs in generic types are only available in macOS 99.99.0 or newer}}

test/IRGen/pack_archetype_canonicalization.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

test/IRGen/variadic_generic_fulfillment.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics | %FileCheck %s -DINT=i%target-ptrsize
1+
// RUN: %target-swift-frontend -emit-ir %s -enable-experimental-feature VariadicGenerics -disable-availability-checking | %FileCheck %s -DINT=i%target-ptrsize
22

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

test/IRGen/variadic_generic_types.swift

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

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

test/Interpreter/variadic_generic_conformances.swift

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

33
// REQUIRES: executable_test
44

test/Interpreter/variadic_generic_types.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// RUN: %target-run-simple-swift(-enable-experimental-feature VariadicGenerics -Xfrontend -disable-concrete-type-metadata-mangled-name-accessors)
2-
// RUN: %target-run-simple-swift(-enable-experimental-feature VariadicGenerics)
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)
33

44
// REQUIRES: executable_test
55

test/ModuleInterface/pack_expansion_type.swift

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

55
// Experimental features require an asserts compiler

test/Parse/type_parameter_packs.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics
1+
// RUN: %target-typecheck-verify-swift -enable-experimental-feature VariadicGenerics -disable-availability-checking
22

33
// REQUIRES: asserts
44

test/SILGen/pack_expansion_type.swift

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

33
// Experimental features require an asserts compiler
44
// REQUIRES: asserts

test/SILGen/variadic-generic-closures.swift

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

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

test/SILGen/variadic-generic-tuples.swift

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

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

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

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

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

test/SILGen/variadic_generic_types.swift

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

33
// Because of -enable-experimental-feature VariadicGenerics
44
// REQUIRES: asserts

test/Serialization/pack_expansion_type.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +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
3-
// RUN: %target-typecheck-verify-swift -I %t -enable-experimental-feature VariadicGenerics
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
44

55
// Experimental features require an asserts compiler
66
// REQUIRES: asserts

test/TypeDecoder/variadic_nominal_types.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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
3+
// RUN: %target-build-swift -emit-executable %s -g -o %t/variadic_nominal_types -emit-module -enable-experimental-feature VariadicGenerics -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

0 commit comments

Comments
 (0)