Skip to content

Commit 5f71265

Browse files
committed
[NFC] Expose default param specifier computation
Make this logic accessible outside of the mangler.
1 parent ff620f0 commit 5f71265

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

include/swift/AST/Types.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2374,6 +2374,10 @@ enum class ParamSpecifier : uint8_t {
23742374

23752375
StringRef getNameForParamSpecifier(ParamSpecifier name);
23762376

2377+
/// What does \c ParamSpecifier::Default mean for a parameter that's directly
2378+
/// attached to \p VD ? Pass \c nullptr for the value for a closure.
2379+
ParamSpecifier getDefaultParamSpecifier(const ValueDecl *VD);
2380+
23772381
/// Provide parameter type relevant flags, i.e. variadic, autoclosure, and
23782382
/// escaping.
23792383
class ParameterTypeFlags {

lib/AST/ASTMangler.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3300,8 +3300,7 @@ void ASTMangler::appendFunctionSignature(AnyFunctionType *fn,
33003300
}
33013301
}
33023302

3303-
static ParamSpecifier
3304-
getDefaultOwnership(const ValueDecl *forDecl) {
3303+
ParamSpecifier swift::getDefaultParamSpecifier(const ValueDecl *forDecl) {
33053304
// `consuming` is the default ownership for initializers and setters.
33063305
// Everything else defaults to borrowing.
33073306
if (!forDecl) {
@@ -3372,7 +3371,7 @@ getParameterFlagsForMangling(ParameterTypeFlags flags,
33723371
void ASTMangler::appendFunctionInputType(
33733372
AnyFunctionType *fnType, ArrayRef<AnyFunctionType::Param> params,
33743373
GenericSignature sig, const ValueDecl *forDecl, bool isRecursedInto) {
3375-
auto defaultSpecifier = getDefaultOwnership(forDecl);
3374+
auto defaultSpecifier = getDefaultParamSpecifier(forDecl);
33763375

33773376
switch (params.size()) {
33783377
case 0:

0 commit comments

Comments
 (0)