diff options
| author | bors <bors@rust-lang.org> | 2015-05-04 18:59:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-05-04 18:59:47 +0000 |
| commit | 9b481f89d104963e0b91c234ce9c8f2eb2216f15 (patch) | |
| tree | cd703aacc59875ee99f7957d11bbcf419fa5ad29 | |
| parent | 70db76602e0fbd88c718e4f564b90a8819978773 (diff) | |
| parent | e7d052ebd943762c4dbfd9a7a0525f3288a26ffa (diff) | |
| download | rust-9b481f89d104963e0b91c234ce9c8f2eb2216f15.tar.gz rust-9b481f89d104963e0b91c234ce9c8f2eb2216f15.zip | |
Auto merge of #25056 - jooert:sometests, r=alexcrichton
Add several regression tests and remove some unnecessary FIXMEs.
23 files changed, 211 insertions, 41 deletions
diff --git a/src/test/auxiliary/issue-19163.rs b/src/test/auxiliary/issue-19163.rs new file mode 100644 index 00000000000..76c5cdafd7c --- /dev/null +++ b/src/test/auxiliary/issue-19163.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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. + +#![crate_type = "lib"] + +#[macro_export] +macro_rules! mywrite { + ($dst:expr, $($arg:tt)*) => ($dst.write_fmt(format_args!($($arg)*))) +} diff --git a/src/test/compile-fail/issue-12511.rs b/src/test/compile-fail/issue-12511.rs new file mode 100644 index 00000000000..35697e68734 --- /dev/null +++ b/src/test/compile-fail/issue-12511.rs @@ -0,0 +1,19 @@ +// Copyright 2015 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. + +trait t1 : t2 { +//~^ ERROR: unsupported cyclic reference between types/traits detected +} + +trait t2 : t1 { +//~^ ERROR: unsupported cyclic reference between types/traits detected +} + +fn main() { } diff --git a/src/test/compile-fail/issue-17959.rs b/src/test/compile-fail/issue-17959.rs new file mode 100644 index 00000000000..56a66ecc8aa --- /dev/null +++ b/src/test/compile-fail/issue-17959.rs @@ -0,0 +1,31 @@ +// Copyright 2015 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. + +extern crate core; + +use core::ops::Drop; + +trait Bar {} + +struct G<T: ?Sized> { + _ptr: *const T +} + +impl<T> Drop for G<T> { +//~^ ERROR: The requirement `T : core::marker::Sized` is added only by the Drop impl. [E0367] + fn drop(&mut self) { + if !self._ptr.is_null() { + } + } +} + +fn main() { + let x:G<Bar>; +} diff --git a/src/test/compile-fail/issue-19109.rs b/src/test/compile-fail/issue-19109.rs new file mode 100644 index 00000000000..1ffffa9fc74 --- /dev/null +++ b/src/test/compile-fail/issue-19109.rs @@ -0,0 +1,22 @@ +// Copyright 2015 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. + +trait Trait { } + +fn function(t: &mut Trait) { + t as *mut Trait + //~^ ERROR: mismatched types: + //~| expected `()`, + //~| found `*mut Trait` + //~| (expected (), + //~| found *-ptr) [E0308] +} + +fn main() { } diff --git a/src/test/compile-fail/issue-19163.rs b/src/test/compile-fail/issue-19163.rs new file mode 100644 index 00000000000..cd6f7c4fd8f --- /dev/null +++ b/src/test/compile-fail/issue-19163.rs @@ -0,0 +1,21 @@ +// Copyright 2015 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-19163.rs + +#[macro_use] extern crate issue_19163; + +use std::io::Write; + +fn main() { + let mut v = vec![]; + mywrite!(&v, "Hello world"); + //~^ error: cannot borrow immutable borrowed content as mutable +} diff --git a/src/test/compile-fail/issue-19380.rs b/src/test/compile-fail/issue-19380.rs new file mode 100644 index 00000000000..dbc0e410cf9 --- /dev/null +++ b/src/test/compile-fail/issue-19380.rs @@ -0,0 +1,28 @@ +// Copyright 2015 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. + +trait Qiz { + fn qiz(); +} + +struct Foo; +impl Qiz for Foo { + fn qiz() {} +} + +struct Bar { + foos: &'static [&'static (Qiz + 'static)] +} + +const FOO : Foo = Foo; +const BAR : Bar = Bar { foos: &[&FOO]}; +//~^ ERROR: cannot convert to a trait object because trait `Qiz` is not object-safe [E0038] + +fn main() { } diff --git a/src/test/run-make/issue-18943/Makefile b/src/test/run-make/issue-18943/Makefile new file mode 100644 index 00000000000..bef70a0edaa --- /dev/null +++ b/src/test/run-make/issue-18943/Makefile @@ -0,0 +1,7 @@ +-include ../tools.mk + +# Regression test for ICE #18943 when compiling as lib + +all: + $(RUSTC) foo.rs --crate-type lib + $(call REMOVE_RLIBS,foo) && exit 0 || exit 1 diff --git a/src/test/run-make/issue-18943/foo.rs b/src/test/run-make/issue-18943/foo.rs new file mode 100644 index 00000000000..aadf0f593e7 --- /dev/null +++ b/src/test/run-make/issue-18943/foo.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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. + +trait Foo { } + +trait Bar { } + +impl<'a> Foo for Bar + 'a { } + diff --git a/src/test/run-pass/associated-types-impl-redirect.rs b/src/test/run-pass/associated-types-impl-redirect.rs index d9d11c95adb..4082580a123 100644 --- a/src/test/run-pass/associated-types-impl-redirect.rs +++ b/src/test/run-pass/associated-types-impl-redirect.rs @@ -14,8 +14,6 @@ // for `ByRef`. The right answer was to consider the result ambiguous // until more type information was available. -// ignore-pretty -- FIXME(#17362) - #![feature(lang_items, unboxed_closures)] #![no_implicit_prelude] diff --git a/src/test/run-pass/associated-types-where-clause-impl-ambiguity.rs b/src/test/run-pass/associated-types-where-clause-impl-ambiguity.rs index 4152321cab8..082ad53d559 100644 --- a/src/test/run-pass/associated-types-where-clause-impl-ambiguity.rs +++ b/src/test/run-pass/associated-types-where-clause-impl-ambiguity.rs @@ -14,8 +14,6 @@ // for `ByRef`. The right answer was to consider the result ambiguous // until more type information was available. -// ignore-pretty -- FIXME(#17362) pretty prints with `<<` which lexes wrong - #![feature(lang_items, unboxed_closures)] #![no_implicit_prelude] diff --git a/src/test/run-pass/deriving-cmp-generic-struct-enum.rs b/src/test/run-pass/deriving-cmp-generic-struct-enum.rs index 14f7862ef21..f061b6cf4c1 100644 --- a/src/test/run-pass/deriving-cmp-generic-struct-enum.rs +++ b/src/test/run-pass/deriving-cmp-generic-struct-enum.rs @@ -8,9 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// no-pretty-expanded FIXME #15189 - - #[derive(PartialEq, Eq, PartialOrd, Ord)] enum ES<T> { ES1 { x: T }, diff --git a/src/test/run-pass/deriving-cmp-generic-struct.rs b/src/test/run-pass/deriving-cmp-generic-struct.rs index 5c7d806f519..d6c73f394ac 100644 --- a/src/test/run-pass/deriving-cmp-generic-struct.rs +++ b/src/test/run-pass/deriving-cmp-generic-struct.rs @@ -8,9 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// no-pretty-expanded FIXME #15189 - - #[derive(PartialEq, Eq, PartialOrd, Ord)] struct S<T> { x: T, diff --git a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs index b7bfb91b278..fc256228507 100644 --- a/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs +++ b/src/test/run-pass/deriving-cmp-generic-tuple-struct.rs @@ -8,9 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// no-pretty-expanded FIXME #15189 - - #[derive(PartialEq, Eq, PartialOrd, Ord)] struct TS<T>(T,T); diff --git a/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs b/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs index 7a0d35f6f49..3fdf840d596 100644 --- a/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs +++ b/src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-test FIXME #11820: & is unreliable in deriving - use std::cmp::Ordering::{Less,Equal,Greater}; -#[derive(Eq,Ord)] +#[derive(PartialEq, Eq, PartialOrd, Ord)] struct A<'a> { x: &'a isize } diff --git a/src/test/run-pass/generic-recursive-tag.rs b/src/test/run-pass/generic-recursive-tag.rs index 863e0d7e333..433bd7cd906 100644 --- a/src/test/run-pass/generic-recursive-tag.rs +++ b/src/test/run-pass/generic-recursive-tag.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-pretty FIXME(#14193) - #![allow(unknown_features)] #![feature(box_syntax)] diff --git a/src/test/run-pass/issue-14564.rs b/src/test/run-pass/issue-14564.rs new file mode 100644 index 00000000000..a661437a44c --- /dev/null +++ b/src/test/run-pass/issue-14564.rs @@ -0,0 +1,15 @@ +// Copyright 2015 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. + +mod Foo { } +struct Foo; +impl Foo { } + +fn main() { } diff --git a/src/test/run-pass/issue-17170.rs b/src/test/run-pass/issue-17170.rs new file mode 100644 index 00000000000..ef134525927 --- /dev/null +++ b/src/test/run-pass/issue-17170.rs @@ -0,0 +1,20 @@ +// Copyright 2015 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. + +#![feature(simd)] + +#[simd] +struct T(f64, f64, f64); + +static X: T = T(0.0, 0.0, 0.0); + +fn main() { + let _ = X; +} diff --git a/src/test/run-pass/issue-19081.rs b/src/test/run-pass/issue-19081.rs index 83ba322ba30..8e2fa2b6197 100644 --- a/src/test/run-pass/issue-19081.rs +++ b/src/test/run-pass/issue-19081.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-pretty -- FIXME(#17362) pretty prints as `Hash<<Self as Hasher...` which fails to parse - pub trait Hasher { type State; diff --git a/src/test/run-pass/last-use-in-cap-clause.rs b/src/test/run-pass/last-use-in-cap-clause.rs index f196899f69d..867cb35f1f6 100644 --- a/src/test/run-pass/last-use-in-cap-clause.rs +++ b/src/test/run-pass/last-use-in-cap-clause.rs @@ -20,7 +20,6 @@ struct A { a: Box<isize> } fn foo() -> Box<FnMut() -> isize + 'static> { let k: Box<_> = box 22; let _u = A {a: k.clone()}; - // FIXME(#16640) suffix in `22` suffix shouldn't be necessary let result = || 22; // FIXME (#22405): Replace `Box::new` with `box` here when/if possible. Box::new(result) diff --git a/src/test/run-pass/ufcs-polymorphic-paths.rs b/src/test/run-pass/ufcs-polymorphic-paths.rs index eec852ae181..a8240dfbd1f 100644 --- a/src/test/run-pass/ufcs-polymorphic-paths.rs +++ b/src/test/run-pass/ufcs-polymorphic-paths.rs @@ -17,9 +17,6 @@ use std::default::Default; use std::iter::FromIterator; use std::ops::Add; use std::option::IntoIter as OptionIter; -// FIXME the glob std::prelude::*; import of Vec is missing non-static inherent -// methods. -use std::vec::Vec; pub struct XorShiftRng; use XorShiftRng as DummyRng; @@ -81,11 +78,10 @@ tests! { Vec::map_in_place, fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8>, (vec![b'f', b'o', b'o'], u8_as_i8); Vec::map_in_place::<i8, fn(u8) -> i8>, fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8>, (vec![b'f', b'o', b'o'], u8_as_i8); - // FIXME these break with "type parameter might not appear here pointing at `<u8>`. - // Vec::<u8>::map_in_place: fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8> - // , (vec![b'f', b'o', b'o'], u8_as_i8); - // Vec::<u8>::map_in_place::<i8, fn(u8) -> i8>: fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8> - // , (vec![b'f', b'o', b'o'], u8_as_i8); + Vec::<u8>::map_in_place, fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8> + , (vec![b'f', b'o', b'o'], u8_as_i8); + Vec::<u8>::map_in_place::<i8, fn(u8) -> i8>, fn(Vec<u8>, fn(u8) -> i8) -> Vec<i8> + , (vec![b'f', b'o', b'o'], u8_as_i8); // Trait static methods. bool::size, fn() -> usize, (); diff --git a/src/test/run-pass/unfold-cross-crate.rs b/src/test/run-pass/unfold-cross-crate.rs index 5c699bf3044..938b5dc6167 100644 --- a/src/test/run-pass/unfold-cross-crate.rs +++ b/src/test/run-pass/unfold-cross-crate.rs @@ -8,9 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// no-pretty-expanded FIXME #15189 - - #![feature(core)] use std::iter::Unfold; diff --git a/src/test/run-pass/utf8.rs b/src/test/run-pass/utf8.rs index 4782edf4e12..ec1c6970ea0 100644 --- a/src/test/run-pass/utf8.rs +++ b/src/test/run-pass/utf8.rs @@ -7,8 +7,6 @@ // <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. -// -// no-pretty-expanded FIXME #15189 pub fn main() { let yen: char = '¥'; // 0xa5 diff --git a/src/test/run-pass/vec-fixed-length.rs b/src/test/run-pass/vec-fixed-length.rs index fbaba9b8a61..befb27e6ccb 100644 --- a/src/test/run-pass/vec-fixed-length.rs +++ b/src/test/run-pass/vec-fixed-length.rs @@ -11,7 +11,16 @@ use std::mem::size_of; -pub fn main() { +#[cfg(not(target_pointer_width = "64"))] +fn test_big_vec() {} + +#[cfg(target_pointer_width = "64")] +fn test_big_vec() +{ + assert_eq!(size_of::<[u8; (1 << 32)]>(), (1 << 32)); +} + +fn main() { let x: [isize; 4] = [1, 2, 3, 4]; assert_eq!(x[0], 1); assert_eq!(x[1], 2); @@ -19,10 +28,5 @@ pub fn main() { assert_eq!(x[3], 4); assert_eq!(size_of::<[u8; 4]>(), 4); - - // FIXME #10183 - // FIXME #18069 - //if cfg!(target_pointer_width = "64") { - // assert_eq!(size_of::<[u8; (1 << 32)]>(), (1 << 32)); - //} + test_big_vec(); } |
