auto merge of #9233 : catamorphism/rust/issue-4208, r=catamorphism

Closes #4208
This commit is contained in:
bors 2013-09-16 21:15:51 -07:00
commit b75e07501b
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,21 @@
// Copyright 2013 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.
#[link(name = "numeric",
vers = "0.1")];
#[crate_type = "lib"];
pub trait Trig<T> {
fn sin(&self) -> T;
}
pub fn sin<T:Trig<R>, R>(theta: &T) -> R { theta.sin() }
pub trait Angle<T>: Trig<T> {}

View File

@ -0,0 +1,19 @@
// Copyright 2013 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.
// aux-build:issue-4208-cc.rs
// xfail-fast - Windows hates cross-crate tests
extern mod numeric;
use numeric::*;
fn foo<T, A:Angle<T>>(theta: A) -> T { sin(&theta) }
fn main() {}