ABCDEFGHIJKLMNOPQRSTUVWXY
1
NameShould we run it? (Is it reliable and uncontroversial?)Notes//content/renderer CLcrbug
2
modernize-redundant-void-argYNonehttps://crbug.com/778946
3
modernize-replace-random-shuffleYNonehttps://crbug.com/778949
4
modernize-shrink-to-fitYNonehttps://crbug.com/778950
5
modernize-use-auto (iterators only)YManually modify the check to consider iterators only.https://chromium-review.googlesource.com/c/chromium/src/+/727785https://crbug.com/890902
6
modernize-use-bool-literalsYhttps://chromium-review.googlesource.com/c/chromium/src/+/727786
7
modernize-use-equals-defaultYHas a number of advantages. See https://www.chromium.org/developers/coding-style/cpp-dos-and-donts#TOC-Prefer-to-use-defaulthttps://chromium-review.googlesource.com/c/chromium/src/+/727385https://crbug.com/778957
8
modernize-use-equals-deleteYhttps://chromium-review.googlesource.com/c/chromium/src/+/727788https://crbug.com/778959
9
modernize-use-nullptrYSee blink-dev discussion https://chromium-review.googlesource.com/c/chromium/src/+/720361https://crbug.com/778942
10
modernize-use-overrideYOnly finds cases in mock classes because our plugin ignores those (https://crbug.com/776636) https://chromium-review.googlesource.com/c/chromium/src/+/727386
11
google-build-explicit-make-pairYCodesearch shows a handful of instances we can do manually. https://cs.chromium.org/search/?q=make_pair%3C%5B%5E%3E%5D*%3E%5C(&sq=package:chromium&type=cs
12
google-explicit-constructorYDoesn't compile: some code relies on implicit conversions. This is low priority because it requires manual intervention.https://chromium-review.googlesource.com/c/chromium/src/+/727819
13
google-readability-castingYhttps://chromium-review.googlesource.com/c/chromium/src/+/727783https://crbug.com/778963
14
15
16
modernize-loop-convertMaybeIt doesn't pick ideal names in many cases e.g., for (auto& i : plugin_list_). And it doesn't write auto* for pointers. The former may be tolerable and the latter is fixable, so we'll reconsider this one later.https://chromium-review.googlesource.com/c/chromium/src/+/727392https://crbug.com/895746
17
modernize-make-uniqueMaybeNeeds manual intervention because it doesn't compile due to some of our std::default_delete specializations.https://chromium-review.googlesource.com/c/chromium/src/+/727860
18
modernize-pass-by-valueMaybeValue semantics are nice, and avoiding copies is nice, but this will likely increase code size. Quoting dcheng@'s comment: "
That being said, there is a binary size cost to doing this: passing a const ref doesn't require emitting code to destroy the function arguments on the stack. If this function is a lot, the cost of those extra instructions can add up quite a bit: https://bugs.chromium.org/p/chromium/issues/detail?id=631416#c24"
https://chromium-review.googlesource.com/c/chromium/src/+/727382
19
modernize-raw-string-literalMaybePerforms transformations like "\xE3\x81\x82" -> R"(あ)". From my glance at the docs I'm concerned that the encoding of the literal is implementation defined without writing "u8" to be precise. Apart from that, Daniel Bratell raises the concern on the CL that tools may have trouble with non-ascii source code. We can modify the check to only transform ascii strings though.https://chromium-review.googlesource.com/c/chromium/src/+/727383
20
modernize-use-autoMaybeThis uses auto in three cases: 1) iterators, 2) variables being initialized by a call to "new", and 3) variables initialized by casts. In each case the type is clear. #1 is "recommended" by the style guide. #2 and 3 are "allowed", but not recommended, so people may disagree that they are better (potentially not in practice). See the next item.https://chromium-review.googlesource.com/c/chromium/src/+/727785
21
modernize-use-default-member-initMaybeTODO: Re-run with the UseAssignment option (which segfaults at the moment).https://chromium-review.googlesource.com/c/chromium/src/+/727639
22
modernize-use-transparent-functorsMaybeTODO: try this once our toolchains have stabilized on c++14-
23
modernize-use-usingMaybeIt removes argument names from function types (callbacks). We would have to fix this before running it.https://chromium-review.googlesource.com/c/chromium/src/+/727387
24
25
26
modernize-deprecated-headersNDoesn't seem likely to ever be a practical problem. And without automatic tooling to catch regressions I suspect the old headers will be introduced back into the code rapidly.
27
modernize-return-braced-init-listNUnconventional style. Style guide doesn't talk about it.https://chromium-review.googlesource.com/c/chromium/src/+/727384
28
modernize-unary-static-assertNc++17 only
29
modernize-use-emplaceNThere are concerns over readability of emplace_back(). The recommendation in our style guide is to use it with discretion. (https://chromium-cpp.appspot.com/)https://chromium-review.googlesource.com/c/chromium/src/+/727787
30
modernize-use-noexceptNNA
31
modernize-avoid-bindNUnused
32
modernize-make-sharedNUnused
33
34
35
36
Other google-* checks that either don't have automatic fixes or are not applicable.
37
google-build-namespaces
38
google-build-using-namespace
39
google-default-arguments
40
google-global-names-in-headers
41
google-runtime-int
42
google-readability-braces-around-statements
43
google-readability-function-size (redirects to readability-function-size)
44
google-readability-namespace-comments (redirects to llvm-namespace-comment)
45
google-readability-redundant-smartptr-get (redirects to readability-redundant-smartptr-get)
46
google-readability-todo
47
google-runtime-member-string-references
48
google-runtime-operator
49
google-runtime-references
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100