Skip to content

Commit de332d3

Browse files
committed
[clang-tidy] Moved Multiple Inheritence check from fuchsia to misc module
Updated the documentation in the commit, 1. ReleaseNotes.rst 2. respective docs in the docs/clang-tidy/checks/ 3. list.rst
1 parent 88b8b46 commit de332d3

File tree

5 files changed

+57
-42
lines changed

5 files changed

+57
-42
lines changed

clang-tools-extra/clang-tidy/misc/MultipleInheritanceCheck.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace clang::tidy::misc {
1616
/// Multiple implementation inheritance is discouraged.
1717
///
1818
/// For the user-facing documentation see:
19-
/// https://clang.llvm.org/extra/clang-tidy/checks/fuchsia/multiple-inheritance.html
19+
/// https://clang.llvm.org/extra/clang-tidy/checks/misc/multiple-inheritance.html
2020
class MultipleInheritanceCheck : public ClangTidyCheck {
2121
public:
2222
MultipleInheritanceCheck(StringRef Name, ClangTidyContext *Context)

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,11 @@ New check aliases
328328
<clang-tidy/checks/bugprone/copy-constructor-mutates-argument>`
329329
keeping initial check as an alias to the new one.
330330

331+
- Renamed :doc:`fuchsia-multiple-inheritance <clang-tidy/checks/fuchsia/multiple-inheritance>` to
332+
:doc:`misc-multiple-inheritance
333+
<clang-tidy/checks/misc/multiple-inheritance>`
334+
keeping initial check as an alias to the new one.
335+
331336
- Renamed :doc:`google-readability-casting <clang-tidy/checks/google/readability-casting>` to
332337
:doc:`modernize-avoid-c-style-cast
333338
<clang-tidy/checks/modernize/avoid-c-style-cast>`

clang-tools-extra/docs/clang-tidy/checks/fuchsia/multiple-inheritance.rst

Lines changed: 3 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,7 @@
33
fuchsia-multiple-inheritance
44
============================
55

6-
Warns if a class inherits from multiple classes that are not pure virtual.
6+
The `fuchsia-multiple-inheritance` check is an alias, please See
7+
:doc:`misc-multiple-inheritance <../misc/multiple-inheritance>` for details.
78

8-
For example, declaring a class that inherits from multiple concrete classes is
9-
disallowed:
10-
11-
.. code-block:: c++
12-
13-
class Base_A {
14-
public:
15-
virtual int foo() { return 0; }
16-
};
17-
18-
class Base_B {
19-
public:
20-
virtual int bar() { return 0; }
21-
};
22-
23-
// Warning
24-
class Bad_Child1 : public Base_A, Base_B {};
25-
26-
A class that inherits from a pure virtual is allowed:
27-
28-
.. code-block:: c++
29-
30-
class Interface_A {
31-
public:
32-
virtual int foo() = 0;
33-
};
34-
35-
class Interface_B {
36-
public:
37-
virtual int bar() = 0;
38-
};
39-
40-
// No warning
41-
class Good_Child1 : public Interface_A, Interface_B {
42-
virtual int foo() override { return 0; }
43-
virtual int bar() override { return 0; }
44-
};
45-
46-
See the features disallowed in Fuchsia at https://fuchsia.dev/fuchsia-src/development/languages/c-cpp/cxx?hl=en
9+
See the features disallowed in Fuchsia at https://fuchsia.dev/fuchsia-src/development/languages/c-cpp/cxx?hl=en

clang-tools-extra/docs/clang-tidy/checks/list.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,6 @@ Clang-Tidy Checks
222222
:doc:`darwin-dispatch-once-nonstatic <darwin/dispatch-once-nonstatic>`, "Yes"
223223
:doc:`fuchsia-default-arguments-calls <fuchsia/default-arguments-calls>`,
224224
:doc:`fuchsia-default-arguments-declarations <fuchsia/default-arguments-declarations>`, "Yes"
225-
:doc:`fuchsia-multiple-inheritance <fuchsia/multiple-inheritance>`,
226225
:doc:`fuchsia-overloaded-operator <fuchsia/overloaded-operator>`,
227226
:doc:`fuchsia-statically-constructed-objects <fuchsia/statically-constructed-objects>`,
228227
:doc:`fuchsia-temporary-objects <fuchsia/temporary-objects>`,
@@ -272,6 +271,7 @@ Clang-Tidy Checks
272271
:doc:`misc-misleading-bidirectional <misc/misleading-bidirectional>`,
273272
:doc:`misc-misleading-identifier <misc/misleading-identifier>`,
274273
:doc:`misc-misplaced-const <misc/misplaced-const>`,
274+
:doc:`misc-multiple-inheritance <misc/multiple-inheritance>`,
275275
:doc:`misc-new-delete-overloads <misc/new-delete-overloads>`,
276276
:doc:`misc-no-recursion <misc/no-recursion>`,
277277
:doc:`misc-non-copyable-objects <misc/non-copyable-objects>`,
@@ -584,6 +584,7 @@ Check aliases
584584
:doc:`cppcoreguidelines-non-private-member-variables-in-classes <cppcoreguidelines/non-private-member-variables-in-classes>`, :doc:`misc-non-private-member-variables-in-classes <misc/non-private-member-variables-in-classes>`,
585585
:doc:`cppcoreguidelines-use-default-member-init <cppcoreguidelines/use-default-member-init>`, :doc:`modernize-use-default-member-init <modernize/use-default-member-init>`, "Yes"
586586
:doc:`fuchsia-header-anon-namespaces <fuchsia/header-anon-namespaces>`, :doc:`google-build-namespaces <google/build-namespaces>`,
587+
:doc:`fuchsia-multiple-inheritance <fuchsia/multiple-inheritance>`, :doc:`misc-multiple-inheritance <misc/multiple-inheritance>`,
587588
:doc:`google-readability-braces-around-statements <google/readability-braces-around-statements>`, :doc:`readability-braces-around-statements <readability/braces-around-statements>`, "Yes"
588589
:doc:`google-readability-casting <google/readability-casting>`, :doc:`modernize-avoid-c-style-cast <modernize/avoid-c-style-cast>`,
589590
:doc:`google-readability-function-size <google/readability-function-size>`, :doc:`readability-function-size <readability/function-size>`,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.. title:: clang-tidy - misc-multiple-inheritance
2+
3+
misc-multiple-inheritance
4+
============================
5+
6+
Warns if a class inherits from multiple classes that are not pure virtual.
7+
8+
For example, declaring a class that inherits from multiple concrete classes is
9+
disallowed:
10+
11+
.. code-block:: c++
12+
13+
class Base_A {
14+
public:
15+
virtual int foo() { return 0; }
16+
};
17+
18+
class Base_B {
19+
public:
20+
virtual int bar() { return 0; }
21+
};
22+
23+
// Warning
24+
class Bad_Child1 : public Base_A, Base_B {};
25+
26+
A class that inherits from a pure virtual is allowed:
27+
28+
.. code-block:: c++
29+
30+
class Interface_A {
31+
public:
32+
virtual int foo() = 0;
33+
};
34+
35+
class Interface_B {
36+
public:
37+
virtual int bar() = 0;
38+
};
39+
40+
// No warning
41+
class Good_Child1 : public Interface_A, Interface_B {
42+
virtual int foo() override { return 0; }
43+
virtual int bar() override { return 0; }
44+
};
45+
46+
See the features disallowed in Fuchsia at https://fuchsia.dev/fuchsia-src/development/languages/c-cpp/cxx?hl=en

0 commit comments

Comments
 (0)