test: Fix fallout in tests

This commit is contained in:
Alex Crichton 2015-04-17 22:12:20 -07:00
parent eeb94886ad
commit 0791f9f406
112 changed files with 205 additions and 466 deletions

View File

@ -8,10 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(core)]
use std::marker::MarkerTrait;
pub trait Foo : MarkerTrait {
pub trait Foo {
fn bar();
}

View File

@ -8,6 +8,4 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(core)]
trait Foo : ::std::marker::MarkerTrait {}
trait Foo {}

View File

@ -14,7 +14,7 @@
pub mod bar {
use std::marker;
pub trait Bar: marker::MarkerTrait + 'static {}
pub trait Bar: 'static {}
impl Bar for .. {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -16,14 +16,12 @@
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -14,16 +14,13 @@
//! (#14132).
#![crate_name = "a"]
#![feature(core)]
use std::marker::MarkerTrait;
macro_rules! three {
() => { 3 }
}
pub trait U : MarkerTrait {}
pub trait V : MarkerTrait {}
pub trait U {}
pub trait V {}
impl U for () {}
impl V for () {}

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(core)]
pub trait Foo : ::std::marker::MarkerTrait {
pub trait Foo {
}
impl Foo for isize {

View File

@ -11,9 +11,7 @@
#![feature(optin_builtin_traits, core)]
#![crate_type = "rlib"]
use std::marker::MarkerTrait;
pub trait DefaultedTrait : MarkerTrait { }
pub trait DefaultedTrait { }
impl DefaultedTrait for .. { }
pub struct Something<T> { t: T }

View File

@ -10,7 +10,7 @@
// Check that an associated type cannot be bound in an expression path.
trait Foo : ::std::marker::MarkerTrait {
trait Foo {
type A;
fn bar() -> isize;
}

View File

@ -11,7 +11,7 @@
// Test that we do not ICE when an impl is missing an associated type (and that we report
// a useful error, of course).
trait Trait : ::std::marker::MarkerTrait {
trait Trait {
type Type;
}

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
trait Foo : ::std::marker::MarkerTrait {
trait Foo {
type X;
type Y;
}

View File

@ -19,7 +19,7 @@
// which checks that the trait interface itself is not considered an
// error as long as all impls satisfy the constraint.
trait Get : ::std::marker::MarkerTrait {
trait Get {
type Value;
}

View File

@ -19,7 +19,7 @@
// which checks that the trait interface itself is not considered an
// error as long as all impls satisfy the constraint.
trait Get : ::std::marker::MarkerTrait {
trait Get {
type Value;
}

View File

@ -10,7 +10,7 @@
// Check that an associated type cannot be bound in an expression path.
trait Foo : ::std::marker::MarkerTrait {
trait Foo {
type A;
fn bar() -> isize;
}

View File

@ -10,7 +10,7 @@
use std::cell::RefCell;
trait Trait : ::std::marker::MarkerTrait {}
trait Trait {}
pub fn main() {
let x: Vec<Trait + Sized> = Vec::new();

View File

@ -10,7 +10,6 @@
use std::fmt::Debug;
use std::default::Default;
use std::marker::MarkerTrait;
// Test that two blanket impls conflict (at least without negative
// bounds). After all, some other crate could implement Even or Odd
@ -20,9 +19,9 @@ trait MyTrait {
fn get(&self) -> usize;
}
trait Even : MarkerTrait { }
trait Even { }
trait Odd : MarkerTrait { }
trait Odd { }
impl Even for isize { }

View File

@ -19,9 +19,9 @@ trait MyTrait {
fn get(&self) -> usize;
}
trait Even : ::std::marker::MarkerTrait { }
trait Even {}
trait Odd : ::std::marker::MarkerTrait { }
trait Odd {}
impl<T:Even> MyTrait for T { //~ ERROR E0119
fn get(&self) -> usize { 0 }

View File

@ -10,7 +10,7 @@
#![feature(optin_builtin_traits)]
trait MyTrait : ::std::marker::MarkerTrait {}
trait MyTrait {}
struct TestType<T>(::std::marker::PhantomData<T>);

View File

@ -10,21 +10,19 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait MyTrait: MarkerTrait {}
trait MyTrait {}
impl MyTrait for .. {}
impl MyTrait for .. {}
//~^ ERROR conflicting implementations for trait `MyTrait`
trait MySafeTrait: MarkerTrait {}
trait MySafeTrait {}
unsafe impl MySafeTrait for .. {}
//~^ ERROR implementing the trait `MySafeTrait` is not unsafe
unsafe trait MyUnsafeTrait: MarkerTrait {}
unsafe trait MyUnsafeTrait {}
impl MyUnsafeTrait for .. {}
//~^ ERROR the trait `MyUnsafeTrait` requires an `unsafe impl` declaration

View File

@ -17,11 +17,9 @@
extern crate coherence_copy_like_lib as lib;
use std::marker::MarkerTrait;
struct MyType { x: i32 }
trait MyTrait : MarkerTrait { }
trait MyTrait { }
impl<T: lib::MyCopy> MyTrait for T { } //~ ERROR E0119

View File

@ -15,11 +15,9 @@
extern crate coherence_copy_like_lib as lib;
use std::marker::MarkerTrait;
struct MyType { x: i32 }
trait MyTrait : MarkerTrait { }
trait MyTrait { }
impl<T: lib::MyCopy> MyTrait for T { } //~ ERROR E0119
// `MyStruct` is not declared fundamental, therefore this would

View File

@ -15,11 +15,9 @@
extern crate coherence_copy_like_lib as lib;
use std::marker::MarkerTrait;
struct MyType { x: i32 }
trait MyTrait : MarkerTrait { }
trait MyTrait { }
impl<T: lib::MyCopy> MyTrait for T { } //~ ERROR E0119
// Tuples are not fundamental, therefore this would require that

View File

@ -15,7 +15,7 @@ struct Fat<T: ?Sized> {
}
struct Foo;
trait Bar : ::std::marker::MarkerTrait {}
trait Bar {}
impl Bar for Foo {}
pub fn main() {

View File

@ -10,10 +10,8 @@
// Test implicit coercions involving DSTs and raw pointers.
use std::marker::MarkerTrait;
struct S;
trait T : MarkerTrait {}
trait T {}
impl T for S {}
struct Foo<T: ?Sized> {

View File

@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::num::SignedInt;
fn main() {
let _f = 10.abs; //~ ERROR attempted to take value of method
let _f = 10i32.abs; //~ ERROR attempted to take value of method
}

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait Node : MarkerTrait {
trait Node {
fn zomg();
}

View File

@ -9,9 +9,8 @@
// except according to those terms.
use std::fmt::Debug;
use std::marker::MarkerTrait;
trait Str : MarkerTrait {}
trait Str {}
trait Something {
fn yay<T: Debug>(_: Option<Self>, thing: &[T]);

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait ListItem<'a> : MarkerTrait {
trait ListItem<'a> {
fn list_name() -> &'a str;
}

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
pub trait AbstractRenderer : MarkerTrait {}
pub trait AbstractRenderer {}
fn _create_render(_: &()) ->
AbstractRenderer

View File

@ -8,14 +8,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(unboxed_closures)]
use std::any::Any;
use std::any::TypeId;
use std::marker::MarkerTrait;
pub trait Pt : MarkerTrait {}
pub trait Rt : MarkerTrait {}
pub trait Pt {}
pub trait Rt {}
trait Private<P: Pt, R: Rt> {
fn call(&self, p: P, r: R);

View File

@ -8,13 +8,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
fn add_state(op: <isize as HasState>::State) {
//~^ ERROR the trait `HasState` is not implemented for the type `isize`
}
trait HasState : MarkerTrait {
trait HasState {
type State;
}

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {
trait Foo {
type Item;
}

View File

@ -12,11 +12,9 @@
// cause compiler to loop. Note that no instances
// of such a type could ever be constructed.
use std::marker::MarkerTrait;
struct t(Box<t>); //~ ERROR this type cannot be instantiated
trait to_str_2 : MarkerTrait {
trait to_str_2 {
fn my_to_string() -> String;
}

View File

@ -14,10 +14,9 @@
// away.
use std::cell::RefCell;
use std::marker::MarkerTrait;
use std::ops::{Shl, Shr};
pub trait Subscriber : MarkerTrait {
pub trait Subscriber {
type Input;
}

View File

@ -12,9 +12,7 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
unsafe trait Trait: MarkerTrait {
unsafe trait Trait {
//~^ error: traits with default impls (`e.g. unsafe impl Trait for ..`) must have no methods or associated items
type Output;
}

View File

@ -8,7 +8,12 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::num::ToPrimitive;
pub trait ToPrimitive {
fn to_int(&self) -> isize { 0 }
}
impl ToPrimitive for i32 {}
impl ToPrimitive for isize {}
trait Add {
fn to_int(&self) -> isize;

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait I : MarkerTrait {}
trait I {}
type K = I+'static;
fn foo(_x: K) {} //~ ERROR: the trait `core::marker::Sized` is not implemented

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait A : MarkerTrait {}
trait A {}
struct Struct {
r: A+'static
@ -22,6 +20,6 @@ fn new_struct(r: A+'static)
Struct { r: r }
}
trait Curve : MarkerTrait {}
trait Curve {}
enum E {X(Curve+'static)}
fn main() {}

View File

@ -10,14 +10,12 @@
// Test the mechanism for warning about possible missing `self` declarations.
use std::marker::MarkerTrait;
trait CtxtFn {
fn f8(self, usize) -> usize;
fn f9(usize) -> usize; //~ NOTE candidate
}
trait OtherTrait : MarkerTrait {
trait OtherTrait {
fn f9(usize) -> usize; //~ NOTE candidate
}
@ -26,7 +24,7 @@ trait OtherTrait : MarkerTrait {
// declaration to match against, so we wind up prisizeing it as a
// candidate. This seems not unreasonable -- perhaps the user meant to
// implement it, after all.
trait UnusedTrait : MarkerTrait {
trait UnusedTrait {
fn f9(usize) -> usize; //~ NOTE candidate
}
@ -54,7 +52,7 @@ impl Myisize {
}
}
trait ManyImplTrait : MarkerTrait {
trait ManyImplTrait {
fn is_str() -> bool { //~ NOTE candidate
false
}

View File

@ -10,12 +10,11 @@
// Test which of the builtin types are considered POD.
use std::marker::MarkerTrait;
use std::rc::Rc;
fn assert_copy<T:Copy>() { }
trait Dummy : MarkerTrait { }
trait Dummy { }
#[derive(Copy, Clone)]
struct MyStruct {

View File

@ -10,9 +10,7 @@
#![feature(box_syntax)]
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {
trait Foo {
}
impl<T:Copy> Foo for T {

View File

@ -12,10 +12,8 @@
// in this file all test the "kind" violates detected during kindck.
// See all `regions-bounded-by-send.rs`
use std::marker::MarkerTrait;
fn assert_send<T:Send>() { }
trait Dummy : MarkerTrait { }
trait Dummy { }
trait Message : Send { }
// careful with object types, who knows what they close over...

View File

@ -12,10 +12,8 @@
// is broken into two parts because some errors occur in distinct
// phases in the compiler. See kindck-send-object2.rs as well!
use std::marker::MarkerTrait;
fn assert_send<T:Send+'static>() { }
trait Dummy : MarkerTrait { }
trait Dummy { }
// careful with object types, who knows what they close over...
fn test51<'a>() {

View File

@ -10,10 +10,8 @@
// Continue kindck-send-object1.rs.
use std::marker::MarkerTrait;
fn assert_send<T:Send>() { }
trait Dummy : MarkerTrait { }
trait Dummy { }
fn test50() {
assert_send::<&'static Dummy>(); //~ ERROR the trait `core::marker::Sync` is not implemented

View File

@ -105,7 +105,7 @@ impl PrivTrait for (Private<isize>,) {
fn bar(&self) -> Private<isize> { panic!() }
}
pub trait ParamTrait<T> : marker::MarkerTrait {
pub trait ParamTrait<T> {
fn foo() -> T;
}

View File

@ -11,9 +11,7 @@
// Test that an object type `Box<Foo>` is not considered to implement the
// trait `Foo`. Issue #5087.
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {}
trait Foo {}
fn take_foo<F:Foo>(f: F) {}
fn take_object(f: Box<Foo>) { take_foo(f); }
//~^ ERROR the trait `Foo` is not implemented

View File

@ -11,7 +11,7 @@
// Check that we correctly prevent users from making trait objects
// from traits with static methods.
trait Foo : ::std::marker::MarkerTrait {
trait Foo {
fn foo();
}

View File

@ -14,9 +14,9 @@
#![feature(optin_builtin_traits)]
use std::marker::{MarkerTrait, PhantomData};
use std::marker::{PhantomData};
unsafe trait Zen: MarkerTrait {}
unsafe trait Zen {}
unsafe impl Zen for .. {}

View File

@ -17,9 +17,7 @@
// public type, private value
pub mod foo1 {
use std::marker::MarkerTrait;
pub trait Bar : MarkerTrait {
pub trait Bar {
}
pub struct Baz;
@ -41,7 +39,7 @@ fn test_list1() {
// private type, public value
pub mod foo2 {
trait Bar : ::std::marker::MarkerTrait {
trait Bar {
}
pub struct Baz;
@ -62,7 +60,7 @@ fn test_list2() {
// neither public
pub mod foo3 {
trait Bar : ::std::marker::MarkerTrait {
trait Bar {
}
pub struct Baz;

View File

@ -11,7 +11,7 @@
// Test that attempts to implicitly coerce a value into an
// object respect the lifetime bound on the object type.
trait Foo : ::std::marker::MarkerTrait {}
trait Foo {}
impl<'a> Foo for &'a [u8] {}
// FIXME (#22405): Replace `Box::new` with `box` here when/if possible.

View File

@ -12,9 +12,7 @@
// FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
use std::marker::MarkerTrait;
trait X : MarkerTrait {}
trait X {}
trait Iter {
type Item: X;

View File

@ -10,9 +10,7 @@
#![feature(box_syntax)]
use std::marker::MarkerTrait;
trait Foo : MarkerTrait { }
trait Foo { }
impl<'a> Foo for &'a isize { }

View File

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
trait TraitNotAStruct : ::std::marker::MarkerTrait { }
trait TraitNotAStruct {}
fn main() {
TraitNotAStruct{ value: 0 };

View File

@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::marker::MarkerTrait;
trait Trait : MarkerTrait {}
trait Trait {}
struct Foo<T:Trait> {
x: T,

View File

@ -10,9 +10,7 @@
// Tests for "default" bounds inferred for traits with no bounds list.
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {}
trait Foo {}
fn a(_x: Box<Foo+Send>) {
}

View File

@ -12,9 +12,7 @@
// trait impl is only applied to a trait object, not concrete types which implement
// the trait.
use std::marker::MarkerTrait;
trait T : MarkerTrait {}
trait T {}
impl<'a> T+'a {
fn foo(&self) {}

View File

@ -8,9 +8,9 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use std::num::Int;
use std::ops::Add;
trait BrokenAdd: Int {
trait BrokenAdd: Copy + Add<Output=Self> {
fn broken_add<T>(&self, rhs: T) -> Self {
*self + rhs //~ ERROR mismatched types
//~| expected `Self`
@ -20,7 +20,7 @@ trait BrokenAdd: Int {
}
}
impl<T: Int> BrokenAdd for T {}
impl<T: Copy + Add<Output=T>> BrokenAdd for T {}
pub fn main() {
let foo: u8 = 0;

View File

@ -10,9 +10,7 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait MyTrait: MarkerTrait {}
trait MyTrait {}
impl MyTrait for .. {}

View File

@ -10,9 +10,7 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait MyTrait: MarkerTrait {}
trait MyTrait {}
impl MyTrait for .. {}
impl<T> !MyTrait for *mut T {}

View File

@ -10,13 +10,11 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait MyTrait: MarkerTrait {}
trait MyTrait {}
impl MyTrait for .. {}
unsafe trait MyUnsafeTrait: MarkerTrait {}
unsafe trait MyUnsafeTrait {}
unsafe impl MyUnsafeTrait for .. {}

View File

@ -15,15 +15,13 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait Defaulted : MarkerTrait { }
trait Defaulted { }
impl Defaulted for .. { }
impl<'a,T:Signed> Defaulted for &'a T { }
impl<'a,T:Signed> Defaulted for &'a mut T { }
fn is_defaulted<T:Defaulted>() { }
trait Signed : MarkerTrait { }
trait Signed { }
impl Signed for i32 { }
fn main() {

View File

@ -13,8 +13,6 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait MyTrait : 'static {}
impl MyTrait for .. {}

View File

@ -13,9 +13,7 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait NotImplemented: MarkerTrait { }
trait NotImplemented { }
trait MyTrait : NotImplemented {}

View File

@ -15,11 +15,9 @@
#![feature(optin_builtin_traits)]
use std::marker::MarkerTrait;
trait NotImplemented { }
trait NotImplemented: MarkerTrait { }
trait MyTrait: MarkerTrait
trait MyTrait
where Option<Self> : NotImplemented
{}

View File

@ -10,9 +10,7 @@
// Test `?Sized` local variables.
use std::marker;
trait T : marker::MarkerTrait { }
trait T {}
fn f1<X: ?Sized>(x: &X) {
let _: X; // <-- this is OK, no bindings created, no initializer.

View File

@ -10,9 +10,7 @@
// Test sized-ness checking in substitution in impls.
use std::marker::MarkerTrait;
trait T : MarkerTrait {}
trait T {}
// I would like these to fail eventually.
// impl - bounded

View File

@ -25,8 +25,6 @@ use sub::sub2 as msalias;
use sub::sub2;
use sub::sub2::nested_struct as sub_struct;
use std::num::One;
use std::num::cast;
use std::num::{from_int,from_i8,from_i32};
use std::mem::size_of;
@ -42,7 +40,6 @@ fn test_alias<I: Iterator>(i: Option<<I as Iterator>::Item>) {
// import tests
fn foo(x: &One) {}
let _: Option<u8> = from_i32(45);
let x = 42;

View File

@ -8,12 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(core)]
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {
trait Foo {
type T;
}

View File

@ -13,10 +13,6 @@
// pretty-expanded FIXME #23616
#![feature(core)]
use std::marker::MarkerTrait;
impl X for f64 { type Y = isize; }
trait X : MarkerTrait { type Y; }
trait X { type Y; }
fn main() {}

View File

@ -14,10 +14,9 @@
#![feature(core)]
use std::marker::MarkerTrait;
use std::slice;
trait Bound : MarkerTrait {}
trait Bound {}
impl<'a> Bound for &'a i32 {}

View File

@ -13,12 +13,9 @@
// pretty-expanded FIXME #23616
#![feature(core)]
#![allow(dead_code)]
use std::marker::MarkerTrait;
pub trait Integral : MarkerTrait {
pub trait Integral {
type Opposite;
}

View File

@ -12,17 +12,14 @@
// `Item` originates in a where-clause, not the declaration of
// `T`. Issue #20300.
#![feature(core)]
use std::marker::{MarkerTrait, PhantomData};
use std::marker::{PhantomData};
use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT};
use std::sync::atomic::Ordering::SeqCst;
static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
// Preamble.
trait Trait : MarkerTrait { type Item; }
trait Trait { type Item; }
struct Struct;
impl Trait for Struct {
type Item = u32;

View File

@ -11,7 +11,6 @@
macro_rules! assert_approx_eq {
($a:expr, $b:expr) => ({
use std::num::Float;
let (a, b) = (&$a, &$b);
assert!((*a - *b).abs() < 1.0e-6,
"{} is not approximately equal to {}", *a, *b);

View File

@ -31,7 +31,6 @@ enum Bar {
Quux(u32),
}
#[derive(FromPrimitive)]
enum Baz { A=0, B=5, }
fn main() {

View File

@ -1,39 +0,0 @@
// Copyright 2013-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.
#![feature(core)]
use std::num::FromPrimitive;
use std::isize;
#[derive(PartialEq, FromPrimitive, Debug)]
enum A {
Foo = isize::MAX,
Bar = 1,
Baz = 3,
Qux,
}
pub fn main() {
let x: Option<A> = FromPrimitive::from_int(isize::MAX);
assert_eq!(x, Some(A::Foo));
let x: Option<A> = FromPrimitive::from_int(1);
assert_eq!(x, Some(A::Bar));
let x: Option<A> = FromPrimitive::from_int(3);
assert_eq!(x, Some(A::Baz));
let x: Option<A> = FromPrimitive::from_int(4);
assert_eq!(x, Some(A::Qux));
let x: Option<A> = FromPrimitive::from_int(5);
assert_eq!(x, None);
}

View File

@ -10,8 +10,8 @@
// pretty-expanded FIXME #23616
use std::num::Int;
use std::ops::Add;
fn wsucc<T:Int>(n: T) -> T { n + { return n } }
fn wsucc<T:Add<Output=T> + Copy>(n: T) -> T { n + { return n } }
pub fn main() { }

View File

@ -1,39 +0,0 @@
// 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.
#![feature(std_misc)]
use std::num::strconv::ExponentFormat::{ExpBin, ExpDec};
use std::num::strconv::SignificantDigits::DigMax;
use std::num::strconv::SignFormat::{SignAll, SignNeg};
use std::num::strconv::float_to_str_common as to_string;
macro_rules! t {
($a:expr, $b:expr) => { { let (r, _) = $a; assert_eq!(r, $b.to_string()); } }
}
pub fn main() {
// Basic usage
t!(to_string(1.2345678e-5f64, 10, true, SignNeg, DigMax(6), ExpDec, false),
"1.234568e-5");
// Hexadecimal output
t!(to_string(7.281738281250e+01f64, 16, true, SignAll, DigMax(6), ExpBin, false),
"+1.2345p+6");
t!(to_string(-1.777768135071e-02f64, 16, true, SignAll, DigMax(6), ExpBin, false),
"-1.2345p-6");
// Some denormals
t!(to_string(4.9406564584124654e-324f64, 10, true, SignNeg, DigMax(6), ExpBin, false),
"1p-1074");
t!(to_string(2.2250738585072009e-308f64, 10, true, SignNeg, DigMax(6), ExpBin, false),
"1p-1022");
}

View File

@ -8,12 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(core)]
use std::marker::MarkerTrait;
trait A : MarkerTrait {
trait A {
extern "fastcall" fn test1(i: i32);
extern fn test2(i: i32);
}

View File

@ -8,17 +8,14 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(std_misc)]
use std::num::Float;
use std::f64;
pub fn main() {
let nan: f64 = Float::nan();
let nan: f64 = f64::NAN;
assert!((nan).is_nan());
let inf: f64 = Float::infinity();
let neg_inf: f64 = Float::neg_infinity();
let inf: f64 = f64::INFINITY;
let neg_inf: f64 = -f64::INFINITY;
assert_eq!(-inf, neg_inf);
assert!( nan != nan);

View File

@ -13,7 +13,6 @@
macro_rules! assert_approx_eq {
($a:expr, $b:expr) => ({
use std::num::Float;
let (a, b) = (&$a, &$b);
assert!((*a - *b).abs() < 1.0e-6,
"{} is not approximately equal to {}", *a, *b);

View File

@ -12,10 +12,7 @@
#![feature(collections)]
extern crate collections;
use std::collections::BitVec;
use std::num::Float;
fn main() {
// Generate sieve of Eratosthenes for n up to 1e6

View File

@ -10,11 +10,7 @@
// pretty-expanded FIXME #23616
#![feature(core)]
use std::marker::MarkerTrait;
trait Foo : MarkerTrait {
trait Foo {
fn quux(u8) {}
}

View File

@ -8,35 +8,30 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(zero_one)]
#![feature(core)]
use std::num::Int;
use std::num::Zero;
use std::thread;
// Avoid using constants, which would trigger compile-time errors.
fn min_val<T: Int>() -> T { Int::min_value() }
fn zero<T: Int>() -> T { Int::zero() }
fn main() {
assert!(thread::spawn(move|| { min_val::<isize>() / -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i8>() / -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i16>() / -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i32>() / -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i64>() / -1; }).join().is_err());
assert!(thread::spawn(move|| { 1isize / zero::<isize>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i8 / zero::<i8>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i16 / zero::<i16>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i32 / zero::<i32>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i64 / zero::<i64>(); }).join().is_err());
assert!(thread::spawn(move|| { min_val::<isize>() % -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i8>() % -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i16>() % -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i32>() % -1; }).join().is_err());
assert!(thread::spawn(move|| { min_val::<i64>() % -1; }).join().is_err());
assert!(thread::spawn(move|| { 1isize % zero::<isize>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i8 % zero::<i8>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i16 % zero::<i16>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i32 % zero::<i32>(); }).join().is_err());
assert!(thread::spawn(move|| { 1i64 % zero::<i64>(); }).join().is_err());
assert!(thread::spawn(move|| { isize::min_value() / -1; }).join().is_err());
assert!(thread::spawn(move|| { i8::min_value() / -1; }).join().is_err());
assert!(thread::spawn(move|| { i16::min_value() / -1; }).join().is_err());
assert!(thread::spawn(move|| { i32::min_value() / -1; }).join().is_err());
assert!(thread::spawn(move|| { i64::min_value() / -1; }).join().is_err());
assert!(thread::spawn(move|| { 1isize / isize::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i8 / i8::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i16 / i16::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i32 / i32::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i64 / i64::zero(); }).join().is_err());
assert!(thread::spawn(move|| { isize::min_value() % -1; }).join().is_err());
assert!(thread::spawn(move|| { i8::min_value() % -1; }).join().is_err());
assert!(thread::spawn(move|| { i16::min_value() % -1; }).join().is_err());
assert!(thread::spawn(move|| { i32::min_value() % -1; }).join().is_err());
assert!(thread::spawn(move|| { i64::min_value() % -1; }).join().is_err());
assert!(thread::spawn(move|| { 1isize % isize::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i8 % i8::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i16 % i16::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i32 % i32::zero(); }).join().is_err());
assert!(thread::spawn(move|| { 1i64 % i64::zero(); }).join().is_err());
}

View File

@ -10,11 +10,7 @@
// pretty-expanded FIXME #23616
#![feature(core)]
use std::marker::MarkerTrait;
trait Serializer : MarkerTrait {
trait Serializer {
}
trait Serializable {

View File

@ -15,11 +15,7 @@
// necessary. Testing the methods of the impls is done within the source
// file for each numeric type.
#![feature(core)]
use std::ops::Add;
use std::num::ToPrimitive;
pub fn main() {
// ints
@ -37,9 +33,4 @@ pub fn main() {
assert_eq!(15_u16.add(6u16), 21_u16);
assert_eq!(15_u32.add(6u32), 21_u32);
assert_eq!(15_u64.add(6u64), 21_u64);
// floats
// num
assert_eq!(10_f32.to_i32().unwrap(), 10);
assert_eq!(10_f64.to_i32().unwrap(), 10);
}

View File

@ -13,7 +13,6 @@
use std::cell::RefCell;
use std::rc::Rc;
use std::num::ToPrimitive;
#[derive(PartialEq, Debug)]
struct Point {
@ -23,9 +22,6 @@ struct Point {
pub fn main() {
let box_5: Box<_> = box 5_usize;
assert_eq!(Rc::new(5_usize).to_uint(), Some(5));
// FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
assert_eq!((Box::new(&Box::new(&Rc::new(Box::new(Box::new(&box_5)))))).to_uint(), Some(5));
let point = Rc::new(Point {x: 2, y: 4});
assert_eq!(point.x, 2);
assert_eq!(point.y, 4);

View File

@ -10,15 +10,13 @@
// pretty-expanded FIXME #23616
#![feature(optin_builtin_traits, core)]
use std::marker::{MarkerTrait, Send};
#![feature(optin_builtin_traits)]
struct TestType;
impl TestType {}
trait TestTrait : MarkerTrait {}
trait TestTrait {}
impl !Send for TestType {}

View File

@ -10,9 +10,7 @@
// pretty-expanded FIXME #23616
#![feature(core)]
trait Foo : ::std::marker::MarkerTrait {
trait Foo {
}
fn b(_x: Box<Foo+Send>) {

View File

@ -12,10 +12,10 @@
#![feature(core)]
trait U : ::std::marker::MarkerTrait {}
trait U {}
trait T<X: U> { fn get(self) -> X; }
trait S2<Y: U> : ::std::marker::MarkerTrait {
trait S2<Y: U> {
fn m(x: Box<T<Y>+'static>) {}
}

View File

@ -10,21 +10,19 @@
// pretty-expanded FIXME #23616
#![feature(core)]
trait I { fn i(&self) -> Self; }
trait A<T:I> : ::std::marker::MarkerTrait {
trait A<T:I> {
fn id(x:T) -> T { x.i() }
}
trait J<T> { fn j(&self) -> T; }
trait B<T:J<T>> : ::std::marker::MarkerTrait {
trait B<T:J<T>> {
fn id(x:T) -> T { x.j() }
}
trait C : ::std::marker::MarkerTrait {
trait C {
fn id<T:J<T>>(x:T) -> T { x.j() }
}

Some files were not shown because too many files have changed in this diff Show More