Skip to content

Commit 1f0527d

Browse files
committed
[ast] Rename ParamSpecifier::{Transferring,ImplicitlyCopyableConsuming}.
The reason why I am doing this is that I am going to be changing transferring to not be a true ParamSpecifier. Instead, it is going to be a bit on Param that changes the default ParamSpecifier used. That being said, I cannot use consuming for this purpose since consuming today implies no implicit copy semantics, which we do not want unless the user specifically asks for it by writing consuming.
1 parent 5ce824f commit 1f0527d

13 files changed

+22
-23
lines changed

include/swift/AST/Decl.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -6776,7 +6776,7 @@ class ParamDecl : public VarDecl {
67766776
return true;
67776777
case Specifier::Consuming:
67786778
case Specifier::InOut:
6779-
case Specifier::Transferring:
6779+
case Specifier::ImplicitlyCopyableConsuming:
67806780
return false;
67816781
}
67826782
llvm_unreachable("unhandled specifier");
@@ -6794,7 +6794,7 @@ class ParamDecl : public VarDecl {
67946794
case ParamSpecifier::LegacyShared:
67956795
return ValueOwnership::Shared;
67966796
case ParamSpecifier::Consuming:
6797-
case ParamSpecifier::Transferring:
6797+
case ParamSpecifier::ImplicitlyCopyableConsuming:
67986798
case ParamSpecifier::LegacyOwned:
67996799
return ValueOwnership::Owned;
68006800
case ParamSpecifier::Default:

include/swift/AST/Types.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -2207,9 +2207,9 @@ enum class ParamSpecifier : uint8_t {
22072207
/// `__owned`, a legacy spelling of `consuming`.
22082208
LegacyOwned = 5,
22092209

2210-
/// `transferring`. Indicating the transfer of a value from one isolation
2211-
/// domain to another.
2212-
Transferring = 6,
2210+
/// A convention that is similar to consuming a parameter that is mutable and
2211+
/// var like, but for which no implicit copy semantics are not implemented.
2212+
ImplicitlyCopyableConsuming = 6,
22132213
};
22142214

22152215
/// Provide parameter type relevant flags, i.e. variadic, autoclosure, and

lib/AST/ASTBridging.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2176,7 +2176,7 @@ BridgedSpecifierTypeRepr BridgedSpecifierTypeRepr_createParsed(
21762176
}
21772177
case BridgedAttributedTypeSpecifierTransferring: {
21782178
return new (context)
2179-
OwnershipTypeRepr(baseType, ParamSpecifier::Transferring, loc);
2179+
OwnershipTypeRepr(baseType, ParamSpecifier::ImplicitlyCopyableConsuming, loc);
21802180
}
21812181
case BridgedAttributedTypeSpecifierConst: {
21822182
return new (context) CompileTimeConstTypeRepr(baseType, loc);

lib/AST/ASTMangler.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2887,7 +2887,7 @@ getParameterFlagsForMangling(ParameterTypeFlags flags,
28872887
case ParamSpecifier::InOut:
28882888
return flags;
28892889

2890-
case ParamSpecifier::Transferring:
2890+
case ParamSpecifier::ImplicitlyCopyableConsuming:
28912891
case ParamSpecifier::Consuming:
28922892
case ParamSpecifier::Borrowing:
28932893
// Only mangle the ownership if it diverges from the default.

lib/AST/ASTPrinter.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -3890,7 +3890,7 @@ static bool usesFeatureBitwiseCopyable(Decl *decl) { return false; }
38903890

38913891
static bool usesFeatureTransferringArgsAndResults(Decl *decl) {
38923892
if (auto *pd = dyn_cast<ParamDecl>(decl))
3893-
if (pd->getSpecifier() == ParamSpecifier::Transferring)
3893+
if (pd->getSpecifier() == ParamSpecifier::ImplicitlyCopyableConsuming)
38943894
return true;
38953895

38963896
// TODO: Results.
@@ -4592,8 +4592,8 @@ static void printParameterFlags(ASTPrinter &printer,
45924592
case ParamSpecifier::LegacyOwned:
45934593
printer.printKeyword("__owned", options, " ");
45944594
break;
4595-
case ParamSpecifier::Transferring:
4596-
printer.printKeyword("transferring", options, " ");
4595+
case ParamSpecifier::ImplicitlyCopyableConsuming:
4596+
printer.printKeyword("implicitly_copyable_consuming", options, " ");
45974597
break;
45984598
}
45994599

lib/AST/Decl.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -7774,7 +7774,7 @@ void ParamDecl::setSpecifier(Specifier specifier) {
77747774
// `inout` and `consuming` parameters are locally mutable.
77757775
case ParamSpecifier::InOut:
77767776
case ParamSpecifier::Consuming:
7777-
case ParamSpecifier::Transferring:
7777+
case ParamSpecifier::ImplicitlyCopyableConsuming:
77787778
introducer = VarDecl::Introducer::Var;
77797779
break;
77807780
}
@@ -7838,8 +7838,8 @@ StringRef ParamDecl::getSpecifierSpelling(ParamSpecifier specifier) {
78387838
return "__shared";
78397839
case ParamSpecifier::LegacyOwned:
78407840
return "__owned";
7841-
case ParamSpecifier::Transferring:
7842-
return "transferring";
7841+
case ParamSpecifier::ImplicitlyCopyableConsuming:
7842+
return "implicitly_copyable_consuming";
78437843
}
78447844
llvm_unreachable("invalid ParamSpecifier");
78457845
}
@@ -8442,7 +8442,7 @@ AnyFunctionType::Param ParamDecl::toFunctionParam(Type type) const {
84428442
type, isVariadic(), isAutoClosure(), isNonEphemeral(), getSpecifier(),
84438443
isIsolated(), /*isNoDerivative*/ false, isCompileTimeConst(),
84448444
hasResultDependsOn(),
8445-
getSpecifier() == ParamDecl::Specifier::Transferring /*is transferring*/);
8445+
getSpecifier() == ParamDecl::Specifier::ImplicitlyCopyableConsuming /*is transferring*/);
84468446
return AnyFunctionType::Param(type, label, flags, internalLabel);
84478447
}
84488448

lib/Parse/ParseDecl.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -5399,7 +5399,7 @@ ParserStatus Parser::ParsedTypeAttributeList::slowParse(Parser &P) {
53995399
} else if (Tok.getRawText().equals("borrowing")) {
54005400
Specifier = ParamDecl::Specifier::Borrowing;
54015401
} else if (Tok.getRawText().equals("transferring")) {
5402-
Specifier = ParamDecl::Specifier::Transferring;
5402+
Specifier = ParamDecl::Specifier::ImplicitlyCopyableConsuming;
54035403
} else if (Tok.getRawText().equals("consuming")) {
54045404
Specifier = ParamDecl::Specifier::Consuming;
54055405
}

lib/Parse/ParsePattern.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ Parser::parseParameterClause(SourceLoc &leftParenLoc,
286286
} else if (Context.LangOpts.hasFeature(
287287
Feature::TransferringArgsAndResults) &&
288288
Tok.isContextualKeyword("transferring")) {
289-
param.SpecifierKind = ParamDecl::Specifier::Transferring;
289+
param.SpecifierKind = ParamDecl::Specifier::ImplicitlyCopyableConsuming;
290290
param.SpecifierLoc = consumeToken();
291291
}
292292

lib/SILGen/SILGenLValue.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -3016,8 +3016,7 @@ class LLVM_LIBRARY_VISIBILITY SILGenBorrowedBaseVisitor
30163016
case ParamSpecifier::InOut:
30173017
case ParamSpecifier::LegacyShared:
30183018
case ParamSpecifier::LegacyOwned:
3019-
// For now, transferring isn't implicitly copyable.
3020-
case ParamSpecifier::Transferring:
3019+
case ParamSpecifier::ImplicitlyCopyableConsuming:
30213020
return false;
30223021
}
30233022
if (pd->hasResultDependsOn()) {

lib/SILGen/SILGenProlog.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -860,7 +860,7 @@ class ArgumentInitHelper {
860860
argrv = ManagedValue::forBorrowedAddressRValue(
861861
SGF.B.createCopyableToMoveOnlyWrapperAddr(pd, argrv.getValue()));
862862
break;
863-
case swift::ParamSpecifier::Transferring:
863+
case swift::ParamSpecifier::ImplicitlyCopyableConsuming:
864864
case swift::ParamSpecifier::Consuming:
865865
case swift::ParamSpecifier::Default:
866866
case swift::ParamSpecifier::InOut:

lib/Sema/TypeCheckType.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -3683,7 +3683,7 @@ TypeResolver::resolveASTFunctionTypeParams(TupleTypeRepr *inputRepr,
36833683
case TypeReprKind::Ownership:
36843684
ownership = cast<OwnershipTypeRepr>(specifierRepr)->getSpecifier();
36853685
nestedRepr = specifierRepr->getBase();
3686-
isTransferring = ownership == ParamSpecifier::Transferring;
3686+
isTransferring = ownership == ParamSpecifier::ImplicitlyCopyableConsuming;
36873687
continue;
36883688
case TypeReprKind::Isolated:
36893689
isolated = true;
@@ -4878,7 +4878,7 @@ TypeResolver::resolveOwnershipTypeRepr(OwnershipTypeRepr *repr,
48784878
case ParamSpecifier::LegacyOwned:
48794879
case ParamSpecifier::Borrowing:
48804880
break;
4881-
case ParamSpecifier::Transferring:
4881+
case ParamSpecifier::ImplicitlyCopyableConsuming:
48824882
case ParamSpecifier::Consuming:
48834883
if (auto *fnTy = result->getAs<FunctionType>()) {
48844884
if (fnTy->isNoEscape()) {

lib/Serialization/Deserialization.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2884,7 +2884,7 @@ getActualParamDeclSpecifier(serialization::ParamDeclSpecifier raw) {
28842884
CASE(Consuming)
28852885
CASE(LegacyShared)
28862886
CASE(LegacyOwned)
2887-
CASE(Transferring)
2887+
CASE(ImplicitlyCopyableConsuming)
28882888
}
28892889
#undef CASE
28902890
return llvm::None;

lib/Serialization/Serialization.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2547,7 +2547,7 @@ static uint8_t getRawStableParamDeclSpecifier(swift::ParamDecl::Specifier sf) {
25472547
return uint8_t(serialization::ParamDeclSpecifier::LegacyShared);
25482548
case swift::ParamDecl::Specifier::LegacyOwned:
25492549
return uint8_t(serialization::ParamDeclSpecifier::LegacyOwned);
2550-
case swift::ParamDecl::Specifier::Transferring:
2550+
case swift::ParamDecl::Specifier::ImplicitlyCopyableConsuming:
25512551
return uint8_t(serialization::ParamDeclSpecifier::Transferring);
25522552
}
25532553
llvm_unreachable("bad param decl specifier kind");

0 commit comments

Comments
 (0)