Skip to content

Commit d8349e7

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

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

23792379
StringRef getNameForParamSpecifier(ParamSpecifier name);
23802380

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

lib/AST/ASTMangler.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3379,8 +3379,7 @@ void ASTMangler::appendFunctionSignature(AnyFunctionType *fn,
33793379
}
33803380
}
33813381

3382-
static ParamSpecifier
3383-
getDefaultOwnership(const ValueDecl *forDecl) {
3382+
ParamSpecifier swift::getDefaultParamSpecifier(const ValueDecl *forDecl) {
33843383
// `consuming` is the default ownership for initializers and setters.
33853384
// Everything else defaults to borrowing.
33863385
if (!forDecl) {
@@ -3451,7 +3450,7 @@ getParameterFlagsForMangling(ParameterTypeFlags flags,
34513450
void ASTMangler::appendFunctionInputType(
34523451
AnyFunctionType *fnType, ArrayRef<AnyFunctionType::Param> params,
34533452
GenericSignature sig, const ValueDecl *forDecl, bool isRecursedInto) {
3454-
auto defaultSpecifier = getDefaultOwnership(forDecl);
3453+
auto defaultSpecifier = getDefaultParamSpecifier(forDecl);
34553454

34563455
switch (params.size()) {
34573456
case 0:

0 commit comments

Comments
 (0)