From 34f33ec789297716995045f7067aeb4d77947d89 Mon Sep 17 00:00:00 2001 From: est31 Date: Sun, 13 Nov 2016 17:55:17 +0100 Subject: [PATCH] Fix empty lifetime list or one with trailing comma being rejected Fixes #37733 --- src/libsyntax/parse/parser.rs | 6 +++--- src/test/run-pass/issue-37733.rs | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/test/run-pass/issue-37733.rs diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index b80aa667be6a1..064c93c2866e9 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1943,12 +1943,12 @@ impl<'a> Parser<'a> { if let Some(recv) = followed_by_ty_params { assert!(recv.is_empty()); *recv = attrs; - } else { + debug!("parse_lifetime_defs ret {:?}", res); + return Ok(res); + } else if !attrs.is_empty() { let msg = "trailing attribute after lifetime parameters"; return Err(self.fatal(msg)); } - debug!("parse_lifetime_defs ret {:?}", res); - return Ok(res); } } diff --git a/src/test/run-pass/issue-37733.rs b/src/test/run-pass/issue-37733.rs new file mode 100644 index 0000000000000..358b93254de90 --- /dev/null +++ b/src/test/run-pass/issue-37733.rs @@ -0,0 +1,15 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +type A = for<> fn(); + +type B = for<'a,> fn(); + +pub fn main() {}