Skip to content

Commit

Permalink
Asked if missing (), then asks about an anonymous function. Also adde…
Browse files Browse the repository at this point in the history
…d test.
  • Loading branch information
sinistersnare committed Mar 16, 2014
1 parent b4d3243 commit 8b6592e
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/librustc/middle/typeck/check/mod.rs
Expand Up @@ -2317,11 +2317,13 @@ fn check_expr_with_unifier(fcx: @FnCtxt,
fcx.type_error_message(
expr.span,
|actual| {
format!("attempted to take value of method `{}` on type `{}` \
(try writing an anonymous function)",
format!("attempted to take value of method `{}` on type `{}`",
token::get_name(field), actual)
},
expr_t, None);

tcx.sess.span_note(expr.span,
"maybe a missing `()` to call it? If not, try an anonymous function.");
}

None => {
Expand Down
34 changes: 34 additions & 0 deletions src/test/compile-fail/method-missing-call.rs
@@ -0,0 +1,34 @@
// 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.

// Tests to make sure that parens are needed for method calls without arguments.
// outputs text to make sure either an anonymous function is provided or
// open-close '()' parens are given


struct Point {
x: int,
y: int
}
impl Point {
fn new() -> Point {
Point{x:0, y:0}
}
fn get_x(&self) -> int {
self.x
}
}

fn main() {
let point: Point = Point::new();
let px: int = point.get_x;//~ ERROR attempted to take value of method `get_x` on type `Point`
//~^ NOTE maybe a missing `()` to call it? If not, try an anonymous function.
}

5 comments on commit 8b6592e

@bors
Copy link
Contributor

@bors bors commented on 8b6592e Mar 17, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from huonw
at sinistersnare@8b6592e

@bors
Copy link
Contributor

@bors bors commented on 8b6592e Mar 17, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging sinistersnare/rust/method-error-message = 8b6592e into auto

@bors
Copy link
Contributor

@bors bors commented on 8b6592e Mar 17, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sinistersnare/rust/method-error-message = 8b6592e merged ok, testing candidate = 4e1172e

@bors
Copy link
Contributor

@bors bors commented on 8b6592e Mar 17, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = 4e1172e

Please sign in to comment.