Count number of braces on a line in .

This commit is contained in:
Alan Jeffrey 2017-06-06 15:38:35 -05:00
parent 7e273d6c9b
commit 1270080538
4 changed files with 34 additions and 7 deletions

View file

@ -3368,6 +3368,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
self.tex_parameter(target, name, TexParameterValue::Int(value)) self.tex_parameter(target, name, TexParameterValue::Int(value))
} }
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6
fn CheckFramebufferStatus(&self, target: u32) -> u32 { fn CheckFramebufferStatus(&self, target: u32) -> u32 {
// From the GLES 2.0.25 spec, 4.4 ("Framebuffer Objects"): // From the GLES 2.0.25 spec, 4.4 ("Framebuffer Objects"):
// //
@ -3385,6 +3386,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
} }
} }
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.7
fn RenderbufferStorage(&self, target: u32, internal_format: u32, fn RenderbufferStorage(&self, target: u32, internal_format: u32,
width: i32, height: i32) { width: i32, height: i32) {
// From the GLES 2.0.25 spec: // From the GLES 2.0.25 spec:
@ -3423,6 +3425,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// accessed. See https://github.com/servo/servo/issues/13710 // accessed. See https://github.com/servo/servo/issues/13710
} }
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6
fn FramebufferRenderbuffer(&self, target: u32, attachment: u32, fn FramebufferRenderbuffer(&self, target: u32, attachment: u32,
renderbuffertarget: u32, renderbuffertarget: u32,
rb: Option<&WebGLRenderbuffer>) { rb: Option<&WebGLRenderbuffer>) {
@ -3436,6 +3439,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
}; };
} }
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.6
fn FramebufferTexture2D(&self, target: u32, attachment: u32, fn FramebufferTexture2D(&self, target: u32, attachment: u32,
textarget: u32, texture: Option<&WebGLTexture>, textarget: u32, texture: Option<&WebGLTexture>,
level: i32) { level: i32) {

View file

@ -828,8 +828,8 @@ def check_spec(file_name, lines):
# Pattern representing a line with comment containing a spec link # Pattern representing a line with comment containing a spec link
link_patt = re.compile("^\s*///? https://.+$") link_patt = re.compile("^\s*///? https://.+$")
# Pattern representing a line with comment # Pattern representing a line with comment or attribute
comment_patt = re.compile("^\s*///?.+$") comment_patt = re.compile("^\s*(///?.+|#\[.+\])$")
brace_count = 0 brace_count = 0
in_impl = False in_impl = False
@ -851,12 +851,11 @@ def check_spec(file_name, lines):
# No more comments exist above, yield warning # No more comments exist above, yield warning
yield (idx + 1, "method declared in webidl is missing a comment with a specification link") yield (idx + 1, "method declared in webidl is missing a comment with a specification link")
break break
if '{' in line and in_impl: if in_impl:
brace_count += 1 brace_count += line.count('{')
if '}' in line and in_impl: brace_count -= line.count('}')
if brace_count == 1: if brace_count < 1:
break break
brace_count -= 1
def check_config_file(config_file, print_text=True): def check_config_file(config_file, print_text=True):

View file

@ -3,7 +3,30 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
impl SpecLinkMethods for SpecLink { impl SpecLinkMethods for SpecLink {
amacro!("Macros inside impls should trigger spec checks.")
// Method declarations should trigger spec checks.
fn Test(&self) -> f32 { fn Test(&self) -> f32 {
amacro!("Macros inside function declarations should not trigger spec checks.");
if unsafe { false } {
}
amacro!("Even if there's weird brace counts.");
0 0
} }
// A spec link.
// https://example.com/
fn Foo() {}
/// A spec link.
/// https://example.com/
fn Foo() {}
/// A spec link.
/// https://example.com/
/// Doc comments are OK
// Regular comments are OK
#[allow(attributes_too)]
fn Foo() {}
} }

View file

@ -155,6 +155,7 @@ class CheckTidiness(unittest.TestCase):
tidy.SPEC_BASE_PATH = base_path tidy.SPEC_BASE_PATH = base_path
errors = tidy.collect_errors_for_files(iterFile('speclink.rs'), [], [tidy.check_spec], print_text=False) errors = tidy.collect_errors_for_files(iterFile('speclink.rs'), [], [tidy.check_spec], print_text=False)
self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2]) self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2])
self.assertEqual('method declared in webidl is missing a comment with a specification link', errors.next()[2])
self.assertNoMoreErrors(errors) self.assertNoMoreErrors(errors)
def test_script_thread(self): def test_script_thread(self):