Skip to content

Commit 6f86d60

Browse files
committed
[interop][SwiftToCxx] NFC, use FunctionSignatureModifiers to print 'const'
1 parent a170eaf commit 6f86d60

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

lib/PrintAsClang/PrintClangFunction.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ void DeclAndTypeClangFunctionPrinter::printFunctionSignature(
314314
os << "void";
315315
}
316316
os << ')';
317+
if (modifiers.isConst)
318+
os << " const";
317319
}
318320

319321
void DeclAndTypeClangFunctionPrinter::printCxxToCFunctionParameterUse(
@@ -470,14 +472,12 @@ void DeclAndTypeClangFunctionPrinter::printCxxMethod(
470472
FunctionSignatureModifiers modifiers;
471473
if (isDefinition)
472474
modifiers.qualifierContext = typeDeclContext;
475+
bool isMutating =
476+
isa<FuncDecl>(FD) ? cast<FuncDecl>(FD)->isMutating() : false;
477+
modifiers.isConst = !isMutating && !isConstructor;
473478
printFunctionSignature(
474479
FD, isConstructor ? "init" : FD->getName().getBaseIdentifier().get(),
475480
resultTy, FunctionSignatureKind::CxxInlineThunk, {}, modifiers);
476-
bool isMutating = false;
477-
if (auto *funcDecl = dyn_cast<FuncDecl>(FD))
478-
isMutating = funcDecl->isMutating();
479-
if (!isMutating && !isConstructor)
480-
os << " const";
481481
if (!isDefinition) {
482482
os << ";\n";
483483
return;
@@ -516,11 +516,9 @@ void DeclAndTypeClangFunctionPrinter::printCxxPropertyAccessorMethod(
516516
FunctionSignatureModifiers modifiers;
517517
if (isDefinition)
518518
modifiers.qualifierContext = typeDeclContext;
519+
modifiers.isConst = accessor->isGetter();
519520
printFunctionSignature(accessor, nameOS.str(), resultTy,
520521
FunctionSignatureKind::CxxInlineThunk, {}, modifiers);
521-
if (accessor->isGetter()) {
522-
os << " const";
523-
}
524522
if (!isDefinition) {
525523
os << ";\n";
526524
return;

lib/PrintAsClang/PrintClangFunction.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class DeclAndTypeClangFunctionPrinter {
6565
struct FunctionSignatureModifiers {
6666
/// Additional qualifier to add before the function's name.
6767
const NominalTypeDecl *qualifierContext = nullptr;
68+
bool isConst = false;
6869

6970
FunctionSignatureModifiers() {}
7071
};

0 commit comments

Comments
 (0)