Skip to content

Commit 0de5d78

Browse files
committed
Make named opaque types an experimental feature
1 parent a523473 commit 0de5d78

File tree

6 files changed

+9
-9
lines changed

6 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
@@ -85,6 +85,7 @@ SUPPRESSIBLE_LANGUAGE_FEATURE(NoAsyncAvailability, 340, "@available(*, noasync)"
8585

8686
EXPERIMENTAL_FEATURE(StaticAssert)
8787
EXPERIMENTAL_FEATURE(VariadicGenerics)
88+
EXPERIMENTAL_FEATURE(NamedOpaqueTypes)
8889

8990
#undef EXPERIMENTAL_FEATURE
9091
#undef SUPPRESSIBLE_LANGUAGE_FEATURE

include/swift/Basic/LangOptions.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,10 +317,6 @@ namespace swift {
317317
/// Enable experimental concurrency model.
318318
bool EnableExperimentalConcurrency = false;
319319

320-
/// Enable experimental support for named opaque result types, e.g.
321-
/// `func f() -> <T> T`.
322-
bool EnableExperimentalNamedOpaqueTypes = false;
323-
324320
/// Enable support for implicitly opening existential argument types
325321
/// in calls to generic functions.
326322
bool EnableOpenedExistentialTypes = false;

lib/AST/ASTPrinter.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3003,6 +3003,10 @@ static bool usesFeatureVariadicGenerics(Decl *decl) {
30033003
return false;
30043004
}
30053005

3006+
static bool usesFeatureNamedOpaqueTypes(Decl *decl) {
3007+
return false;
3008+
}
3009+
30063010
static void
30073011
suppressingFeatureNoAsyncAvailability(PrintOptions &options,
30083012
llvm::function_ref<void()> action) {

lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,9 +450,6 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
450450
Opts.EnableExperimentalConcurrency |=
451451
Args.hasArg(OPT_enable_experimental_concurrency);
452452

453-
Opts.EnableExperimentalNamedOpaqueTypes |=
454-
Args.hasArg(OPT_enable_experimental_named_opaque_types);
455-
456453
Opts.EnableOpenedExistentialTypes =
457454
Args.hasFlag(OPT_enable_experimental_opened_existential_types,
458455
OPT_disable_experimental_opened_existential_types,
@@ -663,6 +660,8 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
663660
Opts.Features.insert(Feature::VariadicGenerics);
664661
if (Args.hasArg(OPT_enable_experimental_static_assert))
665662
Opts.Features.insert(Feature::StaticAssert);
663+
if (Args.hasArg(OPT_enable_experimental_associated_type_inference))
664+
Opts.Features.insert(Feature::NamedOpaqueTypes);
666665

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

lib/Parse/ParseType.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ ParserResult<TypeRepr> Parser::parseType(
564564

565565
ParserResult<TypeRepr> Parser::parseTypeWithOpaqueParams(Diag<> MessageID) {
566566
GenericParamList *genericParams = nullptr;
567-
if (Context.LangOpts.EnableExperimentalNamedOpaqueTypes) {
567+
if (Context.LangOpts.hasFeature(Feature::NamedOpaqueTypes)) {
568568
auto result = maybeParseGenericParams();
569569
genericParams = result.getPtrOrNull();
570570
if (result.hasCodeCompletion())

tools/swift-ide-test/swift-ide-test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4299,7 +4299,7 @@ int main(int argc, char *argv[]) {
42994299
InitInvok.getLangOptions().DisableImplicitStringProcessingModuleImport = true;
43004300
}
43014301
if (options::EnableExperimentalNamedOpaqueTypes) {
4302-
InitInvok.getLangOptions().EnableExperimentalNamedOpaqueTypes = true;
4302+
InitInvok.getLangOptions().Features.insert(Feature::NamedOpaqueTypes);
43034303
}
43044304
if (options::EnableExperimentalStringProcessing) {
43054305
InitInvok.getLangOptions().EnableExperimentalStringProcessing = true;

0 commit comments

Comments
 (0)