about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorJared Roesch <roeschinc@gmail.com>2015-07-21 14:52:21 -0700
committerJared Roesch <jroesch@MacBook.home>2015-07-25 19:57:59 -0700
commit9da04b2bd1fdcd147f6d0ebcdbb5108f63bf7576 (patch)
tree57efb2020cd1fe30a33aeaed4642b272db0bbda3 /src/test
parentd732f7323b07cd62bf2a9f7e4785407d6f82ee63 (diff)
downloadrust-9da04b2bd1fdcd147f6d0ebcdbb5108f63bf7576.tar.gz
rust-9da04b2bd1fdcd147f6d0ebcdbb5108f63bf7576.zip
Make default error reporting deterministic
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/default_ty_param_conflict.rs7
-rw-r--r--src/test/compile-fail/default_ty_param_conflict_cross_crate.rs18
2 files changed, 19 insertions, 6 deletions
diff --git a/src/test/compile-fail/default_ty_param_conflict.rs b/src/test/compile-fail/default_ty_param_conflict.rs
index 900945da113..42de545f9d0 100644
--- a/src/test/compile-fail/default_ty_param_conflict.rs
+++ b/src/test/compile-fail/default_ty_param_conflict.rs
@@ -12,12 +12,19 @@ use std::fmt::Debug;
 
 // Example from the RFC
 fn foo<F:Default=usize>() -> F { F::default() }
+//~^ NOTE: a default was defined here...
+
 fn bar<B:Debug=isize>(b: B) { println!("{:?}", b); }
+//~^ NOTE: a second default was defined here...
 
 fn main() {
     // Here, F is instantiated with $0=uint
     let x = foo();
+    //~^ ERROR: mismatched types
+    //~| NOTE: conflicting type parameter defaults `usize` and `isize`
+    //~| NOTE: ...that was applied to an unconstrained type variable here
 
     // Here, B is instantiated with $1=uint, and constraint $0 <: $1 is added.
     bar(x);
+    //~^ NOTE: ...that also applies to the same type variable here
 }
diff --git a/src/test/compile-fail/default_ty_param_conflict_cross_crate.rs b/src/test/compile-fail/default_ty_param_conflict_cross_crate.rs
index bc79d3713e5..804a864e074 100644
--- a/src/test/compile-fail/default_ty_param_conflict_cross_crate.rs
+++ b/src/test/compile-fail/default_ty_param_conflict_cross_crate.rs
@@ -7,14 +7,20 @@
 // <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:default_ty_param_cross_crate_crate.rs
+extern crate default_param_test;
 
-use std::fmt::Debug;
-use std::collections::HashMap;
+use default_param_test::{Foo, bleh};
 
-fn foo<R=()>(x: HashMap<i32, i32, R>) ->  HashMap<i32, i32, R> { x }
-fn bar<R=char>(x: HashMap<i32, i32, R>) {}
+fn meh<X, B=bool>(x: Foo<X, B>) {}
+//~^ NOTE: a default was defined here...
 
 fn main() {
-    let x: HashMap<i32, i32, _> = foo(panic!());
-    bar(x);
+    let foo = bleh();
+    //~^ NOTE: ...that also applies to the same type variable here
+
+    meh(foo);
+    //~^ ERROR: mismatched types:
+    //~| NOTE: conflicting type parameter defaults `bool` and `char`
 }