Work around Rust 1.12.0 bug
diff --git a/src/nom.rs b/src/nom.rs
index ddc59c2..8df705c 100644
--- a/src/nom.rs
+++ b/src/nom.rs
@@ -224,12 +224,22 @@
};
}
+pub fn str_chars(s: &str) -> Vec<char> {
+ // Can't do `s.chars().collect()` because it triggers a compiler bug in 1.12.0
+ // https://github.com/dtolnay/syn/issues/20
+ let mut result = Vec::new();
+ for ch in s.chars() {
+ result.push(ch);
+ }
+ result
+}
+
macro_rules! take_until {
($input:expr, $substr:expr) => {{
if $substr.len() > $input.len() {
$crate::nom::IResult::Error
} else {
- let substr_vec: Vec<char> = $substr.chars().collect();
+ let substr_vec: Vec<char> = $crate::nom::str_chars($substr);
let mut window: Vec<char> = vec![];
let mut offset = $input.len();
let mut parsed = false;