]> git.lizzy.rs Git - rust.git/commitdiff
testsuite: Add test for #4208
authorTim Chevalier <chevalier@alum.wellesley.edu>
Mon, 16 Sep 2013 19:02:27 +0000 (12:02 -0700)
committerTim Chevalier <chevalier@alum.wellesley.edu>
Mon, 16 Sep 2013 19:02:27 +0000 (12:02 -0700)
Closes #4208

src/test/auxiliary/issue-4208-cc.rs [new file with mode: 0644]
src/test/run-pass/issue-4208.rs [new file with mode: 0644]

diff --git a/src/test/auxiliary/issue-4208-cc.rs b/src/test/auxiliary/issue-4208-cc.rs
new file mode 100644 (file)
index 0000000..26db69f
--- /dev/null
@@ -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> {}
diff --git a/src/test/run-pass/issue-4208.rs b/src/test/run-pass/issue-4208.rs
new file mode 100644 (file)
index 0000000..e8b633c
--- /dev/null
@@ -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() {}