sedykh.eugene updated this revision to Diff 226677.
sedykh.eugene added a comment.
I removed using. Not a big deal. Thank you for the reviews!
Repository:
rCTE Clang Tools Extra
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69388/new/
https://reviews.llvm.org/D69388
Files:
clang-tidy/modernize/UseNodiscardCheck.cpp
test/clang-tidy/checkers/modernize-use-nodiscard.cpp
Index: test/clang-tidy/checkers/modernize-use-nodiscard.cpp
===================================================================
--- test/clang-tidy/checkers/modernize-use-nodiscard.cpp
+++ test/clang-tidy/checkers/modernize-use-nodiscard.cpp
@@ -23,6 +23,8 @@
typedef unsigned &my_unsigned_reference;
typedef const unsigned &my_unsigned_const_reference;
+struct NO_DISCARD NoDiscardStruct{};
+
class Foo {
public:
using size_type = unsigned;
@@ -160,6 +162,9 @@
// Do not add ``[[nodiscard]]`` to conversion functions.
// explicit operator bool() const { return true; }
+
+ // Do not add ``[[nodiscard]]`` to functions returning types marked
[[nodiscard]].
+ NoDiscardStruct f50() const;
};
// Do not add ``[[nodiscard]]`` to Lambda.
Index: clang-tidy/modernize/UseNodiscardCheck.cpp
===================================================================
--- clang-tidy/modernize/UseNodiscardCheck.cpp
+++ clang-tidy/modernize/UseNodiscardCheck.cpp
@@ -100,7 +100,9 @@
cxxMethodDecl(
allOf(isConst(), isDefinitionOrInline(),
unless(anyOf(
- returns(voidType()), isNoReturn(), isOverloadedOperator(),
+ returns(voidType()),
+
returns(hasDeclaration(decl(hasAttr(clang::attr::WarnUnusedResult)))),
+ isNoReturn(), isOverloadedOperator(),
isVariadic(), hasTemplateReturnType(),
hasClassMutableFields(), isConversionOperator(),
hasAttr(clang::attr::WarnUnusedResult),
Index: test/clang-tidy/checkers/modernize-use-nodiscard.cpp
===================================================================
--- test/clang-tidy/checkers/modernize-use-nodiscard.cpp
+++ test/clang-tidy/checkers/modernize-use-nodiscard.cpp
@@ -23,6 +23,8 @@
typedef unsigned &my_unsigned_reference;
typedef const unsigned &my_unsigned_const_reference;
+struct NO_DISCARD NoDiscardStruct{};
+
class Foo {
public:
using size_type = unsigned;
@@ -160,6 +162,9 @@
// Do not add ``[[nodiscard]]`` to conversion functions.
// explicit operator bool() const { return true; }
+
+ // Do not add ``[[nodiscard]]`` to functions returning types marked [[nodiscard]].
+ NoDiscardStruct f50() const;
};
// Do not add ``[[nodiscard]]`` to Lambda.
Index: clang-tidy/modernize/UseNodiscardCheck.cpp
===================================================================
--- clang-tidy/modernize/UseNodiscardCheck.cpp
+++ clang-tidy/modernize/UseNodiscardCheck.cpp
@@ -100,7 +100,9 @@
cxxMethodDecl(
allOf(isConst(), isDefinitionOrInline(),
unless(anyOf(
- returns(voidType()), isNoReturn(), isOverloadedOperator(),
+ returns(voidType()),
+ returns(hasDeclaration(decl(hasAttr(clang::attr::WarnUnusedResult)))),
+ isNoReturn(), isOverloadedOperator(),
isVariadic(), hasTemplateReturnType(),
hasClassMutableFields(), isConversionOperator(),
hasAttr(clang::attr::WarnUnusedResult),
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits