about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_parse/src/lexer/mod.rs20
1 files changed, 11 insertions, 9 deletions
diff --git a/compiler/rustc_parse/src/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs
index f3b11e9b604..e9701ec2d7f 100644
--- a/compiler/rustc_parse/src/lexer/mod.rs
+++ b/compiler/rustc_parse/src/lexer/mod.rs
@@ -335,15 +335,17 @@ impl<'a> StringReader<'a> {
         comment_kind: CommentKind,
         doc_style: DocStyle,
     ) -> TokenKind {
-        for (idx, _) in content.match_indices('\r') {
-            self.err_span_(
-                content_start + BytePos(idx as u32),
-                content_start + BytePos(idx as u32 + 1),
-                match comment_kind {
-                    CommentKind::Line => "bare CR not allowed in doc-comment",
-                    CommentKind::Block => "bare CR not allowed in block doc-comment",
-                },
-            );
+        if content.contains('\r') {
+            for (idx, _) in content.char_indices().filter(|&(_, c)| c == '\r') {
+                self.err_span_(
+                    content_start + BytePos(idx as u32),
+                    content_start + BytePos(idx as u32 + 1),
+                    match comment_kind {
+                        CommentKind::Line => "bare CR not allowed in doc-comment",
+                        CommentKind::Block => "bare CR not allowed in block doc-comment",
+                    },
+                );
+            }
         }
 
         let attr_style = match doc_style {