diff options
| author | Jared Roesch <roeschinc@gmail.com> | 2015-07-21 14:52:21 -0700 |
|---|---|---|
| committer | Jared Roesch <jroesch@MacBook.home> | 2015-07-25 19:57:59 -0700 |
| commit | 9da04b2bd1fdcd147f6d0ebcdbb5108f63bf7576 (patch) | |
| tree | 57efb2020cd1fe30a33aeaed4642b272db0bbda3 /src/test | |
| parent | d732f7323b07cd62bf2a9f7e4785407d6f82ee63 (diff) | |
| download | rust-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.rs | 7 | ||||
| -rw-r--r-- | src/test/compile-fail/default_ty_param_conflict_cross_crate.rs | 18 |
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` } |
