about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-05-04 18:59:47 +0000
committerbors <bors@rust-lang.org>2015-05-04 18:59:47 +0000
commit9b481f89d104963e0b91c234ce9c8f2eb2216f15 (patch)
treecd703aacc59875ee99f7957d11bbcf419fa5ad29
parent70db76602e0fbd88c718e4f564b90a8819978773 (diff)
parente7d052ebd943762c4dbfd9a7a0525f3288a26ffa (diff)
downloadrust-9b481f89d104963e0b91c234ce9c8f2eb2216f15.tar.gz
rust-9b481f89d104963e0b91c234ce9c8f2eb2216f15.zip
Auto merge of #25056 - jooert:sometests, r=alexcrichton
Add several regression tests and remove some unnecessary FIXMEs.
-rw-r--r--src/test/auxiliary/issue-19163.rs16
-rw-r--r--src/test/compile-fail/issue-12511.rs19
-rw-r--r--src/test/compile-fail/issue-17959.rs31
-rw-r--r--src/test/compile-fail/issue-19109.rs22
-rw-r--r--src/test/compile-fail/issue-19163.rs21
-rw-r--r--src/test/compile-fail/issue-19380.rs28
-rw-r--r--src/test/run-make/issue-18943/Makefile7
-rw-r--r--src/test/run-make/issue-18943/foo.rs16
-rw-r--r--src/test/run-pass/associated-types-impl-redirect.rs2
-rw-r--r--src/test/run-pass/associated-types-where-clause-impl-ambiguity.rs2
-rw-r--r--src/test/run-pass/deriving-cmp-generic-struct-enum.rs3
-rw-r--r--src/test/run-pass/deriving-cmp-generic-struct.rs3
-rw-r--r--src/test/run-pass/deriving-cmp-generic-tuple-struct.rs3
-rw-r--r--src/test/run-pass/deriving-self-lifetime-totalord-totaleq.rs4
-rw-r--r--src/test/run-pass/generic-recursive-tag.rs2
-rw-r--r--src/test/run-pass/issue-14564.rs15
-rw-r--r--src/test/run-pass/issue-17170.rs20
-rw-r--r--src/test/run-pass/issue-19081.rs2
-rw-r--r--src/test/run-pass/last-use-in-cap-clause.rs1
-rw-r--r--src/test/run-pass/ufcs-polymorphic-paths.rs12
-rw-r--r--src/test/run-pass/unfold-cross-crate.rs3
-rw-r--r--src/test/run-pass/utf8.rs2
-rw-r--r--src/test/run-pass/vec-fixed-length.rs18
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();
 }