diff options
| author | bors <bors@rust-lang.org> | 2021-11-06 16:25:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-11-06 16:25:00 +0000 |
| commit | 5ec7d1dad6dead949a49c76c8ca0425a6e46a223 (patch) | |
| tree | 7803255a0dab41cad43dd8908ecd0d37c54c5930 /compiler/rustc_parse/src | |
| parent | 3326f19e8982ce033e04c163ddc520a76e42c737 (diff) | |
| parent | 39110beab03ed74d1cb97df77721c0ad2fcb165b (diff) | |
| download | rust-5ec7d1dad6dead949a49c76c8ca0425a6e46a223.tar.gz rust-5ec7d1dad6dead949a49c76c8ca0425a6e46a223.zip | |
Auto merge of #90559 - rusticstuff:optimize-bidi-detection, r=davidtwco
Optimize bidi character detection. Should fix most of the performance regression of the bidi character detection (#90514), to be confirmed with a perf run.
Diffstat (limited to 'compiler/rustc_parse/src')
| -rw-r--r-- | compiler/rustc_parse/src/lexer/mod.rs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/compiler/rustc_parse/src/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs index 09a3d1b9028..cf35c3cd53b 100644 --- a/compiler/rustc_parse/src/lexer/mod.rs +++ b/compiler/rustc_parse/src/lexer/mod.rs @@ -1,6 +1,7 @@ use rustc_ast::ast::{self, AttrStyle}; use rustc_ast::token::{self, CommentKind, Token, TokenKind}; use rustc_ast::tokenstream::{Spacing, TokenStream}; +use rustc_ast::util::unicode::contains_text_flow_control_chars; use rustc_errors::{error_code, Applicability, DiagnosticBuilder, FatalError, PResult}; use rustc_lexer::unescape::{self, Mode}; use rustc_lexer::{Base, DocStyle, RawStrError}; @@ -137,12 +138,8 @@ impl<'a> StringReader<'a> { // Opening delimiter of the length 2 is not included into the comment text. let content_start = start + BytePos(2); let content = self.str_from(content_start); - let span = self.mk_sp(start, self.pos); - const UNICODE_TEXT_FLOW_CHARS: &[char] = &[ - '\u{202A}', '\u{202B}', '\u{202D}', '\u{202E}', '\u{2066}', '\u{2067}', '\u{2068}', - '\u{202C}', '\u{2069}', - ]; - if content.contains(UNICODE_TEXT_FLOW_CHARS) { + if contains_text_flow_control_chars(content) { + let span = self.mk_sp(start, self.pos); self.sess.buffer_lint_with_diagnostic( &TEXT_DIRECTION_CODEPOINT_IN_COMMENT, span, |
