diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-08-27 21:46:52 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-08-27 21:46:52 -0400 |
| commit | 1b487a890695e7d6dfbfe5dcd7d4fa0e8ca8003f (patch) | |
| tree | 552fabade603ab0d148a49ae3cf1abd3f399740a /src/libgraphviz | |
| parent | 3ee047ae1ffab454270bc1859b3beef3556ef8f9 (diff) | |
| download | rust-1b487a890695e7d6dfbfe5dcd7d4fa0e8ca8003f.tar.gz rust-1b487a890695e7d6dfbfe5dcd7d4fa0e8ca8003f.zip | |
Implement generalized object and type parameter bounds (Fixes #16462)
Diffstat (limited to 'src/libgraphviz')
| -rw-r--r-- | src/libgraphviz/lib.rs | 3 | ||||
| -rw-r--r-- | src/libgraphviz/maybe_owned_vec.rs | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/libgraphviz/lib.rs b/src/libgraphviz/lib.rs index 7cac0d25abf..10cc7e8afe9 100644 --- a/src/libgraphviz/lib.rs +++ b/src/libgraphviz/lib.rs @@ -271,6 +271,7 @@ pub fn main() { #![crate_type = "rlib"] #![crate_type = "dylib"] #![license = "MIT/ASL2"] +#![feature(issue_5723_bootstrap)] #![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png", html_favicon_url = "http://www.rust-lang.org/favicon.ico", html_root_url = "http://doc.rust-lang.org/master/")] @@ -499,7 +500,7 @@ pub trait GraphWalk<'a, N, E> { /// Renders directed graph `g` into the writer `w` in DOT syntax. /// (Main entry point for the library.) -pub fn render<'a, N, E, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Writer>( +pub fn render<'a, N:'a, E:'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Writer>( g: &'a G, w: &mut W) -> io::IoResult<()> { diff --git a/src/libgraphviz/maybe_owned_vec.rs b/src/libgraphviz/maybe_owned_vec.rs index 987f214b153..17c75b76bc1 100644 --- a/src/libgraphviz/maybe_owned_vec.rs +++ b/src/libgraphviz/maybe_owned_vec.rs @@ -34,6 +34,14 @@ use std::slice; /// Some clients will have a pre-allocated vector ready to hand off in /// a slice; others will want to create the set on the fly and hand /// off ownership, via `Growable`. +#[cfg(not(stage0))] +pub enum MaybeOwnedVector<'a,T:'a> { + Growable(Vec<T>), + Borrowed(&'a [T]), +} + +/// Stage0 only. +#[cfg(stage0)] pub enum MaybeOwnedVector<'a,T> { Growable(Vec<T>), Borrowed(&'a [T]), @@ -45,7 +53,7 @@ pub trait IntoMaybeOwnedVector<'a,T> { fn into_maybe_owned(self) -> MaybeOwnedVector<'a,T>; } -impl<'a,T> IntoMaybeOwnedVector<'a,T> for Vec<T> { +impl<'a,T:'a> IntoMaybeOwnedVector<'a,T> for Vec<T> { #[inline] fn into_maybe_owned(self) -> MaybeOwnedVector<'a,T> { Growable(self) } } |
