From c740927b5ec10acb9c565463b9fdb580f0b1ad22 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Thu, 28 May 2020 02:41:59 +0100 Subject: [PATCH] Fix CI issues caused by updated nightly Rust bug: https://github.com/rust-lang/rust/issues/72545 --- crates/simd-test-macro/src/lib.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/simd-test-macro/src/lib.rs b/crates/simd-test-macro/src/lib.rs index 4d1170cc7e..d4ebb787b9 100644 --- a/crates/simd-test-macro/src/lib.rs +++ b/crates/simd-test-macro/src/lib.rs @@ -8,7 +8,7 @@ extern crate proc_macro2; #[macro_use] extern crate quote; -use proc_macro2::{Ident, Literal, Span, TokenStream, TokenTree}; +use proc_macro2::{Delimiter, Ident, Literal, Span, TokenStream, TokenTree}; use quote::ToTokens; use std::env; @@ -146,8 +146,15 @@ fn find_name(item: TokenStream) -> Ident { } } - match tokens.next() { - Some(TokenTree::Ident(word)) => word, - _ => panic!("failed to find function name"), + fn get_ident(tt: TokenTree) -> Option { + match tt { + TokenTree::Ident(i) => Some(i), + TokenTree::Group(g) if g.delimiter() == Delimiter::None => { + get_ident(g.stream().into_iter().next()?) + } + _ => None, + } } + + tokens.next().and_then(get_ident).expect("failed to find function name") }