[webkit-reviews] review denied: [Bug 27354] cpplint should check for one line control statements surrounded by braces : [Attachment 32895] Add the cpplint check

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jul 16 15:27:23 PDT 2009


David Levin <levin at chromium.org> has denied Adam Treat <treat at kde.org>'s
request for review:
Bug 27354: cpplint should check for one line control statements surrounded by
braces
https://bugs.webkit.org/show_bug.cgi?id=27354

Attachment 32895: Add the cpplint check
https://bugs.webkit.org/attachment.cgi?id=32895&action=review

------- Additional Comments from David Levin <levin at chromium.org>
This is awesome!  This is another issue happens fairly frequently and would be
nice to tell people about ahead of their review.

I just have a few things to address/respond to, and then we'll be done.


> diff --git a/WebKitTools/Scripts/modules/cpplint.py
b/WebKitTools/Scripts/modules/cpplint.py
> +	   previous_line = get_previous_non_blank_line(clean_lines,
line_number-1)[0]

I don't think using "get_previous_non_blank_line" is quite right because it
would flag this case
  if (condition) {
      // Some comment
      doIt();
  }
as needing to get right of the braces and the braces should remain in this
case.  I wonder if it should just do this instead:

clean_lines.elided[line_number - 2]


> +	   if (previous_line.find('{') > 0
> +	       and search (r'\b(if|for|while|switch)\b', previous_line)):

1. Remove space after search.
2. Remove "switch"
3. Add "else"


> +	       error(filename, line_number, 'whitespace/braces', 4,

At first this didn't seem like it fit the category of "whitespace" (which in my
mind is adding deleting spaces/blank lines).  I was going to suggest
"readability/"
However after further consideration, getting rid of braces decreases blank
lines so it actually does seem concerned with that after all.


> +		     'This } does not belong as one line control clauses should
not use braces')

It seems odd to say that the "}" doesn't belong.  How about just going with
something very close to style guide text: "Single-line control clauses should
not use braces." ?



> diff --git a/WebKitTools/Scripts/modules/cpplint_unittest.py
b/WebKitTools/Scripts/modules/cpplint_unittest.py
> +	   self.assert_multi_line_lint(
> +	       'if (true) {\n'
> +	       '    int foo;\n'
> +	       '}\n',
> +	       'This } does not belong as one line control clauses should not
use braces  [whitespace/braces] [4]')
> +

1. Add a test cases for: for,while,else
2. Add a test cases for:
a.  if (condition) {
	// Some comment
	doIt();
   }

b. if (condition) {
       myFunction(reallyLongParam1, reallyLongParam2,
		  reallyLongParam3);
   }

That verifies that these cases don't get flagged.


More information about the webkit-reviews mailing list