diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2014-07-08 14:26:02 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2014-07-08 22:44:31 +1200 |
| commit | a0cfda53c4b7367f6494e3d746b35cea644ee50d (patch) | |
| tree | a9a65cb86769ae39e01562cda9eda0dfdb860245 /src/test/run-pass | |
| parent | 6959931498820b2b784168164b53a79dceafc4da (diff) | |
| download | rust-a0cfda53c4b7367f6494e3d746b35cea644ee50d.tar.gz rust-a0cfda53c4b7367f6494e3d746b35cea644ee50d.zip | |
Change DST syntax: type -> Sized?
closes #13367
[breaking-change] Use `Sized?` to indicate a dynamically sized type parameter or trait (used to be `type`). E.g.,
```
trait Tr for Sized? {}
fn foo<Sized? X: Share>(x: X) {}
```
Diffstat (limited to 'src/test/run-pass')
| -rw-r--r-- | src/test/run-pass/unsized.rs | 26 | ||||
| -rw-r--r-- | src/test/run-pass/unsized2.rs | 24 |
2 files changed, 25 insertions, 25 deletions
diff --git a/src/test/run-pass/unsized.rs b/src/test/run-pass/unsized.rs index db0cc83d786..f49e8f46e78 100644 --- a/src/test/run-pass/unsized.rs +++ b/src/test/run-pass/unsized.rs @@ -8,20 +8,20 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// Test syntax checks for `type` keyword. +// Test syntax checks for `Sized?` syntax. -trait T1 for type {} -pub trait T2 for type {} -trait T3<X: T1> for type: T2 {} -trait T4<type X> {} -trait T5<type X, Y> {} -trait T6<Y, type X> {} -trait T7<type X, type Y> {} -trait T8<type X: T2> {} -struct S1<type X>; -enum E<type X> {} -impl <type X> T1 for S1<X> {} -fn f<type X>() {} +trait T1 for Sized? {} +pub trait T2 for Sized? {} +trait T3<X: T1> for Sized?: T2 {} +trait T4<Sized? X> {} +trait T5<Sized? X, Y> {} +trait T6<Y, Sized? X> {} +trait T7<Sized? X, Sized? Y> {} +trait T8<Sized? X: T2> {} +struct S1<Sized? X>; +enum E<Sized? X> {} +impl <Sized? X> T1 for S1<X> {} +fn f<Sized? X>() {} pub fn main() { } diff --git a/src/test/run-pass/unsized2.rs b/src/test/run-pass/unsized2.rs index 53db7f37e8d..9703b55cda7 100644 --- a/src/test/run-pass/unsized2.rs +++ b/src/test/run-pass/unsized2.rs @@ -13,7 +13,7 @@ // Test sized-ness checking in substitution. // Unbounded. -fn f1<type X>(x: &X) { +fn f1<Sized? X>(x: &X) { f1::<X>(x); } fn f2<X>(x: &X) { @@ -22,8 +22,8 @@ fn f2<X>(x: &X) { } // Bounded. -trait T for type {} -fn f3<type X: T>(x: &X) { +trait T for Sized? {} +fn f3<Sized? X: T>(x: &X) { f3::<X>(x); } fn f4<X: T>(x: &X) { @@ -32,7 +32,7 @@ fn f4<X: T>(x: &X) { } // Self type. -trait T2 for type { +trait T2 for Sized? { fn f() -> Box<Self>; } struct S; @@ -41,14 +41,14 @@ impl T2 for S { box S } } -fn f5<type X: T2>(x: &X) { +fn f5<Sized? X: T2>(x: &X) { let _: Box<X> = T2::f(); } fn f6<X: T2>(x: &X) { let _: Box<X> = T2::f(); } -trait T3 for type { +trait T3 for Sized? { fn f() -> Box<Self>; } impl T3 for S { @@ -56,7 +56,7 @@ impl T3 for S { box S } } -fn f7<type X: T3>(x: &X) { +fn f7<Sized? X: T3>(x: &X) { // This is valid, but the unsized bound on X is irrelevant because any type // which implements T3 must have statically known size. let _: Box<X> = T3::f(); @@ -66,7 +66,7 @@ trait T4<X> { fn m1(x: &T4<X>); fn m2(x: &T5<X>); } -trait T5<type X> { +trait T5<Sized? X> { // not an error (for now) fn m1(x: &T4<X>); fn m2(x: &T5<X>); @@ -76,21 +76,21 @@ trait T6<X: T> { fn m1(x: &T4<X>); fn m2(x: &T5<X>); } -trait T7<type X: T> { +trait T7<Sized? X: T> { // not an error (for now) fn m1(x: &T4<X>); fn m2(x: &T5<X>); } // The last field in a struct or variant may be unsized -struct S2<type X> { +struct S2<Sized? X> { f: X, } -struct S3<type X> { +struct S3<Sized? X> { f1: int, f2: X, } -enum E<type X> { +enum E<Sized? X> { V1(X), V2{x: X}, V3(int, X), |
