From 9853546e8aa6e3c3470b605af1830d7ec316cb1c Mon Sep 17 00:00:00 2001 From: Aidan Hobson Sayers Date: Wed, 5 Apr 2017 18:05:12 +0100 Subject: [PATCH] Permit lifetimes to come before traits --- parse-generics-shim/src/parse_constr.rs | 2 +- parse-generics-shim/tests/parse_generics.rs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/parse-generics-shim/src/parse_constr.rs b/parse-generics-shim/src/parse_constr.rs index 81e975a..47eff13 100644 --- a/parse-generics-shim/src/parse_constr.rs +++ b/parse-generics-shim/src/parse_constr.rs @@ -164,7 +164,7 @@ macro_rules! parse_constr { ) => { parse_constr! { @parse - $prefix, (false, true), + $prefix, (true, true), {$($constr)* $trname}, $($body)* } diff --git a/parse-generics-shim/tests/parse_generics.rs b/parse-generics-shim/tests/parse_generics.rs index 9f495a9..161c850 100644 --- a/parse-generics-shim/tests/parse_generics.rs +++ b/parse-generics-shim/tests/parse_generics.rs @@ -213,6 +213,20 @@ fn test_constr_ty_params() { "# ); + aeqiws!( + pgts!({ .. }, X), + r#" + { + constr : [ T : 'a , U : Copy + 'a , ] , + params : [ T , U , ] , + ltimes : [ ] , + tnames : [ T , U , ] , + .. + } , + X + "# + ); + aeqiws!( pgts!({ .. }, X), r#" @@ -451,6 +465,7 @@ fn test_passthru() { parse_generics_shim! { { .. }, then emit!{l2}, <'a, 'b: 'a, 'c: 'a + 'b> X } parse_generics_shim! { { .. }, then emit!{m}, <'a, T: 'a + Copy> X } parse_generics_shim! { { .. }, then emit!{m2}, <'a, T: 'a + Copy + Clone> X } + parse_generics_shim! { { .. }, then emit!{m3}, <'a, T: Copy + 'a> X } parse_generics_shim! { { .. }, then emit!{n}, X } parse_generics_shim! { { .. }, then emit!{o}, > X }