Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
cburgdorf committed May 2, 2022
1 parent 1ccbdc9 commit 1073f85
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 60 deletions.
2 changes: 0 additions & 2 deletions crates/parser/src/grammar/functions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,6 @@ pub fn parse_generic_params(par: &mut Parser) -> ParseResult<Node<Vec<GenericPar
}
};



loop {
match par.peek_or_err()? {
Gt => {
Expand Down
2 changes: 1 addition & 1 deletion crates/parser/tests/cases/parse_ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ test_parse! { type_unit, types::parse_type_desc, "()" }

test_parse! { fn_def, try_parse_module, "fn transfer(from sender: address, to recip: address, _ val: u64) -> bool:\n false"}

test_parse! { fn_def_generic, try_parse_module, "fn transfer<T, R: Event>(from sender: address, to recip: address, _ val: u64) -> bool:\n false"}
test_parse! { fn_def_generic, try_parse_module, "fn foo<T, R: Event>(this: T, that: R, _ val: u64) -> bool:\n false"}
test_parse! { fn_def_pub, try_parse_module, "pub fn foo21(x: bool, y: address,) -> bool:\n x"}
test_parse! { fn_def_unsafe, try_parse_module, "unsafe fn foo21(x: bool, y: address,) -> bool:\n x"}
test_parse! { fn_def_pub_unsafe, try_parse_module, "pub unsafe fn foo21(x: bool, y: address,) -> bool:\n x"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
source: crates/parser/tests/cases/parse_ast.rs
expression: "ast_string(stringify!(fn_def_generic), try_parse_module,\n \"fn transfer<T, R: Event>(from sender: address, to recip: address, _ val: u64) -> bool:\\n false\")"
expression: "ast_string(stringify!(fn_def_generic), try_parse_module,\n \"fn foo<T, R: Event>(this: T, that: R, _ val: u64) -> bool:\\n false\")"

---
Node(
Expand All @@ -11,135 +11,123 @@ Node(
pub_: None,
unsafe_: None,
name: Node(
kind: "transfer",
kind: "foo",
span: Span(
start: 3,
end: 11,
end: 6,
),
),
generic_params: Node(
kind: [
Unbounded(Node(
kind: "T",
span: Span(
start: 12,
end: 13,
start: 7,
end: 8,
),
)),
Bounded(
name: Node(
kind: "R",
span: Span(
start: 15,
end: 16,
start: 10,
end: 11,
),
),
bound: Node(
kind: "Event",
span: Span(
start: 18,
end: 23,
start: 13,
end: 18,
),
),
),
],
span: Span(
start: 11,
end: 24,
start: 6,
end: 19,
),
),
args: [
Node(
kind: Regular(RegularFunctionArg(
label: Some(Node(
kind: "from",
span: Span(
start: 25,
end: 29,
),
)),
label: None,
name: Node(
kind: "sender",
kind: "this",
span: Span(
start: 30,
end: 36,
start: 20,
end: 24,
),
),
typ: Node(
kind: Base(
base: "address",
base: "T",
),
span: Span(
start: 38,
end: 45,
start: 26,
end: 27,
),
),
)),
span: Span(
start: 30,
end: 45,
start: 20,
end: 27,
),
),
Node(
kind: Regular(RegularFunctionArg(
label: Some(Node(
kind: "to",
span: Span(
start: 47,
end: 49,
),
)),
label: None,
name: Node(
kind: "recip",
kind: "that",
span: Span(
start: 50,
end: 55,
start: 29,
end: 33,
),
),
typ: Node(
kind: Base(
base: "address",
base: "R",
),
span: Span(
start: 57,
end: 64,
start: 35,
end: 36,
),
),
)),
span: Span(
start: 50,
end: 64,
start: 29,
end: 36,
),
),
Node(
kind: Regular(RegularFunctionArg(
label: Some(Node(
kind: "_",
span: Span(
start: 66,
end: 67,
start: 38,
end: 39,
),
)),
name: Node(
kind: "val",
span: Span(
start: 68,
end: 71,
start: 40,
end: 43,
),
),
typ: Node(
kind: Base(
base: "u64",
),
span: Span(
start: 73,
end: 76,
start: 45,
end: 48,
),
),
)),
span: Span(
start: 68,
end: 76,
start: 40,
end: 48,
),
),
],
Expand All @@ -148,8 +136,8 @@ Node(
base: "bool",
),
span: Span(
start: 81,
end: 85,
start: 53,
end: 57,
),
)),
body: [
Expand All @@ -158,27 +146,27 @@ Node(
value: Node(
kind: Bool(false),
span: Span(
start: 88,
end: 93,
start: 60,
end: 65,
),
),
),
span: Span(
start: 88,
end: 93,
start: 60,
end: 65,
),
),
],
),
span: Span(
start: 0,
end: 93,
end: 65,
),
)),
],
),
span: Span(
start: 0,
end: 93,
end: 65,
),
)

0 comments on commit 1073f85

Please sign in to comment.