Change missing trailing comma span to point to span where comma is missing from
Signed-off-by: Torstein Grindvik <torstein.grindvik@nordicsemi.no>
This commit is contained in:
1 parent
6512c153dd
commit
a3169ac17b
5 files changed
+29
-2
No files matched your search
@@ -22,6 +22,7 @@ dioxus-rsx = { workspace = true }
|
||||
|
||||
# testing
|
||||
[dev-dependencies]
|
||||
dioxus = { workspace = true }
|
||||
rustversion = "1.0"
|
||||
trybuild = "1.0"
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#[test]
|
||||
fn rsx() {
|
||||
let t = trybuild::TestCases::new();
|
||||
t.compile_fail("tests/rsx/trailing-comma-0.rs");
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Given an `rsx!` invocation with a missing trailing comma,
|
||||
// ensure the stderr output has an informative span.
|
||||
|
||||
use dioxus::prelude::*;
|
||||
|
||||
fn main() {
|
||||
rsx! {
|
||||
p {
|
||||
class: "foo bar"
|
||||
"Hello world"
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
error: missing trailing comma
|
||||
--> tests/rsx/trailing-comma-0.rs:9:20
|
||||
|
|
||||
9 | class: "foo bar"
|
||||
| ^^^^^^^^^
|
||||
@@ -76,11 +76,14 @@ impl Parse for Element {
|
||||
|
||||
if content.peek(Ident) && content.peek2(Token![:]) && !content.peek3(Token![:]) {
|
||||
let name = content.parse::<Ident>()?;
|
||||
let ident = name.clone();
|
||||
|
||||
let name_str = name.to_string();
|
||||
content.parse::<Token![:]>()?;
|
||||
|
||||
// The span of the content to be parsed,
|
||||
// for example the `hi` part of `class: "hi"`.
|
||||
let span = content.span();
|
||||
|
||||
if name_str.starts_with("on") {
|
||||
attributes.push(ElementAttrNamed {
|
||||
el_name: el_name.clone(),
|
||||
@@ -127,7 +130,7 @@ impl Parse for Element {
|
||||
|
||||
// todo: add a message saying you need to include commas between fields
|
||||
if content.parse::<Token![,]>().is_err() {
|
||||
missing_trailing_comma!(ident.span());
|
||||
missing_trailing_comma!(span);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user