Don't try to eat non-existent decimal digits.

After seeing a `0`, if it's followed by any of `[0-9]`, `_`, `.`, `e`,
or `E`, we consume all the digits. But in the `.`, `e` and `E` cases
this is pointless because we know there aren't any digits.
This commit is contained in:
Nicholas Nethercote 2023-05-15 16:53:57 +10:00
parent 19967c5890
commit e52794decd

View File

@ -604,10 +604,14 @@ impl Cursor<'_> {
return Int { base, empty_int: true };
}
}
// Not a base prefix.
'0'..='9' | '_' | '.' | 'e' | 'E' => {
// Not a base prefix; consume additional digits.
'0'..='9' | '_' => {
self.eat_decimal_digits();
}
// Also not a base prefix; nothing more to do here.
'.' | 'e' | 'E' => {}
// Just a 0.
_ => return Int { base, empty_int: false },
}