Skip to content

Commit 99d02fb

Browse files
committed
Optimize check_keyword_case.
`to_lowercase` allocates, but `eq_ignore_ascii_case` doesn't. This path is hot enough that this makes a small but noticeable difference in benchmarking.
1 parent f7273e0 commit 99d02fb

File tree

1 file changed

+2
-1
lines changed
  • compiler/rustc_parse/src/parser

1 file changed

+2
-1
lines changed

Diff for: compiler/rustc_parse/src/parser/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -641,9 +641,10 @@ impl<'a> Parser<'a> {
641641
return true;
642642
}
643643

644+
// Do an ASCII case-insensitive match, because all keywords are ASCII.
644645
if case == Case::Insensitive
645646
&& let Some((ident, IdentIsRaw::No)) = self.token.ident()
646-
&& ident.as_str().to_lowercase() == kw.as_str().to_lowercase()
647+
&& ident.as_str().eq_ignore_ascii_case(kw.as_str())
647648
{
648649
true
649650
} else {

0 commit comments

Comments
 (0)