From a5227dab205915d45bc1f1b90ea7a3fe996346a4 Mon Sep 17 00:00:00 2001 From: CreepySkeleton <50968528+CreepySkeleton@users.noreply.github.com> Date: Fri, 24 May 2019 07:44:28 +0300 Subject: [PATCH] Simplify is_ident function (#104) It's a way over-complicated --- src/runtime.rs | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/runtime.rs b/src/runtime.rs index 715a877..75337c9 100644 --- a/src/runtime.rs +++ b/src/runtime.rs @@ -10,21 +10,10 @@ fn is_ident_continue(c: u8) -> bool { } fn is_ident(token: &str) -> bool { - if token.bytes().all(|digit| digit >= b'0' && digit <= b'9') { - return false; - } - - let mut bytes = token.bytes(); - let first = bytes.next().unwrap(); - if !is_ident_start(first) { - return false; - } - for ch in bytes { - if !is_ident_continue(ch) { - return false; - } - } - true + let mut iter = token.bytes(); + let first_ok = iter.next().map(is_ident_start).unwrap_or(false); + + first_ok && iter.all(is_ident_continue) } pub fn parse(tokens: &mut TokenStream, span: Span, s: &str) {