[clang-tools-extra] r249017 - Update clang-tidy documentation.

Angel Garcia Gomez via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 1 07:50:41 PDT 2015


Author: angelgarcia
Date: Thu Oct  1 09:50:40 2015
New Revision: 249017

URL: http://llvm.org/viewvc/llvm-project?rev=249017&view=rev
Log:
Update clang-tidy documentation.

Summary:
Improve modernize-use-auto documentation (https://llvm.org/bugs/show_bug.cgi?id=24962).
Add documentation for modernize-make-unique.

Reviewers: klimek

Subscribers: cfe-commits, alexfh

Differential Revision: http://reviews.llvm.org/D13346

Added:
    clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-make-unique.rst
Modified:
    clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
    clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-use-auto.rst

Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst?rev=249017&r1=249016&r2=249017&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Thu Oct  1 09:50:40 2015
@@ -42,6 +42,7 @@ List of clang-tidy Checks
    misc-unused-parameters
    misc-unused-raii
    modernize-loop-convert
+   modernize-make-unique
    modernize-pass-by-value
    modernize-replace-auto-ptr
    modernize-shrink-to-fit

Added: clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-make-unique.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-make-unique.rst?rev=249017&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-make-unique.rst (added)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-make-unique.rst Thu Oct  1 09:50:40 2015
@@ -0,0 +1,15 @@
+modernize-make-unique
+=====================
+
+This check finds the creation of ``std::unique_ptr`` objects by explicitly
+calling the constructor and a ``new`` expression, and replaces it with a call
+to ``std::make_unique``, introduced in C++14.
+
+.. code-block:: c++
+
+  auto my_ptr = std::unique_ptr<MyPair>(new MyPair(1, 2));
+
+  // becomes
+
+  auto my_ptr = std::make_unique<MyPair>(1, 2);
+

Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-use-auto.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-use-auto.rst?rev=249017&r1=249016&r2=249017&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-use-auto.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-use-auto.rst Thu Oct  1 09:50:40 2015
@@ -108,6 +108,39 @@ conditions are satisfied:
   list. Otherwise, use of ``auto`` would cause the type of the variable to be
   deduced as``std::initializer_list``.
 
+New expressions
+---------------
+
+Frequently, when a pointer is declared and initialized with ``new``, the
+pointee type has to be written twice: in the declaration type and in the
+``new`` expression. In this cases, the declaration type can be replaced with
+``auto`` improving readability and maintainability.
+
+.. code-block:: c++
+
+  TypeName *my_pointer = new TypeName(my_param);
+
+  // becomes
+
+  auto my_pointer = new TypeName(my_param);
+
+The check will also replace the declaration type in multiple declarations, if
+the following conditions are satisfied:
+
+* All declared variables have the same type (i.e. all of them are pointers to
+  the same type).
+* All declared variables are initialized with a ``new`` expression.
+* The types of all the new expressions are the same than the pointee of the
+  declaration type.
+
+.. code-block:: c++
+
+  TypeName *my_first_pointer = new TypeName, *my_second_pointer = new TypeName;
+
+  // becomes
+
+  auto my_first_pointer = new TypeName, my_second_pointer = new TypeName;
+
 Known Limitations
 -----------------
 * If the initializer is an explicit conversion constructor, the check will not




More information about the cfe-commits mailing list