@@ -81,8 +81,9 @@ ENUM_CLASS(UsageWarning, Portability, PointerToUndefinable,
8181
8282using LanguageFeatures = EnumSet<LanguageFeature, LanguageFeature_enumSize>;
8383using UsageWarnings = EnumSet<UsageWarning, UsageWarning_enumSize>;
84- using Warning = std::variant<LanguageFeature, UsageWarning>;
85- using WarningAndEnabled = std::pair<Warning, bool >;
84+ using LanguageFeatureOrWarning = std::variant<LanguageFeature, UsageWarning>;
85+ using LanguageControlFlag =
86+ std::pair<LanguageFeatureOrWarning, /* shouldEnable=*/ bool >;
8687
8788class LanguageFeatureControl {
8889public:
@@ -96,11 +97,11 @@ class LanguageFeatureControl {
9697 void EnableWarning (UsageWarning w, bool yes = true ) {
9798 warnUsage_.set (w, yes);
9899 }
99- void EnableWarning (Warning warning , bool yes = true ) {
100- if (std::holds_alternative<LanguageFeature>(warning )) {
101- EnableWarning (std::get<LanguageFeature>(warning ), yes);
100+ void EnableWarning (LanguageFeatureOrWarning flag , bool yes = true ) {
101+ if (std::holds_alternative<LanguageFeature>(flag )) {
102+ EnableWarning (std::get<LanguageFeature>(flag ), yes);
102103 } else {
103- EnableWarning (std::get<UsageWarning>(warning ), yes);
104+ EnableWarning (std::get<UsageWarning>(flag ), yes);
104105 }
105106 }
106107 void WarnOnAllNonstandard (bool yes = true );
@@ -126,7 +127,7 @@ class LanguageFeatureControl {
126127 bool ShouldWarn (UsageWarning w) const { return warnUsage_.test (w); }
127128 // Cli options
128129 // Find a warning by its Cli spelling, i.e. '[no-]warning-name'.
129- std::optional<WarningAndEnabled > FindWarning (std::string_view input);
130+ std::optional<LanguageControlFlag > FindWarning (std::string_view input);
130131 // Take a string from the Cli and apply it to the LanguageFeatureControl.
131132 // Return true if the option was recognized (and hence applied).
132133 bool EnableWarning (std::string_view input);
0 commit comments