Skip to content

Commit 1e2111a

Browse files
committed
NCGenerics: add flag to opt-out SE-427 strictness
This is mainly for tests to avoid the reverse condfail.
1 parent 1a0fb4c commit 1e2111a

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
@@ -397,6 +397,8 @@ EXPERIMENTAL_FEATURE(DebugDescriptionMacro, true)
397397

398398
EXPERIMENTAL_FEATURE(ReinitializeConsumeInMultiBlockDefer, false)
399399

400+
EXPERIMENTAL_FEATURE(SE427NoInferenceOnExtension, false)
401+
400402
#undef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE
401403
#undef EXPERIMENTAL_FEATURE
402404
#undef UPCOMING_FEATURE

lib/AST/FeatureSet.cpp

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

773773
UNINTERESTING_FEATURE(DebugDescriptionMacro)
774774
UNINTERESTING_FEATURE(ReinitializeConsumeInMultiBlockDefer)
775+
UNINTERESTING_FEATURE(SE427NoInferenceOnExtension)
775776

776777
// ----------------------------------------------------------------------------
777778
// MARK: - FeatureSet

lib/Sema/TypeCheckGeneric.cpp

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

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)