It appears that Rust nightly requires the type parameter to have a lifetime constraint, as opposed to beta, where it just prints a warning:
mk@maero /tmp/yup-oauth2 % multirust run nightly cargo test (master)
Compiling yup-oauth2 v0.5.2 (file:///tmp/yup-oauth2)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563 fn token<'b, I, T>(&mut self, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2564 -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2565 where
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2566 T: AsRef<str> +
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2567 Ord,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2568 I: IntoIterator<Item
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563 fn token<'b, I, T>(&mut self, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2564 -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2565 where
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2566 T: AsRef<str> +
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2567 Ord,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2568 I: IntoIterator<Item
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683 fn token<'b, I, T>(&mut self, scopes: I) -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2684 where T: AsRef<str> + Ord, I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2685 let (scope_key, scopes) =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2686 {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2687 let mut sv: Vec<&str> =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2688 scopes.into_iter().map(|s|
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683 fn token<'b, I, T>(&mut self, scopes: I) -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2684 where T: AsRef<str> + Ord, I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2685 let (scope_key, scopes) =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2686 {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2687 let mut sv: Vec<&str> =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2688 scopes.into_iter().map(|s|
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
error: aborting due to 3 previous errors
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563 fn token<'b, I, T>(&mut self, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2564 -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2565 where
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2566 T: AsRef<str> +
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2567 Ord,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2568 I: IntoIterator<Item
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563:9: 2570:16 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2563 fn token<'b, I, T>(&mut self, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2564 -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2565 where
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2566 T: AsRef<str> +
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2567 Ord,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2568 I: IntoIterator<Item
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
Build failed, waiting for other jobs to finish...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 error: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683 fn token<'b, I, T>(&mut self, scopes: I) -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2684 where T: AsRef<str> + Ord, I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2685 let (scope_key, scopes) =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2686 {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2687 let mut sv: Vec<&str> =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2688 scopes.into_iter().map(|s|
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683:9: 2819:10 note: ...so that the reference type `&'b T` does not outlive the data it points at
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2683 fn token<'b, I, T>(&mut self, scopes: I) -> Result<Token, Box<Error>>
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2684 where T: AsRef<str> + Ord, I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2685 let (scope_key, scopes) =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2686 {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2687 let mut sv: Vec<&str> =
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:2688 scopes.into_iter().map(|s|
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
error: aborting due to 3 previous errors
Could not compile `yup-oauth2`.
mk@maero /tmp/yup-oauth2 % multirust run beta cargo test
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 warning: the parameter type `T` may not live long enough [E0309]
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
src/lib.rs:71:1: 71:47 note: in this expansion of include!
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: run `rustc --explain E0309` to see a detailed explanation
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 help: consider adding an explicit lifetime bound `T: 'b`...
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180:9: 549:10 note: this warning results from recent bug fixes and clarifications; it will become a HARD ERROR in the next release. See RFC 1214 for details.
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:180 pub fn request_code<'b, T,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:181 I>(&mut self, client_id: &str,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:182 client_secret: &str, scopes: I)
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:183 -> Result<PollInformation, RequestError> where T: AsRef<str>,
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:184 I: IntoIterator<Item = &'b T> {
/tmp/yup-oauth2/target/debug/build/yup-oauth2-e7d5cdf4504b56ef/out/lib.rs:185 if self.state.is_some() {
...
etc…