Skip to content

Commit 8da6cae

Browse files
committed
Add experimental feature for type witness system inference
1 parent 333ae3f commit 8da6cae

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

include/swift/Basic/Features.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ EXPERIMENTAL_FEATURE(NamedOpaqueTypes)
8989
EXPERIMENTAL_FEATURE(FlowSensitiveConcurrencyCaptures)
9090
EXPERIMENTAL_FEATURE(MoveOnly)
9191
EXPERIMENTAL_FEATURE(OneWayClosureParameters)
92+
EXPERIMENTAL_FEATURE(TypeWitnessSystemInference)
9293

9394
#undef EXPERIMENTAL_FEATURE
9495
#undef SUPPRESSIBLE_LANGUAGE_FEATURE

include/swift/Basic/LangOptions.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,10 +330,6 @@ namespace swift {
330330
/// Enable inference of Sendable conformances for public types.
331331
bool EnableInferPublicSendable = false;
332332

333-
/// Enable experimental associated type inference using type witness
334-
/// systems.
335-
bool EnableExperimentalAssociatedTypeInference = false;
336-
337333
/// Disable the implicit import of the _Concurrency module.
338334
bool DisableImplicitConcurrencyModuleImport =
339335
!SWIFT_IMPLICIT_CONCURRENCY_IMPORT;

lib/AST/ASTPrinter.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3019,6 +3019,10 @@ static bool usesFeatureOneWayClosureParameters(Decl *decl) {
30193019
return false;
30203020
}
30213021

3022+
static bool usesFeatureTypeWitnessSystemInference(Decl *decl) {
3023+
return false;
3024+
}
3025+
30223026
static void
30233027
suppressingFeatureNoAsyncAvailability(PrintOptions &options,
30243028
llvm::function_ref<void()> action) {

lib/Frontend/CompilerInvocation.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
455455
OPT_disable_experimental_opened_existential_types,
456456
true);
457457

458-
Opts.EnableExperimentalAssociatedTypeInference |=
459-
Args.hasArg(OPT_enable_experimental_associated_type_inference);
460-
461458
Opts.EnableInferPublicSendable |=
462459
Args.hasFlag(OPT_enable_infer_public_concurrent_value,
463460
OPT_disable_infer_public_concurrent_value,
@@ -655,14 +652,16 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
655652
Opts.Features.insert(Feature::VariadicGenerics);
656653
if (Args.hasArg(OPT_enable_experimental_static_assert))
657654
Opts.Features.insert(Feature::StaticAssert);
658-
if (Args.hasArg(OPT_enable_experimental_associated_type_inference))
655+
if (Args.hasArg(OPT_enable_experimental_named_opaque_types))
659656
Opts.Features.insert(Feature::NamedOpaqueTypes);
660657
if (Args.hasArg(OPT_enable_experimental_flow_sensitive_concurrent_captures))
661658
Opts.Features.insert(Feature::FlowSensitiveConcurrencyCaptures);
662659
if (Args.hasArg(OPT_enable_experimental_move_only))
663660
Opts.Features.insert(Feature::MoveOnly);
664661
if (Args.hasArg(OPT_experimental_one_way_closure_params))
665662
Opts.Features.insert(Feature::OneWayClosureParameters);
663+
if (Args.hasArg(OPT_enable_experimental_associated_type_inference))
664+
Opts.Features.insert(Feature::TypeWitnessSystemInference);
666665

667666
Opts.EnableAppExtensionRestrictions |= Args.hasArg(OPT_enable_app_extension);
668667

lib/Sema/TypeCheckProtocolInference.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1206,7 +1206,7 @@ AssociatedTypeDecl *AssociatedTypeInference::inferAbstractTypeWitnesses(
12061206
// not resolve otherwise.
12071207
llvm::SmallVector<AbstractTypeWitness, 2> abstractTypeWitnesses;
12081208

1209-
if (ctx.LangOpts.EnableExperimentalAssociatedTypeInference) {
1209+
if (ctx.LangOpts.hasFeature(Feature::TypeWitnessSystemInference)) {
12101210
TypeWitnessSystem system(unresolvedAssocTypes);
12111211
collectAbstractTypeWitnesses(system, unresolvedAssocTypes);
12121212

0 commit comments

Comments
 (0)