Skip to content

Commit ea9fc03

Browse files
committed
Added support for P2573: = delete("reason");.
1 parent 5a8071a commit ea9fc03

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

CodeGenerator.cpp

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3184,13 +3184,6 @@ void CodeGenerator::InsertCXXMethodHeader(const CXXMethodDecl* stmt, OutputForma
31843184

31853185
InsertTemplateGuardBegin(stmt);
31863186
InsertFunctionNameWithReturnType(*stmt, cxxInheritedCtorDecl);
3187-
3188-
if(stmt->isDeleted()) {
3189-
mOutputFormatHelper.AppendNewLine(kwSpaceEqualsDelete);
3190-
3191-
} else if(stmt->isDefaulted()) {
3192-
mOutputFormatHelper.AppendNewLine(kwSpaceEqualsDefault);
3193-
}
31943187
}
31953188
//-----------------------------------------------------------------------------
31963189

@@ -4993,6 +4986,18 @@ void CodeGenerator::InsertFunctionNameWithReturnType(const FunctionDecl& d
49934986
#endif
49944987
mOutputFormatHelper.Append(" = 0"sv);
49954988
}
4989+
4990+
if(decl.isDeleted()) {
4991+
mOutputFormatHelper.Append(kwSpaceEqualsDelete);
4992+
if(auto* delInfo = decl.getDefalutedOrDeletedInfo()) {
4993+
WrapInParens([&]() { InsertArg(delInfo->getDeletedMessage()); }, AddSpaceAtTheEnd::No);
4994+
} else {
4995+
mOutputFormatHelper.AppendSemiNewLine();
4996+
}
4997+
4998+
} else if(decl.isDefaulted()) {
4999+
mOutputFormatHelper.AppendNewLine(kwSpaceEqualsDefault);
5000+
}
49965001
}
49975002
//-----------------------------------------------------------------------------
49985003

InsightsStaticStrings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ using namespace std::literals;
6262
#define KW_CO_AWAIT "co_await"
6363
#define KW_TYPENAME "typename"
6464
#define KW_EQUALS_DEFAULT "= default;"
65-
#define KW_EQUALS_DELETE "= delete;"
65+
#define KW_EQUALS_DELETE "= delete"
6666
#define KW_INTERNAL_THIS "__this"
6767
#define KW_ELIPSIS "..."
6868
#define KW_FALSE "false"

tests/p2573Test.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// cmdline:-std=c++26
2+
3+
void newapi();
4+
void oldapi() = delete("This old API is outdated and already been removed. Please use newapi() instead.");

tests/p2573Test.expect

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
void newapi();
2+
inline void oldapi() = delete("This old API is outdated and already been removed. Please use newapi() instead.");

0 commit comments

Comments
 (0)