Skip to content

Commit b3b34a4

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

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
@@ -2380,6 +2380,10 @@ enum class ParamSpecifier : uint8_t {
23802380

23812381
StringRef getNameForParamSpecifier(ParamSpecifier name);
23822382

2383+
/// What does \c ParamSpecifier::Default mean for a parameter that's directly
2384+
/// attached to \p VD ? Pass \c nullptr for the value for a closure.
2385+
ParamSpecifier getDefaultParamSpecifier(const ValueDecl *VD);
2386+
23832387
/// Provide parameter type relevant flags, i.e. variadic, autoclosure, and
23842388
/// escaping.
23852389
class ParameterTypeFlags {

lib/AST/ASTMangler.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3297,8 +3297,7 @@ void ASTMangler::appendFunctionSignature(AnyFunctionType *fn,
32973297
}
32983298
}
32993299

3300-
static ParamSpecifier
3301-
getDefaultOwnership(const ValueDecl *forDecl) {
3300+
ParamSpecifier swift::getDefaultParamSpecifier(const ValueDecl *forDecl) {
33023301
// `consuming` is the default ownership for initializers and setters.
33033302
// Everything else defaults to borrowing.
33043303
if (!forDecl) {
@@ -3369,7 +3368,7 @@ getParameterFlagsForMangling(ParameterTypeFlags flags,
33693368
void ASTMangler::appendFunctionInputType(
33703369
AnyFunctionType *fnType, ArrayRef<AnyFunctionType::Param> params,
33713370
GenericSignature sig, const ValueDecl *forDecl, bool isRecursedInto) {
3372-
auto defaultSpecifier = getDefaultOwnership(forDecl);
3371+
auto defaultSpecifier = getDefaultParamSpecifier(forDecl);
33733372

33743373
switch (params.size()) {
33753374
case 0:

0 commit comments

Comments
 (0)