]> git.lizzy.rs Git - rust.git/commitdiff
Create new error code E0758 for unterminated multi-line comments
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Tue, 2 Jun 2020 12:13:03 +0000 (14:13 +0200)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Sun, 7 Jun 2020 12:57:53 +0000 (14:57 +0200)
src/librustc_error_codes/error_codes.rs
src/librustc_error_codes/error_codes/E0758.md [new file with mode: 0644]
src/librustc_parse/lexer/mod.rs

index 7abe75a375a0bf819c85ce589ac1e3821664793d..760b4d7ba00a33c1f44fc5f8d7f646feae230b86 100644 (file)
 E0752: include_str!("./error_codes/E0752.md"),
 E0753: include_str!("./error_codes/E0753.md"),
 E0754: include_str!("./error_codes/E0754.md"),
+E0758: include_str!("./error_codes/E0758.md"),
 E0760: include_str!("./error_codes/E0760.md"),
 ;
 //  E0006, // merged with E0005
diff --git a/src/librustc_error_codes/error_codes/E0758.md b/src/librustc_error_codes/error_codes/E0758.md
new file mode 100644 (file)
index 0000000..ddca4b3
--- /dev/null
@@ -0,0 +1,20 @@
+A multi-line (doc-)comment is unterminated.
+
+Erroneous code example:
+
+```compile_fail,E0758
+/* I am not terminated!
+```
+
+The same goes for doc comments:
+
+```compile_fail,E0758
+/*! I am not terminated!
+```
+
+You need to end your multi-line comment with `*/` in order to fix this error:
+
+```
+/* I am terminated! */
+/*! I am also terminated! */
+```
index 7e59f06e44ae3ecd43fb3530238210233add403a..9bc6a50acad048ab375ac890c2557ddcb82ede1d 100644 (file)
@@ -191,7 +191,15 @@ fn cook_lexer_token(&self, token: rustc_lexer::TokenKind, start: BytePos) -> Tok
                         "unterminated block comment"
                     };
                     let last_bpos = self.pos;
-                    self.fatal_span_(start, last_bpos, msg).raise();
+                    self.sess
+                        .span_diagnostic
+                        .struct_span_fatal_with_code(
+                            self.mk_sp(start, last_bpos),
+                            msg,
+                            error_code!(E0758),
+                        )
+                        .emit();
+                    FatalError.raise();
                 }
 
                 if is_doc_comment {