about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-05-05 13:46:31 -0700
committerbors <bors@rust-lang.org>2014-05-05 13:46:31 -0700
commit600507d5380ca7d6d5536fabc2d4aca400c21bb9 (patch)
treebe1519a02a1566e2bae13984080b707b4915ad38
parentd943b0fee8cc0f747eaf2c0f0ae6e7bc35284ca8 (diff)
parentcf9dd7008e0695619e067853007a4774d2092dfe (diff)
auto merge of #13782 : alexcrichton/rust/issue-13775, r=pcwalton
These often crop up when using default methods that don't actually bind their
argument names.

Closes #13775
-rw-r--r--src/librustc/middle/lint.rs2
-rw-r--r--src/test/run-pass/issue-13775.rs15
2 files changed, 16 insertions, 1 deletions
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs
index aca8dc61252..ab1670a6686 100644
--- a/src/librustc/middle/lint.rs
+++ b/src/librustc/middle/lint.rs
@@ -1270,7 +1270,7 @@ fn check_pat_uppercase_variable(cx: &Context, p: &ast::Pat) {
                     // last identifier alone is right choice for this lint.
                     let ident = path.segments.last().unwrap().identifier;
                     let s = token::get_ident(ident);
-                    if s.get().char_at(0).is_uppercase() {
+                    if s.get().len() > 0 && s.get().char_at(0).is_uppercase() {
                         cx.span_lint(
                             UppercaseVariables,
                             path.span,
diff --git a/src/test/run-pass/issue-13775.rs b/src/test/run-pass/issue-13775.rs
new file mode 100644
index 00000000000..8731662afa3
--- /dev/null
+++ b/src/test/run-pass/issue-13775.rs
@@ -0,0 +1,15 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+trait Foo {
+    fn bar(&self, int) {}
+}
+
+fn main() {}