Skip to content

Commit a698320

Browse files
committed
Auto merge of #632 - camelid:better-parse-errors, r=jackh726
Format parse errors better Previously the parser printed parse errors with Debug formatting, even though Display formatting is implemented and looks much better. Before: ?- load libstd.chalk ?- forall<T: Clone> { Vec<T>: Clone } error: parse error: UnrecognizedToken { token: (8, Token(17, ":"), 9), expected: ["\",\"", "\">\""] } position: `forall<T: Clone> { Vec<T>: Clone }` ^ After: ?- load libstd.chalk ?- forall<T: Clone> { Vec<T>: Clone } error: parse error: Unrecognized token `:` found at 8:9 Expected one of "," or ">" position: `forall<T: Clone> { Vec<T>: Clone }` ^
2 parents 420e937 + 613e664 commit a698320

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

chalk-parse/src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
1616
pub fn parse_program(text: &str) -> Result<ast::Program> {
1717
match parser::ProgramParser::new().parse(text) {
1818
Ok(v) => Ok(v),
19-
Err(e) => Err(format!("parse error: {:?}", e))?,
19+
Err(e) => Err(format!("parse error: {}", e))?,
2020
}
2121
}
2222

2323
pub fn parse_ty(text: &str) -> Result<ast::Ty> {
2424
match parser::TyParser::new().parse(text) {
2525
Ok(v) => Ok(v),
26-
Err(e) => Err(format!("error parsing `{}`: {:?}", text, e))?,
26+
Err(e) => Err(format!("error parsing `{}`: {}", text, e))?,
2727
}
2828
}
2929

@@ -42,27 +42,27 @@ pub fn parse_goal(text: &str) -> Result<Box<ast::Goal>> {
4242
};
4343
match e {
4444
ParseError::InvalidToken { location } => Err(format!(
45-
"parse error: {:?}\n{}",
45+
"parse error: {}\n{}",
4646
e,
4747
position_string(location, location + 1)
4848
))?,
4949
ParseError::UnrecognizedToken {
5050
token: (start, _, end),
5151
..
5252
} => Err(format!(
53-
"parse error: {:?}\n{}",
53+
"parse error: {}\n{}",
5454
e,
5555
position_string(start, end)
5656
))?,
5757
ParseError::ExtraToken {
5858
token: (start, _, end),
5959
..
6060
} => Err(format!(
61-
"parse error: {:?}\n{}",
61+
"parse error: {}\n{}",
6262
e,
6363
position_string(start, end)
6464
))?,
65-
_ => Err(format!("parse error: {:?}", e))?,
65+
_ => Err(format!("parse error: {}", e))?,
6666
}
6767
}
6868
}

tests/lowering/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ fn scalars() {
503503
}
504504

505505
error_msg {
506-
"parse error: UnrecognizedToken"
506+
"parse error: Unrecognizedtoken"
507507
}
508508
}
509509
}
@@ -527,7 +527,7 @@ fn raw_pointers() {
527527
struct *const i32 { }
528528
}
529529
error_msg {
530-
"parse error: UnrecognizedToken"
530+
"parse error: Unrecognizedtoken"
531531
}
532532
}
533533

@@ -537,7 +537,7 @@ fn raw_pointers() {
537537
impl Foo for *i32 { }
538538
}
539539
error_msg {
540-
"parse error: UnrecognizedToken"
540+
"parse error: Unrecognizedtoken"
541541
}
542542
}
543543
}
@@ -561,7 +561,7 @@ fn refs() {
561561
}
562562

563563
error_msg {
564-
"parse error: UnrecognizedToken"
564+
"parse error: Unrecognizedtoken"
565565
}
566566
}
567567
}
@@ -587,7 +587,7 @@ fn slices() {
587587
}
588588

589589
error_msg {
590-
"parse error: UnrecognizedToken"
590+
"parse error: Unrecognizedtoken"
591591
}
592592
}
593593
}
@@ -635,7 +635,7 @@ fn arrays() {
635635
}
636636

637637
error_msg {
638-
"parse error: UnrecognizedToken"
638+
"parse error: Unrecognizedtoken"
639639
}
640640
}
641641

@@ -659,7 +659,7 @@ fn arrays() {
659659
}
660660

661661
error_msg {
662-
"parse error: UnrecognizedToken"
662+
"parse error: Unrecognizedtoken"
663663
}
664664
}
665665
}

0 commit comments

Comments
 (0)