rust-lang/rust — pull request #15957 by pcwalton (2014-07-24 20:54:29+00:00)
Title: librustc: Check built-in trait bounds on implementations when direct

method calls are involved.

This breaks code like:

impl Foo for T { ... }

fn take_param(foo: &T) { ... }

fn main() {
let x = box 3i; // note no `Copy` bound
take_param(&x);
}

Change this code to not contain a type error. For example:

impl Foo for T { ... }

fn take_param(foo: &T) { ... }

fn main() {
let x = 3i; // satisfies `Copy` bound
take_param(&x);
}

Closes #15860.

[breaking-change]

r? @alexcrichton