1
Fork 0

[WIP] Improve error behavior

This commit is contained in:
Yuki Okushi 2019-01-20 04:37:29 +09:00
parent b721c1a885
commit c502a79fa1

View file

@ -1408,9 +1408,10 @@ impl<'a> StringReader<'a> {
// lifetimes shouldn't end with a single quote
// if we find one, then this is an invalid character literal
if self.ch_is('\'') {
self.fatal_span_verbose(start_with_quote, self.next_pos,
String::from("character literal may only contain one codepoint"))
.raise();
self.err_span_(start_with_quote, self.next_pos,
"character literal may only contain one codepoint");
self.bump();
return Ok(token::Literal(token::Err(Symbol::intern("??")), None))
}
@ -1445,7 +1446,7 @@ impl<'a> StringReader<'a> {
format!("\"{}\"", &self.src[start..end]),
Applicability::MachineApplicable
).emit();
return Ok(token::Literal(token::Char(Symbol::intern("??")), None))
return Ok(token::Literal(token::Err(Symbol::intern("??")), None))
}
if self.ch_is('\n') || self.is_eof() || self.ch_is('/') {
// Only attempt to infer single line string literals. If we encounter
@ -1455,8 +1456,9 @@ impl<'a> StringReader<'a> {
}
}
self.fatal_span_verbose(start_with_quote, pos,
String::from("character literal may only contain one codepoint")).raise();
self.err_span_(start_with_quote, pos,
"character literal may only contain one codepoint");
self.bump();
}
let id = if valid {