Skip to content

Commit efb5e36

Browse files
committed
[NFC] Expose default param specifier computation
Make this logic accessible outside of the mangler.
1 parent 6ad844a commit efb5e36

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
@@ -3302,8 +3302,7 @@ void ASTMangler::appendFunctionSignature(AnyFunctionType *fn,
33023302
}
33033303
}
33043304

3305-
static ParamSpecifier
3306-
getDefaultOwnership(const ValueDecl *forDecl) {
3305+
ParamSpecifier swift::getDefaultParamSpecifier(const ValueDecl *forDecl) {
33073306
// `consuming` is the default ownership for initializers and setters.
33083307
// Everything else defaults to borrowing.
33093308
if (!forDecl) {
@@ -3374,7 +3373,7 @@ getParameterFlagsForMangling(ParameterTypeFlags flags,
33743373
void ASTMangler::appendFunctionInputType(
33753374
AnyFunctionType *fnType, ArrayRef<AnyFunctionType::Param> params,
33763375
GenericSignature sig, const ValueDecl *forDecl, bool isRecursedInto) {
3377-
auto defaultSpecifier = getDefaultOwnership(forDecl);
3376+
auto defaultSpecifier = getDefaultParamSpecifier(forDecl);
33783377

33793378
switch (params.size()) {
33803379
case 0:

0 commit comments

Comments
 (0)