mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 16:21:11 +00:00
cover all parsed patterns with an error message
but, some invalid patterns are not parsed as expected. See https://github.com/rtfeldman/roc/issues/399
This commit is contained in:
parent
0c7a4179aa
commit
b7d689226c
4 changed files with 53 additions and 24 deletions
|
@ -343,20 +343,33 @@ fn pretty_runtime_error<'b>(
|
|||
use roc_problem::can::MalformedPatternProblem::*;
|
||||
|
||||
let name = match problem {
|
||||
MalformedInt => "integer",
|
||||
MalformedFloat => "float",
|
||||
MalformedBase(Base::Hex) => "hex integer",
|
||||
MalformedBase(Base::Binary) => "binary integer",
|
||||
MalformedBase(Base::Octal) => "octal integer",
|
||||
MalformedInt => " integer ",
|
||||
MalformedFloat => " float ",
|
||||
MalformedBase(Base::Hex) => " hex integer ",
|
||||
MalformedBase(Base::Binary) => " binary integer ",
|
||||
MalformedBase(Base::Octal) => " octal integer ",
|
||||
Unknown => " ",
|
||||
QualifiedIdentifier => " qualified ",
|
||||
};
|
||||
|
||||
let hint = match problem {
|
||||
MalformedInt | MalformedFloat | MalformedBase(_) => alloc
|
||||
.hint()
|
||||
.append(alloc.reflow("Learn more about number literals at TODO")),
|
||||
Unknown => alloc.nil(),
|
||||
QualifiedIdentifier => alloc.hint().append(
|
||||
alloc.reflow("In patterns, only private and global tags can be qualified"),
|
||||
),
|
||||
};
|
||||
|
||||
alloc.stack(vec![
|
||||
alloc.concat(vec![
|
||||
alloc.reflow("This "),
|
||||
alloc.reflow("This"),
|
||||
alloc.text(name),
|
||||
alloc.reflow(" pattern is malformed:"),
|
||||
alloc.reflow("pattern is malformed:"),
|
||||
]),
|
||||
alloc.region(region),
|
||||
hint,
|
||||
])
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue