Skip to content

Commit 1eefab4

Browse files
committed
Fix tests for DynSized
1 parent 2d3e2b5 commit 1eefab4

17 files changed

+66
-146
lines changed

src/test/compile-fail/auxiliary/tdticc_coherence_lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(optin_builtin_traits, core)]
11+
#![feature(dynsized, optin_builtin_traits)]
1212
#![crate_type = "rlib"]
1313

14-
pub trait DefaultedTrait { }
14+
use std::marker::DynSized;
15+
16+
pub trait DefaultedTrait: ?DynSized { }
1517
impl DefaultedTrait for .. { }
1618

1719
pub struct Something<T> { t: T }

src/test/compile-fail/extern-types-not-sync-send.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010

1111
// Make sure extern types are !Sync and !Send.
1212

13-
#![feature(extern_types)]
13+
#![feature(dynsized, extern_types)]
14+
15+
use std::marker::DynSized;
1416

1517
extern {
1618
type A;
1719
}
1820

19-
fn assert_sync<T: ?Sized + Sync>() { }
20-
fn assert_send<T: ?Sized + Send>() { }
21+
fn assert_sync<T: ?DynSized + Sync>() { }
22+
fn assert_send<T: ?DynSized + Send>() { }
2123

2224
fn main() {
2325
assert_sync::<A>();

src/test/compile-fail/extern-types-unsized.rs

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,36 +8,21 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
// Make sure extern types are !Sized.
11+
// Make sure extern types are !Sized and !DynSized.
1212

1313
#![feature(extern_types)]
1414

1515
extern {
1616
type A;
1717
}
1818

19-
struct Foo {
20-
x: u8,
21-
tail: A,
22-
}
23-
24-
struct Bar<T: ?Sized> {
25-
x: u8,
26-
tail: T,
27-
}
28-
2919
fn assert_sized<T>() { }
20+
fn assert_dynsized<T: ?Sized>() { }
3021

3122
fn main() {
3223
assert_sized::<A>();
3324
//~^ ERROR the trait bound `A: std::marker::Sized` is not satisfied
3425

35-
assert_sized::<Foo>();
36-
//~^ ERROR the trait bound `A: std::marker::Sized` is not satisfied
37-
38-
assert_sized::<Bar<A>>();
39-
//~^ ERROR the trait bound `A: std::marker::Sized` is not satisfied
40-
41-
assert_sized::<Bar<Bar<A>>>();
42-
//~^ ERROR the trait bound `A: std::marker::Sized` is not satisfied
26+
assert_dynsized::<A>();
27+
//~^ ERROR the trait bound `A: std::marker::DynSized` is not satisfied
4328
}

src/test/compile-fail/maybe-bounds.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,15 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
trait Tr: ?Sized {} //~ ERROR `?Trait` is not permitted in supertraits
11+
#![feature(dynsized)]
12+
13+
use std::marker::DynSized;
14+
15+
trait Tr: ?Sized {} //~ ERROR `?Sized` is not permitted in supertraits
1216
//~^ NOTE traits are `?Sized` by default
1317

1418
type A1 = Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
15-
type A2 = for<'a> Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
19+
type A2 = Tr + ?DynSized; //~ ERROR `?Trait` is not permitted in trait object types
20+
type A3 = for<'a> Tr + ?Sized; //~ ERROR `?Trait` is not permitted in trait object types
1621

1722
fn main() {}

src/test/compile-fail/phantom-oibit.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
// the `PhantomData<T>` type itself (which almost always implements a "default" trait
1313
// (`impl Trait for ..`))
1414

15-
#![feature(optin_builtin_traits)]
15+
#![feature(dynsized, optin_builtin_traits)]
1616

17-
use std::marker::{PhantomData};
17+
use std::marker::{DynSized, PhantomData};
1818

19-
unsafe trait Zen {}
19+
unsafe trait Zen: ?DynSized {}
2020

2121
unsafe impl Zen for .. {}
2222

src/test/compile-fail/privacy-sanity.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(optin_builtin_traits)]
11+
#![feature(dynsized, optin_builtin_traits)]
1212

13-
trait MarkerTr {}
13+
use std::marker::DynSized;
14+
15+
trait MarkerTr: ?DynSized {}
1416
pub trait Tr {
1517
fn f();
1618
const C: u8;
@@ -38,7 +40,7 @@ pub extern "C" { //~ ERROR unnecessary visibility qualifier
3840
}
3941

4042
const MAIN: u8 = {
41-
trait MarkerTr {}
43+
trait MarkerTr: ?DynSized {}
4244
pub trait Tr {
4345
fn f();
4446
const C: u8;
@@ -69,7 +71,7 @@ const MAIN: u8 = {
6971
};
7072

7173
fn main() {
72-
trait MarkerTr {}
74+
trait MarkerTr: ?DynSized {}
7375
pub trait Tr {
7476
fn f();
7577
const C: u8;

src/test/compile-fail/typeck-default-trait-impl-constituent-types-2.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(optin_builtin_traits)]
11+
#![feature(dynsized, optin_builtin_traits)]
1212

13-
trait MyTrait {}
13+
use std::marker::DynSized;
14+
15+
trait MyTrait: ?DynSized {}
1416

1517
impl MyTrait for .. {}
1618

src/test/compile-fail/typeck-default-trait-impl-constituent-types.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(optin_builtin_traits)]
11+
#![feature(dynsized, optin_builtin_traits)]
1212

13-
trait MyTrait {}
13+
use std::marker::DynSized;
14+
15+
trait MyTrait: ?DynSized {}
1416

1517
impl MyTrait for .. {}
1618
impl<T> !MyTrait for *mut T {}

src/test/compile-fail/typeck-default-trait-impl-negation.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(optin_builtin_traits)]
11+
#![feature(dynsized, optin_builtin_traits)]
1212

13-
trait MyTrait {}
13+
use std::marker::DynSized;
14+
15+
trait MyTrait: ?DynSized {}
1416

1517
impl MyTrait for .. {}
1618

17-
unsafe trait MyUnsafeTrait {}
19+
unsafe trait MyUnsafeTrait: ?DynSized {}
1820

1921
unsafe impl MyUnsafeTrait for .. {}
2022

src/test/compile-fail/typeck-default-trait-impl-precedence.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
// other words, the `..` impl only applies if there are no existing
1414
// impls whose types unify.
1515

16-
#![feature(optin_builtin_traits)]
16+
#![feature(dynsized, optin_builtin_traits)]
1717

18-
trait Defaulted { }
18+
use std::marker::DynSized;
19+
20+
trait Defaulted: ?DynSized { }
1921
impl Defaulted for .. { }
2022
impl<'a,T:Signed> Defaulted for &'a T { }
2123
impl<'a,T:Signed> Defaulted for &'a mut T { }

0 commit comments

Comments
 (0)