Graydon Hoare | d1affff | 2012-12-11 01:32:48 | [diff] [blame] | 1 | // Copyright 2012 The Rust Project Developers. See the COPYRIGHT |
| 2 | // file at the top-level directory of this distribution and at |
| 3 | // http://rust-lang.org/COPYRIGHT. |
| 4 | // |
| 5 | // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or |
| 6 | // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| 7 | // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| 8 | // option. This file may not be copied, modified, or distributed |
| 9 | // except according to those terms. |
| 10 | |
Patrick Walton | 02e804b | 2012-12-17 22:57:37 | [diff] [blame] | 11 | |
Brian Anderson | 05e51e6 | 2012-12-03 02:29:22 | [diff] [blame] | 12 | trait A { |
Patrick Walton | 8fa66e8 | 2013-03-13 02:32:14 | [diff] [blame] | 13 | fn g<T>(&self, x: T, y: T) -> (T, T) { (x, y) } |
Brian Anderson | 05e51e6 | 2012-12-03 02:29:22 | [diff] [blame] | 14 | } |
| 15 | |
Patrick Walton | 9143688 | 2013-02-14 19:47:00 | [diff] [blame] | 16 | impl A for int { } |
Brian Anderson | 05e51e6 | 2012-12-03 02:29:22 | [diff] [blame] | 17 | |
| 18 | fn f<T, V: A>(i: V, j: T, k: T) -> (T, T) { |
Luqman Aden | 178882c | 2013-02-15 10:44:18 | [diff] [blame] | 19 | i.g(j, k) |
Brian Anderson | 05e51e6 | 2012-12-03 02:29:22 | [diff] [blame] | 20 | } |
| 21 | |
Jed Davis | 9939d88 | 2013-02-17 22:36:43 | [diff] [blame] | 22 | pub fn main () { |
Corey Richardson | cc57ca0 | 2013-05-19 02:02:45 | [diff] [blame] | 23 | assert_eq!(f(0, 1, 2), (1, 2)); |
| 24 | assert_eq!(f(0, 1u8, 2u8), (1u8, 2u8)); |
Brian Anderson | 05e51e6 | 2012-12-03 02:29:22 | [diff] [blame] | 25 | } |