mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-26 13:29:12 +00:00
Fix reporting tests
This commit is contained in:
parent
d2900630f2
commit
ed0c64ca7c
3 changed files with 65 additions and 41 deletions
|
@ -1238,9 +1238,8 @@ fn to_bad_ident_expr_report<'b>(
|
||||||
lines.convert_region(surroundings),
|
lines.convert_region(surroundings),
|
||||||
lines.convert_region(region),
|
lines.convert_region(region),
|
||||||
),
|
),
|
||||||
alloc.concat([alloc.reflow(
|
alloc.concat([alloc
|
||||||
r"I recommend using camelCase, it is the standard in the Roc ecosystem.",
|
.reflow(r"I recommend using camelCase. It's the standard style in Roc code!")]),
|
||||||
)]),
|
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -549,8 +549,8 @@ impl<'a> RocDocAllocator<'a> {
|
||||||
let this_line_number_length = line_number.len();
|
let this_line_number_length = line_number.len();
|
||||||
|
|
||||||
let line = self.src_lines[i as usize];
|
let line = self.src_lines[i as usize];
|
||||||
|
let is_line_empty = line.trim().is_empty();
|
||||||
let rest_of_line = if !line.trim().is_empty() {
|
let rest_of_line = if !is_line_empty {
|
||||||
self.text(line).indent(indent)
|
self.text(line).indent(indent)
|
||||||
} else {
|
} else {
|
||||||
self.nil()
|
self.nil()
|
||||||
|
@ -572,11 +572,17 @@ impl<'a> RocDocAllocator<'a> {
|
||||||
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
||||||
.append(rest_of_line)
|
.append(rest_of_line)
|
||||||
} else {
|
} else {
|
||||||
self.text(" ".repeat(max_line_number_length - this_line_number_length))
|
let up_to_gutter = self
|
||||||
|
.text(" ".repeat(max_line_number_length - this_line_number_length))
|
||||||
.append(self.text(line_number).annotate(Annotation::LineNumber))
|
.append(self.text(line_number).annotate(Annotation::LineNumber))
|
||||||
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar));
|
||||||
.append(self.text(" "))
|
|
||||||
.append(rest_of_line)
|
if is_line_empty {
|
||||||
|
// Don't put an trailing space after the gutter
|
||||||
|
up_to_gutter
|
||||||
|
} else {
|
||||||
|
up_to_gutter.append(self.text(" ")).append(rest_of_line)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
result = result.append(source_line);
|
result = result.append(source_line);
|
||||||
|
@ -667,8 +673,8 @@ impl<'a> RocDocAllocator<'a> {
|
||||||
let this_line_number_length = line_number.len();
|
let this_line_number_length = line_number.len();
|
||||||
|
|
||||||
let line: &str = self.src_lines.get(i as usize).unwrap_or(&"");
|
let line: &str = self.src_lines.get(i as usize).unwrap_or(&"");
|
||||||
|
let is_line_empty = line.trim().is_empty();
|
||||||
let rest_of_line = if !line.trim().is_empty() {
|
let rest_of_line = if !is_line_empty {
|
||||||
self.text(line)
|
self.text(line)
|
||||||
.annotate(Annotation::CodeBlock)
|
.annotate(Annotation::CodeBlock)
|
||||||
.indent(indent)
|
.indent(indent)
|
||||||
|
@ -691,11 +697,17 @@ impl<'a> RocDocAllocator<'a> {
|
||||||
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
||||||
.append(rest_of_line)
|
.append(rest_of_line)
|
||||||
} else {
|
} else {
|
||||||
self.text(" ".repeat(max_line_number_length - this_line_number_length))
|
let up_to_gutter = self
|
||||||
|
.text(" ".repeat(max_line_number_length - this_line_number_length))
|
||||||
.append(self.text(line_number).annotate(Annotation::LineNumber))
|
.append(self.text(line_number).annotate(Annotation::LineNumber))
|
||||||
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar))
|
.append(self.text(GUTTER_BAR).annotate(Annotation::GutterBar));
|
||||||
.append(self.text(" "))
|
|
||||||
.append(rest_of_line)
|
if is_line_empty {
|
||||||
|
// Don't put an trailing space after the gutter
|
||||||
|
up_to_gutter
|
||||||
|
} else {
|
||||||
|
up_to_gutter.append(self.text(" ")).append(rest_of_line)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
result = result.append(source_line);
|
result = result.append(source_line);
|
||||||
|
|
|
@ -4393,16 +4393,20 @@ mod test_reporting {
|
||||||
test_report!(
|
test_report!(
|
||||||
comment_with_tab,
|
comment_with_tab,
|
||||||
"# comment with a \t\n4",
|
"# comment with a \t\n4",
|
||||||
@r###"
|
|golden| pretty_assertions::assert_eq!(
|
||||||
── TAB CHARACTER ─────────────────────────────── tmp/comment_with_tab/Test.roc ─
|
golden,
|
||||||
|
&format!(
|
||||||
|
r###"── TAB CHARACTER ─────────────────────────────── tmp/comment_with_tab/Test.roc ─
|
||||||
|
|
||||||
I encountered a tab character
|
I encountered a tab character
|
||||||
|
|
||||||
4│ # comment with a
|
4│ # comment with a {}
|
||||||
^
|
^
|
||||||
|
|
||||||
Tab characters are not allowed.
|
Tab characters are not allowed."###,
|
||||||
"###
|
"\t"
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO bad error message
|
// TODO bad error message
|
||||||
|
@ -5680,23 +5684,27 @@ All branches in an `if` must have the same type!
|
||||||
main = 5 -> 3
|
main = 5 -> 3
|
||||||
"#
|
"#
|
||||||
),
|
),
|
||||||
@r###"
|
|golden| pretty_assertions::assert_eq!(
|
||||||
── UNKNOWN OPERATOR ───────────────────────────── tmp/wild_case_arrow/Test.roc ─
|
golden,
|
||||||
|
&format!(
|
||||||
|
r###"── UNKNOWN OPERATOR ───────────────────────────── tmp/wild_case_arrow/Test.roc ─
|
||||||
|
|
||||||
This looks like an operator, but it's not one I recognize!
|
This looks like an operator, but it's not one I recognize!
|
||||||
|
|
||||||
1│ app "test" provides [main] to "./platform"
|
1│ app "test" provides [main] to "./platform"
|
||||||
2│
|
2│
|
||||||
3│ main =
|
3│ main =
|
||||||
4│ main = 5 -> 3
|
4│ main = 5 -> 3
|
||||||
^^
|
^^
|
||||||
|
|
||||||
Looks like you are trying to define a function.
|
Looks like you are trying to define a function.{}
|
||||||
|
|
||||||
In roc, functions are always written as a lambda, like
|
In roc, functions are always written as a lambda, like{}
|
||||||
|
|
||||||
increment = \n -> n + 1
|
increment = \n -> n + 1"###,
|
||||||
"###
|
' ', ' '
|
||||||
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -9965,16 +9973,21 @@ All branches in an `if` must have the same type!
|
||||||
f 1 _ 1
|
f 1 _ 1
|
||||||
"#
|
"#
|
||||||
),
|
),
|
||||||
@r###"
|
|golden| pretty_assertions::assert_eq!(
|
||||||
── SYNTAX PROBLEM ──────────────────────────────────────── /code/proj/Main.roc ─
|
golden,
|
||||||
|
&format!(
|
||||||
|
r###"── SYNTAX PROBLEM ──────────────────────────────────────── /code/proj/Main.roc ─
|
||||||
|
|
||||||
Underscores are not allowed in identifier names:
|
Underscores are not allowed in identifier names:
|
||||||
|
|
||||||
6│ f 1 _ 1
|
6│ f 1 _ 1
|
||||||
|
{}
|
||||||
|
|
||||||
|
I recommend using camelCase. It's the standard style in Roc code!
|
||||||
I recommend using camelCase, it is the standard in the Roc ecosystem.
|
"###,
|
||||||
"###
|
" " // TODO make the reporter not insert extraneous spaces here in the first place!
|
||||||
|
),
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
test_report!(
|
test_report!(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue