Skip to content

Commit 94d1e5e

Browse files
authored
Avoid reserved names in C++ code: "__Consuming" (#26720)
Double-underscored names are reserved for the C++ "implementation" (language and standard library). Even though "__Consuming" isn't likely to be part of the C++ standard any time soon, we should follow the rules. Note that the API digester will continue to use the string "__Consuming" for now, even though the underscores aren't really significant, to avoid invalidating existing dumps. No functionality change.
1 parent e9bcca8 commit 94d1e5e

File tree

11 files changed

+26
-21
lines changed

11 files changed

+26
-21
lines changed

include/swift/AST/Decl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5934,7 +5934,7 @@ class OperatorDecl;
59345934
enum class SelfAccessKind : uint8_t {
59355935
NonMutating,
59365936
Mutating,
5937-
__Consuming,
5937+
Consuming,
59385938
};
59395939

59405940
/// Diagnostic printing of \c SelfAccessKind.
@@ -6037,7 +6037,7 @@ class FuncDecl : public AbstractFunctionDecl {
60376037
return getSelfAccessKind() == SelfAccessKind::NonMutating;
60386038
}
60396039
bool isConsuming() const {
6040-
return getSelfAccessKind() == SelfAccessKind::__Consuming;
6040+
return getSelfAccessKind() == SelfAccessKind::Consuming;
60416041
}
60426042

60436043
SelfAccessKind getSelfAccessKind() const;

include/swift/Serialization/ModuleFormat.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ using MetatypeRepresentationField = BCFixed<2>;
300300
enum class SelfAccessKind : uint8_t {
301301
NonMutating = 0,
302302
Mutating,
303-
__Consuming,
303+
Consuming,
304304
};
305305
using SelfAccessKindField = BCFixed<2>;
306306

lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2508,7 +2508,7 @@ AnyFunctionType::Param swift::computeSelfParam(AbstractFunctionDecl *AFD,
25082508

25092509
auto flags = ParameterTypeFlags();
25102510
switch (selfAccess) {
2511-
case SelfAccessKind::__Consuming:
2511+
case SelfAccessKind::Consuming:
25122512
flags = flags.withOwned(true);
25132513
break;
25142514
case SelfAccessKind::Mutating:

lib/AST/Decl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ llvm::raw_ostream &swift::operator<<(llvm::raw_ostream &OS,
359359
switch (SAK) {
360360
case SelfAccessKind::NonMutating: return OS << "'nonmutating'";
361361
case SelfAccessKind::Mutating: return OS << "'mutating'";
362-
case SelfAccessKind::__Consuming: return OS << "'__consuming'";
362+
case SelfAccessKind::Consuming: return OS << "'__consuming'";
363363
}
364364
llvm_unreachable("Unknown SelfAccessKind");
365365
}

lib/SILGen/SILGenApply.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4277,7 +4277,7 @@ bool SILGenModule::shouldEmitSelfAsRValue(FuncDecl *fn, CanType selfType) {
42774277
switch (fn->getSelfAccessKind()) {
42784278
case SelfAccessKind::Mutating:
42794279
return false;
4280-
case SelfAccessKind::__Consuming:
4280+
case SelfAccessKind::Consuming:
42814281
return true;
42824282
case SelfAccessKind::NonMutating:
42834283
// TODO: borrow 'self' for nonmutating methods on methods on value types.

lib/Sema/TypeCheckAttr.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ void AttributeEarlyChecker::visitMutationAttr(DeclAttribute *attr) {
268268
SelfAccessKind attrModifier;
269269
switch (attr->getKind()) {
270270
case DeclAttrKind::DAK_Consuming:
271-
attrModifier = SelfAccessKind::__Consuming;
271+
attrModifier = SelfAccessKind::Consuming;
272272
break;
273273
case DeclAttrKind::DAK_Mutating:
274274
attrModifier = SelfAccessKind::Mutating;
@@ -285,7 +285,7 @@ void AttributeEarlyChecker::visitMutationAttr(DeclAttribute *attr) {
285285
// 'mutating' and 'nonmutating' are not valid on types
286286
// with reference semantics.
287287
if (contextTy->hasReferenceSemantics()) {
288-
if (attrModifier != SelfAccessKind::__Consuming)
288+
if (attrModifier != SelfAccessKind::Consuming)
289289
diagnoseAndRemoveAttr(attr, diag::mutating_invalid_classes,
290290
attrModifier);
291291
}
@@ -314,9 +314,9 @@ void AttributeEarlyChecker::visitMutationAttr(DeclAttribute *attr) {
314314
}
315315

316316
if (auto *CSA = FD->getAttrs().getAttribute<ConsumingAttr>()) {
317-
if (attrModifier != SelfAccessKind::__Consuming) {
317+
if (attrModifier != SelfAccessKind::Consuming) {
318318
diagnoseAndRemoveAttr(CSA, diag::functions_mutating_and_not,
319-
SelfAccessKind::__Consuming, attrModifier);
319+
SelfAccessKind::Consuming, attrModifier);
320320
}
321321
}
322322
}

lib/Sema/TypeCheckDecl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1980,7 +1980,7 @@ SelfAccessKindRequest::evaluate(Evaluator &evaluator, FuncDecl *FD) const {
19801980
} else if (FD->getAttrs().hasAttribute<NonMutatingAttr>()) {
19811981
return SelfAccessKind::NonMutating;
19821982
} else if (FD->getAttrs().hasAttribute<ConsumingAttr>()) {
1983-
return SelfAccessKind::__Consuming;
1983+
return SelfAccessKind::Consuming;
19841984
}
19851985

19861986
if (auto *AD = dyn_cast<AccessorDecl>(FD)) {

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2133,7 +2133,7 @@ diagnoseMatch(ModuleDecl *module, NormalProtocolConformance *conformance,
21332133
// FIXME: Could emit a Fix-It here.
21342134
diags.diagnose(match.Witness,
21352135
diag::protocol_witness_mutation_modifier_conflict,
2136-
SelfAccessKind::__Consuming);
2136+
SelfAccessKind::Consuming);
21372137
break;
21382138
case MatchKind::RethrowsConflict:
21392139
// FIXME: Could emit a Fix-It here.

lib/Serialization/Deserialization.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,8 +2126,8 @@ getActualSelfAccessKind(uint8_t raw) {
21262126
return swift::SelfAccessKind::NonMutating;
21272127
case serialization::SelfAccessKind::Mutating:
21282128
return swift::SelfAccessKind::Mutating;
2129-
case serialization::SelfAccessKind::__Consuming:
2130-
return swift::SelfAccessKind::__Consuming;
2129+
case serialization::SelfAccessKind::Consuming:
2130+
return swift::SelfAccessKind::Consuming;
21312131
}
21322132
return None;
21332133
}

lib/Serialization/Serialization.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1984,8 +1984,8 @@ getStableSelfAccessKind(swift::SelfAccessKind MM) {
19841984
return serialization::SelfAccessKind::NonMutating;
19851985
case swift::SelfAccessKind::Mutating:
19861986
return serialization::SelfAccessKind::Mutating;
1987-
case swift::SelfAccessKind::__Consuming:
1988-
return serialization::SelfAccessKind::__Consuming;
1987+
case swift::SelfAccessKind::Consuming:
1988+
return serialization::SelfAccessKind::Consuming;
19891989
}
19901990

19911991
llvm_unreachable("Unhandled StaticSpellingKind in switch.");

tools/swift-api-digester/ModuleAnalyzerNodes.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1330,15 +1330,20 @@ SDKNodeInitInfo::SDKNodeInitInfo(SDKContext &Ctx, ValueDecl *VD)
13301330
}
13311331
}
13321332

1333-
#define CASE(BASE, KIND, KEY) case BASE::KIND: KEY = #KIND; break;
13341333
if (auto *FD = dyn_cast<FuncDecl>(VD)) {
13351334
switch(FD->getSelfAccessKind()) {
1336-
CASE(SelfAccessKind, Mutating, FuncSelfKind)
1337-
CASE(SelfAccessKind, __Consuming, FuncSelfKind)
1338-
CASE(SelfAccessKind, NonMutating, FuncSelfKind)
1335+
case SelfAccessKind::Mutating:
1336+
FuncSelfKind = "Mutating";
1337+
break;
1338+
case SelfAccessKind::Consuming:
1339+
// FIXME: Stay consistent with earlier digests that had underscores here.
1340+
FuncSelfKind = "__Consuming";
1341+
break;
1342+
case SelfAccessKind::NonMutating:
1343+
FuncSelfKind = "NonMutating";
1344+
break;
13391345
}
13401346
}
1341-
#undef CASE
13421347

13431348
// Get enum raw type name if this is an enum.
13441349
if (auto *ED = dyn_cast<EnumDecl>(VD)) {

0 commit comments

Comments
 (0)