1
Fork 0

libsyntax: Allow + to separate trait bounds from objects.

RFC #27.

After a snapshot, the old syntax will be removed.

This can break some code that looked like `foo as &Trait:Send`. Now you
will need to write `foo as (&Trait+Send)`.

Closes #12778.

[breaking-change]
This commit is contained in:
Patrick Walton 2014-06-11 12:14:38 -07:00 committed by Alex Crichton
parent 03ec8e5cc9
commit 9b9ef44233
24 changed files with 176 additions and 101 deletions

View file

@ -60,7 +60,7 @@ impl<T: Clean<U>, U> Clean<VecPerParamSpace<U>> for VecPerParamSpace<T> {
}
}
impl<T: Clean<U>, U> Clean<U> for Gc<T> {
impl<T: 'static + Clean<U>, U> Clean<U> for Gc<T> {
fn clean(&self) -> U {
(**self).clean()
}
@ -1198,6 +1198,7 @@ impl Clean<Type> for ast::Ty {
TyClosure(ref c, region) => Closure(box c.clean(), region.clean()),
TyProc(ref c) => Proc(box c.clean()),
TyBareFn(ref barefn) => BareFunction(box barefn.clean()),
TyParen(ref ty) => ty.clean(),
TyBot => Bottom,
ref x => fail!("Unimplemented type {:?}", x),
}