mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-27 05:49:08 +00:00
updated error messages
This commit is contained in:
parent
4b4ad47312
commit
5f6d259e5d
3 changed files with 28 additions and 24 deletions
|
@ -3841,8 +3841,7 @@ struct HeaderOutput<'a> {
|
||||||
fn ensure_roc_file<'a>(filename: &PathBuf, src_bytes: &[u8]) -> Result<(), LoadingProblem<'a>> {
|
fn ensure_roc_file<'a>(filename: &PathBuf, src_bytes: &[u8]) -> Result<(), LoadingProblem<'a>> {
|
||||||
match filename.extension() {
|
match filename.extension() {
|
||||||
Some(ext) => {
|
Some(ext) => {
|
||||||
let roc_ext = std::ffi::OsStr::new("roc");
|
if ext != ROC_FILE_EXTENSION {
|
||||||
if roc_ext != ext {
|
|
||||||
return Err(LoadingProblem::FileProblem {
|
return Err(LoadingProblem::FileProblem {
|
||||||
filename: filename.clone(),
|
filename: filename.clone(),
|
||||||
error: io::ErrorKind::Unsupported,
|
error: io::ErrorKind::Unsupported,
|
||||||
|
|
|
@ -1213,10 +1213,10 @@ fn non_roc_file_extension() {
|
||||||
|
|
||||||
let expected = indoc!(
|
let expected = indoc!(
|
||||||
r"
|
r"
|
||||||
── EXPECTED ROC FILE in tmp/non_roc_file_extension/main.md ─────────────────────
|
── NOT A ROC FILE in tmp/non_roc_file_extension/main.md ────────────────────────
|
||||||
|
|
||||||
I am expecting a roc application file with either `.roc` or no
|
I expected a file with extension `.roc` or without extension.
|
||||||
extension. Instead I found a file with extension `.md`"
|
Instead I received a file with extension `.md`."
|
||||||
);
|
);
|
||||||
let color_start = String::from_utf8(vec![27, 91, 51, 54, 109]).unwrap();
|
let color_start = String::from_utf8(vec![27, 91, 51, 54, 109]).unwrap();
|
||||||
let color_end = String::from_utf8(vec![27, 91, 48, 109]).unwrap();
|
let color_end = String::from_utf8(vec![27, 91, 48, 109]).unwrap();
|
||||||
|
@ -1245,13 +1245,15 @@ fn roc_file_no_extension() {
|
||||||
|
|
||||||
let expected = indoc!(
|
let expected = indoc!(
|
||||||
r"
|
r"
|
||||||
── EXPECTED ROC FILE in tmp/roc_file_no_extension/main ─────────────────────────
|
── NOT A ROC FILE in tmp/roc_file_no_extension/main ────────────────────────────
|
||||||
|
|
||||||
I am expecting a roc application file with either `.roc` or no
|
I expected a file with either:
|
||||||
extension and a shebang directive. Instead I found a file without an
|
- extension `.roc`
|
||||||
extension and without a shebang
|
- no extension and a roc shebang as the first line, e.g.
|
||||||
|
`#!/home/username/bin/roc_nightly/roc`
|
||||||
|
|
||||||
Consider starting the file with `#!` and the path to your roc binarya"
|
The provided file did not start with a shebang `#!` containing the
|
||||||
|
string `roc`. Is tmp/roc_file_no_extension/main a Roc file?"
|
||||||
);
|
);
|
||||||
let color_start = String::from_utf8(vec![27, 91, 51, 54, 109]).unwrap();
|
let color_start = String::from_utf8(vec![27, 91, 51, 54, 109]).unwrap();
|
||||||
let color_end = String::from_utf8(vec![27, 91, 48, 109]).unwrap();
|
let color_end = String::from_utf8(vec![27, 91, 48, 109]).unwrap();
|
||||||
|
|
|
@ -1654,22 +1654,25 @@ pub fn to_file_problem_report<'b>(
|
||||||
}
|
}
|
||||||
io::ErrorKind::Unsupported => {
|
io::ErrorKind::Unsupported => {
|
||||||
let doc = match filename.extension() {
|
let doc = match filename.extension() {
|
||||||
Some(ext) => {
|
Some(ext) => alloc.concat(vec![
|
||||||
alloc.concat(vec![
|
alloc.reflow(r"I expected a file with extension `.roc` or without extension."),
|
||||||
alloc.reflow(
|
alloc.hardline(),
|
||||||
r"I am expecting a roc application file with either `.roc` or no extension. Instead I found a file with extension `.",
|
alloc.reflow(r"Instead I received a file with extension `."),
|
||||||
),
|
alloc.as_string(ext.to_string_lossy()),
|
||||||
alloc.as_string(ext.to_string_lossy()),
|
alloc.as_string("`."),
|
||||||
alloc.as_string("`"),
|
]),
|
||||||
])
|
|
||||||
}
|
|
||||||
None => {
|
None => {
|
||||||
alloc.stack(vec![
|
alloc.stack(vec![
|
||||||
alloc.concat(vec![
|
alloc.vcat(vec![
|
||||||
alloc.reflow(r"I am expecting a roc application file with either `.roc` or no extension and a shebang directive. "),
|
alloc.reflow(r"I expected a file with either:"),
|
||||||
alloc.reflow(r"Instead I found a file without an extension and without a shebang"),
|
alloc.reflow("- extension `.roc`"),
|
||||||
|
alloc.reflow("- no extension and a roc shebang as the first line, e.g. `#!/home/username/bin/roc_nightly/roc`"),
|
||||||
]),
|
]),
|
||||||
alloc.reflow(r"Consider starting the file with `#!` and the path to your roc binary"),
|
alloc.concat(vec![
|
||||||
|
alloc.reflow("The provided file did not start with a shebang `#!` containing the string `roc`. Is "),
|
||||||
|
alloc.as_string(filename.to_string_lossy()),
|
||||||
|
alloc.reflow(" a Roc file?"),
|
||||||
|
])
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1677,7 +1680,7 @@ pub fn to_file_problem_report<'b>(
|
||||||
Report {
|
Report {
|
||||||
filename,
|
filename,
|
||||||
doc,
|
doc,
|
||||||
title: "EXPECTED ROC FILE".to_string(),
|
title: "NOT A ROC FILE".to_string(),
|
||||||
severity: Severity::Fatal,
|
severity: Severity::Fatal,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue