Skip to content

Commit aad2669

Browse files
committed
[parse] Generalize "Need experimental feature flag" parser error to work for general experimental features instead of just NonEscapableTypes.
1 parent 9193634 commit aad2669

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

include/swift/AST/DiagnosticsParse.def

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,10 +2160,10 @@ ERROR(duplicate_storage_restrictions_attr_label,none,
21602160
ERROR(storage_restrictions_attr_expected_name,none,
21612161
"expected property name in @storageRestrictions list", ())
21622162

2163-
ERROR(requires_non_escapable_types, none,
2164-
"'%0' %select{attribute|parameter specifier}1 is only valid when experimental "
2165-
"NonescapableTypes is enabled",
2166-
(StringRef, bool))
2163+
ERROR(requires_experimental_feature, none,
2164+
"'%0' %select{attribute|parameter specifier}1 is only valid when experimental feature "
2165+
"%2 is enabled",
2166+
(StringRef, bool, StringRef))
21672167

21682168
#define UNDEFINE_DIAGNOSTIC_MACROS
21692169
#include "DefineDiagnosticMacros.h"

lib/Parse/ParseDecl.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2873,7 +2873,8 @@ ParserStatus Parser::parseNewDeclAttribute(DeclAttributes &Attributes,
28732873

28742874
if (DK == DAK_ResultDependsOnSelf &&
28752875
!Context.LangOpts.hasFeature(Feature::NonescapableTypes)) {
2876-
diagnose(Loc, diag::requires_non_escapable_types, AttrName, true);
2876+
diagnose(Loc, diag::requires_experimental_feature, AttrName, true,
2877+
getFeatureName(Feature::NonescapableTypes));
28772878
DiscardAttribute = true;
28782879
}
28792880

@@ -5161,8 +5162,8 @@ ParserStatus Parser::parseTypeAttributeListPresent(
51615162

51625163
if (Tok.isContextualKeyword("_resultDependsOn")) {
51635164
if (!Context.LangOpts.hasFeature(Feature::NonescapableTypes)) {
5164-
diagnose(Tok, diag::requires_non_escapable_types, "resultDependsOn",
5165-
false);
5165+
diagnose(Tok, diag::requires_experimental_feature, "resultDependsOn",
5166+
false, getFeatureName(Feature::NonescapableTypes));
51665167
}
51675168
ResultDependsOnLoc = consumeToken();
51685169
continue;

0 commit comments

Comments
 (0)