Skip to content

Commit 82a1bb5

Browse files
committed
NCGenerics: add flag to opt-out SE-427 strictness
This is mainly for tests to avoid the reverse condfail. (cherry picked from commit 1e2111a)
1 parent 1289ba3 commit 82a1bb5

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

include/swift/Basic/Features.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE(DebugDescriptionMacro, true)
387387

388388
EXPERIMENTAL_FEATURE(ReinitializeConsumeInMultiBlockDefer, false)
389389

390+
EXPERIMENTAL_FEATURE(SE427NoInferenceOnExtension, false)
391+
390392
#undef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE
391393
#undef EXPERIMENTAL_FEATURE
392394
#undef UPCOMING_FEATURE

lib/AST/FeatureSet.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,7 @@ static bool usesFeatureGlobalActorIsolatedTypesUsability(Decl *decl) {
771771
}
772772

773773
UNINTERESTING_FEATURE(ReinitializeConsumeInMultiBlockDefer)
774+
UNINTERESTING_FEATURE(SE427NoInferenceOnExtension)
774775

775776
// ----------------------------------------------------------------------------
776777
// MARK: - FeatureSet

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,8 @@ GenericSignatureRequest::evaluate(Evaluator &evaluator,
794794
// the extension is in a swiftinterface file. This is temporary and should
795795
// be removed soon. (rdar://130424971)
796796
if (auto *sf = ext->getOutermostParentSourceFile()) {
797-
if (sf->Kind == SourceFileKind::Interface)
797+
if (sf->Kind == SourceFileKind::Interface
798+
&& !ctx.LangOpts.hasFeature(Feature::SE427NoInferenceOnExtension))
798799
inferInvertibleReqs = true;
799800
}
800801

test/ModuleInterface/noncopyable_generics.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
// RUN: %empty-directory(%t)
22

3+
// Due to SE427NoInferenceOnExtension not being in production
4+
// REQUIRES: asserts
5+
36
// RUN: %target-swift-frontend -swift-version 5 -enable-library-evolution -emit-module \
47
// RUN: -enable-experimental-feature SuppressedAssociatedTypes \
58
// RUN: -enable-experimental-feature NonescapableTypes \
9+
// RUN: -enable-experimental-feature SE427NoInferenceOnExtension \
610
// RUN: -o %t/NoncopyableGenerics_Misc.swiftmodule \
711
// RUN: -emit-module-interface-path %t/NoncopyableGenerics_Misc.swiftinterface \
812
// RUN: %S/Inputs/NoncopyableGenerics_Misc.swift
913

1014
// RUN: %target-swift-frontend -swift-version 5 -enable-library-evolution -emit-module \
1115
// RUN: -enable-experimental-feature SuppressedAssociatedTypes \
1216
// RUN: -enable-experimental-feature NonescapableTypes \
17+
// RUN: -enable-experimental-feature SE427NoInferenceOnExtension \
1318
// RUN: -o %t/Swiftskell.swiftmodule \
1419
// RUN: -emit-module-interface-path %t/Swiftskell.swiftinterface \
1520
// RUN: %S/../Inputs/Swiftskell.swift
@@ -24,16 +29,19 @@
2429
// RUN: %target-swift-frontend -compile-module-from-interface \
2530
// RUN: -enable-experimental-feature SuppressedAssociatedTypes \
2631
// RUN: -enable-experimental-feature NonescapableTypes \
32+
// RUN: -enable-experimental-feature SE427NoInferenceOnExtension \
2733
// RUN: %t/NoncopyableGenerics_Misc.swiftinterface -o %t/NoncopyableGenerics_Misc.swiftmodule
2834

2935
// RUN: %target-swift-frontend -compile-module-from-interface \
3036
// RUN: -enable-experimental-feature SuppressedAssociatedTypes \
3137
// RUN: -enable-experimental-feature NonescapableTypes \
38+
// RUN: -enable-experimental-feature SE427NoInferenceOnExtension \
3239
// RUN: %t/Swiftskell.swiftinterface -o %t/Swiftskell.swiftmodule
3340

3441
// RUN: %target-swift-frontend -emit-silgen -I %t %s \
3542
// RUN: -enable-experimental-feature SuppressedAssociatedTypes \
3643
// RUN: -enable-experimental-feature NonescapableTypes \
44+
// RUN: -enable-experimental-feature SE427NoInferenceOnExtension \
3745
// RUN: -o %t/final.silgen
3846

3947
// RUN: %FileCheck %s --check-prefix=CHECK-SILGEN < %t/final.silgen

0 commit comments

Comments
 (0)