Author: Piotr Zegar
Date: 2023-04-16T10:34:48Z
New Revision: b34ca0851a5209a10c0ca285c000a18073677891

URL: 
https://github.com/llvm/llvm-project/commit/b34ca0851a5209a10c0ca285c000a18073677891
DIFF: 
https://github.com/llvm/llvm-project/commit/b34ca0851a5209a10c0ca285c000a18073677891.diff

LOG: [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

Added: 
    

Modified: 
    
clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
    
clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
    
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
    
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp

Removed: 
    


################################################################################
diff  --git 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
index 68697dbff3cfa..80b8c9211792a 100644
--- 
a/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
+++ 
b/clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp
@@ -129,9 +129,11 @@ PreferMemberInitializerCheck::PreferMemberInitializerCheck(
     : ClangTidyCheck(Name, Context),
       IsUseDefaultMemberInitEnabled(
           Context->isCheckEnabled("modernize-use-default-member-init")),
-      UseAssignment(OptionsView("modernize-use-default-member-init",
-                                Context->getOptions().CheckOptions, Context)
-                        .get("UseAssignment", false)) {}
+      UseAssignment(
+          Options.get("UseAssignment",
+                      OptionsView("modernize-use-default-member-init",
+                                  Context->getOptions().CheckOptions, Context)
+                          .get("UseAssignment", false))) {}
 
 void PreferMemberInitializerCheck::storeOptions(
     ClangTidyOptions::OptionMap &Opts) {

diff  --git 
a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
 
b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
index 1d47c03350003..dea9450b86fd3 100644
--- 
a/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
+++ 
b/clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/prefer-member-initializer.rst
@@ -85,9 +85,11 @@ Here ``n`` can be initialized in the constructor 
initialization list, unlike
 
 .. option:: UseAssignment
 
-   If this option is set to `true` (default is `false`), the check will 
initialize
-   members with an assignment. In this case the fix of the first example looks
-   like this:
+   If this option is set to `true` (by default `UseAssignment` from
+   `modernize-use-default-member-init
+   <../modernize/use-default-member-init.html>`_ will be used),
+   the check will initialize members with an assignment.
+   In this case the fix of the first example looks like this:
 
 .. code-block:: c++
 

diff  --git 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
index 7240f03f78fed..17600b82fb592 100644
--- 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init-assignment.cpp
@@ -1,5 +1,8 @@
 // RUN: %check_clang_tidy %s 
cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init 
%t -- \
 // RUN: -config="{CheckOptions: [{key: 
modernize-use-default-member-init.UseAssignment, value: true}]}"
+// RUN: %check_clang_tidy %s 
cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init 
%t -- \
+// RUN: -config="{CheckOptions: [{key: 
modernize-use-default-member-init.UseAssignment, value: false}, \
+// RUN:                          {key: 
cppcoreguidelines-prefer-member-initializer.UseAssignment, value: true}]}"
 
 class Simple1 {
   int n;

diff  --git 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
index fe5bb7c3bb989..2353f58b6bfa5 100644
--- 
a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/prefer-member-initializer-modernize-use-default-member-init.cpp
@@ -1,4 +1,7 @@
 // RUN: %check_clang_tidy %s 
cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init %t
+// RUN: %check_clang_tidy %s 
cppcoreguidelines-prefer-member-initializer,modernize-use-default-member-init 
%t -- \
+// RUN: -config="{CheckOptions: [{key: 
modernize-use-default-member-init.UseAssignment, value: true}, \
+// RUN:                          {key: 
cppcoreguidelines-prefer-member-initializer.UseAssignment, value: false}]}"
 
 class Simple1 {
   int n;


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to