use UFCS in #[deriving(Hash)]

expansion now uses `::std:#️⃣:Hash::hash(&*__self_0_0, __arg_0)` instead of
`(*__self_0_0).hash(__arg_0)`

closes #21160
This commit is contained in:
Jorge Aparicio 2015-01-14 18:22:16 -05:00
parent 896cb36eca
commit 59e9cfa0cf
4 changed files with 37 additions and 2 deletions

View file

@ -0,0 +1,21 @@
// Copyright 2015 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.
struct Bar;
impl Bar {
fn hash<T>(&self, _: T) {}
}
#[derive(Hash)]
//~^ error: the trait `core::hash::Hash<__S>` is not implemented for the type `Bar`
struct Foo(Bar);
fn main() {}