Tests for issue 5997 failure and success conditions.

Closes #5997.
This commit is contained in:
Kevin Butler 2014-04-15 05:58:22 +01:00
parent 903fbd2635
commit 3b9ade0f81
3 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,22 @@
// Copyright 2014 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.
// error-pattern: missing type param `Z` in the substitution of `Z`
fn f<Z>() -> bool {
enum E { V(Z) }
true
}
fn main() {
let b = f::<int>();
assert!(b);
}

View File

@ -0,0 +1,21 @@
// Copyright 2014 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.
fn f<T>() -> bool {
struct S(T); //~ ERROR use of undeclared type name `T`
//~^ ERROR attempt to use a type argument out of scope
true
}
fn main() {
let b = f::<int>();
assert!(b);
}

View File

@ -0,0 +1,22 @@
// Copyright 2014 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.
fn f<T>() -> bool {
enum E<T> { V(T) }
struct S<T>(T);
true
}
fn main() {
let b = f::<int>();
assert!(b);
}