Skip to content

Commit b34ca08

Browse files
committed
[clang-tidy] Fix handling of UseAssignment option in cppcoreguidelines-prefer-member-initializer
From now on check will use value from cppcoreguidelines-prefer-member-initializer and fallback to modernize-use-default-member-init.UseAssignment if not specified. Fixes: #55616. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D147929
1 parent 9db2a04 commit b34ca08

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,11 @@ PreferMemberInitializerCheck::PreferMemberInitializerCheck(
129129
: ClangTidyCheck(Name, Context),
130130
IsUseDefaultMemberInitEnabled(
131131
Context->isCheckEnabled("modernize-use-default-member-init")),
132-
UseAssignment(OptionsView("modernize-use-default-member-init",
133-
Context->getOptions().CheckOptions, Context)
134-
.get("UseAssignment", false)) {}
132+
UseAssignment(
133+
Options.get("UseAssignment",
134+
OptionsView("modernize-use-default-member-init",
135+
Context->getOptions().CheckOptions, Context)
136+
.get("UseAssignment", false))) {}
135137

136138
void PreferMemberInitializerCheck::storeOptions(
137139
ClangTidyOptions::OptionMap &Opts) {

clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,11 @@ Here ``n`` can be initialized in the constructor initialization list, unlike
8585

8686
.. option:: UseAssignment
8787

88-
If this option is set to `true` (default is `false`), the check will initialize
89-
members with an assignment. In this case the fix of the first example looks
90-
like this:
88+
If this option is set to `true` (by default `UseAssignment` from
89+
`modernize-use-default-member-init
90+
<../modernize/use-default-member-init.html>`_ will be used),
91+
the check will initialize members with an assignment.
92+
In this case the fix of the first example looks like this:
9193

9294
.. code-block:: c++
9395

clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
22
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: true}]}"
3+
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
4+
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: false}, \
5+
// RUN: {key: cppcoreguidelines-prefer-member-initializer.UseAssignment, value: true}]}"
36

47
class Simple1 {
58
int n;

clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t
2+
// RUN: %check_clang_tidy %s cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t -- \
3+
// RUN: -config="{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: true}, \
4+
// RUN: {key: cppcoreguidelines-prefer-member-initializer.UseAssignment, value: false}]}"
25

36
class Simple1 {
47
int n;

0 commit comments

Comments
 (0)