fix(functions): remove function body alias and use block (#111)

pull/844/head
Alex Manning 2025-02-07 09:26:13 +07:00 committed by GitHub
parent 066704e482
commit 3a5c285357
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 59 additions and 66 deletions

@ -255,13 +255,7 @@ module.exports = grammar({
field("name", $.identifier), field("name", $.identifier),
field("parameters", $.function_parameters), field("parameters", $.function_parameters),
optional(seq("->", field("return_type", $._type))), optional(seq("->", field("return_type", $._type))),
optional( optional(field("body", $.block))
seq(
"{",
optional(field("body", alias($._statement_seq, $.function_body))),
"}"
)
)
) )
), ),
function_parameters: ($) => function_parameters: ($) =>
@ -406,9 +400,7 @@ module.exports = grammar({
alias($.anonymous_function_parameters, $.function_parameters) alias($.anonymous_function_parameters, $.function_parameters)
), ),
optional(seq("->", field("return_type", $._type))), optional(seq("->", field("return_type", $._type))),
"{", field("body", $.block)
field("body", alias($._statement_seq, $.function_body)),
"}"
), ),
anonymous_function_parameters: ($) => anonymous_function_parameters: ($) =>
seq( seq(
@ -426,7 +418,7 @@ module.exports = grammar({
choice($._discard_param, $._name_param), choice($._discard_param, $._name_param),
optional($._type_annotation) optional($._type_annotation)
), ),
block: ($) => seq("{", $._statement_seq, "}"), block: ($) => seq("{", optional($._statement_seq), "}"),
case: ($) => case: ($) =>
seq( seq(
"case", "case",

@ -17,7 +17,7 @@ pub fn main() { todo }
(visibility_modifier) (visibility_modifier)
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(todo)))) (todo))))
================================================================================ ================================================================================
@ -44,7 +44,7 @@ pub fn wibble() { todo }
(visibility_modifier) (visibility_modifier)
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(todo)))) (todo))))
================================================================================ ================================================================================
@ -63,5 +63,5 @@ pub fn wibble() { todo }
(visibility_modifier) (visibility_modifier)
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(todo)))) (todo))))

@ -68,7 +68,7 @@ pub fn listed(names: List(String), person: Person) -> String {
(type_identifier)))) (type_identifier))))
(type (type
(type_identifier)) (type_identifier))
(function_body (block
(case (case
(case_subjects (case_subjects
(identifier)) (identifier))

@ -16,7 +16,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(case (case
(case_subjects (case_subjects
(identifier)) (identifier))
@ -64,7 +64,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(let (let
(record_pattern (record_pattern
(constructor_name) (constructor_name)

@ -13,7 +13,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(echo (echo
(integer))))) (integer)))))
@ -34,7 +34,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(binary_expression (binary_expression
(binary_expression (binary_expression
(list) (list)
@ -59,7 +59,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(binary_expression (binary_expression
(list) (list)
(pipeline_echo)) (pipeline_echo))
@ -81,7 +81,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(echo (echo
(binary_expression (binary_expression
(integer) (integer)
@ -104,7 +104,7 @@ pub fn main() {
(visibility_modifier) (visibility_modifier)
(identifier) (identifier)
(function_parameters) (function_parameters)
(function_body (block
(echo (echo
(binary_expression (binary_expression
(integer) (integer)

@ -35,7 +35,7 @@ fn replace(
name: (type_identifier)))) name: (type_identifier))))
return_type: (type return_type: (type
name: (type_identifier)) name: (type_identifier))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (identifier)))) right: (identifier))))
@ -52,7 +52,7 @@ fn replace(
name: (identifier) name: (identifier)
type: (type_var))) type: (type_var)))
return_type: (type_var) return_type: (type_var)
body: (function_body body: (block
(function_call (function_call
function: (identifier) function: (identifier)
arguments: (arguments arguments: (arguments
@ -67,7 +67,7 @@ fn replace(
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(identifier))) (identifier)))
(function (function
name: (identifier) name: (identifier)
@ -87,7 +87,7 @@ fn replace(
name: (identifier) name: (identifier)
type: (type type: (type
name: (type_identifier)))) name: (type_identifier))))
body: (function_body body: (block
(function_call (function_call
function: (field_access function: (field_access
record: (identifier) record: (identifier)
@ -141,7 +141,7 @@ pub fn replace(
name: (type_identifier)))) name: (type_identifier))))
return_type: (type return_type: (type
name: (type_identifier)) name: (type_identifier))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (identifier)))) right: (identifier))))
@ -159,7 +159,7 @@ pub fn replace(
name: (identifier) name: (identifier)
type: (type_var))) type: (type_var)))
return_type: (type_var) return_type: (type_var)
body: (function_body body: (block
(function_call (function_call
function: (identifier) function: (identifier)
arguments: (arguments arguments: (arguments
@ -175,7 +175,7 @@ pub fn replace(
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(identifier))) (identifier)))
(function (function
(visibility_modifier) (visibility_modifier)
@ -196,7 +196,7 @@ pub fn replace(
name: (identifier) name: (identifier)
type: (type type: (type
name: (type_identifier)))) name: (type_identifier))))
body: (function_body body: (block
(function_call (function_call
function: (field_access function: (field_access
record: (identifier) record: (identifier)
@ -313,27 +313,28 @@ fn field_access(x) {
(source_file (source_file
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters)) parameters: (function_parameters)
body: (block))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(string (string
(quoted_content)))) (quoted_content))))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(integer))) (integer)))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(float))) (float)))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(record (record
name: (constructor_name) name: (constructor_name)
arguments: (arguments arguments: (arguments
@ -344,7 +345,7 @@ fn field_access(x) {
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(record (record
name: (remote_constructor_name name: (remote_constructor_name
module: (identifier) module: (identifier)
@ -359,26 +360,26 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(identifier))) (identifier)))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(function_call (function_call
function: (identifier) function: (identifier)
arguments: (arguments)))) arguments: (arguments))))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(todo (todo
message: (string message: (string
(quoted_content))))) (quoted_content)))))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(panic) (panic)
(panic (panic
message: (string message: (string
@ -388,7 +389,7 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(tuple (tuple
(identifier) (identifier)
(integer)))) (integer))))
@ -397,7 +398,7 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(list (list
(integer) (integer)
(integer) (integer)
@ -405,7 +406,7 @@ fn field_access(x) {
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(bit_string (bit_string
(bit_string_segment (bit_string_segment
value: (integer) value: (integer)
@ -424,21 +425,21 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(anonymous_function (anonymous_function
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier) name: (identifier)
type: (type type: (type
name: (type_identifier)))) name: (type_identifier))))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (identifier)))))) right: (identifier))))))
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(block (block
(binary_expression (binary_expression
left: (integer) left: (integer)
@ -452,7 +453,7 @@ fn field_access(x) {
name: (identifier)) name: (identifier))
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(case (case
subjects: (case_subjects subjects: (case_subjects
(identifier) (identifier)
@ -477,7 +478,7 @@ fn field_access(x) {
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(let_assert (let_assert
pattern: (record_pattern pattern: (record_pattern
name: (constructor_name) name: (constructor_name)
@ -532,7 +533,7 @@ fn field_access(x) {
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(let (let
pattern: (identifier) pattern: (identifier)
value: (block value: (block
@ -554,7 +555,7 @@ fn field_access(x) {
(function (function
name: (identifier) name: (identifier)
parameters: (function_parameters) parameters: (function_parameters)
body: (function_body body: (block
(assert (assert
pattern: (record_pattern pattern: (record_pattern
name: (constructor_name) name: (constructor_name)
@ -589,7 +590,7 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(record_update (record_update
constructor: (constructor_name) constructor: (constructor_name)
spread: (identifier) spread: (identifier)
@ -623,7 +624,7 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(tuple_access (tuple_access
tuple: (identifier) tuple: (identifier)
index: (integer)))) index: (integer))))
@ -632,7 +633,7 @@ fn field_access(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(field_access (field_access
record: (identifier) record: (identifier)
field: (label))))) field: (label)))))
@ -676,7 +677,7 @@ fn trial(x, y, z) {
name: (identifier)) name: (identifier))
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(case (case
subjects: (case_subjects subjects: (case_subjects
(identifier)) (identifier))
@ -812,7 +813,7 @@ let fun_ref = float.to_string
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(identifier)))) (identifier))))
(let (let
pattern: (identifier) pattern: (identifier)
@ -838,7 +839,7 @@ fn complicated(x, y) {
name: (identifier)) name: (identifier))
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(binary_expression (binary_expression
left: (binary_expression left: (binary_expression
left: (binary_expression left: (binary_expression
@ -882,7 +883,7 @@ fn complex_data_fun(x, y) {
name: (identifier)) name: (identifier))
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(field_access (field_access
record: (tuple_access record: (tuple_access
tuple: (field_access tuple: (field_access
@ -950,7 +951,7 @@ fn weird(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(function_call (function_call
function: (identifier) function: (identifier)
arguments: (arguments arguments: (arguments
@ -963,7 +964,7 @@ fn weird(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (integer)))) right: (integer))))
@ -978,7 +979,7 @@ fn weird(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (integer)))))) right: (integer))))))
@ -998,7 +999,7 @@ fn weird(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(binary_expression (binary_expression
left: (identifier) left: (identifier)
right: (integer))))))) right: (integer)))))))
@ -1034,7 +1035,7 @@ fn ignores(foo, _bar) {
name: (identifier)) name: (identifier))
(function_parameter (function_parameter
name: (discard))) name: (discard)))
body: (function_body body: (block
(let (let
pattern: (discard) pattern: (discard)
value: (integer)) value: (integer))
@ -1065,7 +1066,7 @@ fn lists(x) {
parameters: (function_parameters parameters: (function_parameters
(function_parameter (function_parameter
name: (identifier))) name: (identifier)))
body: (function_body body: (block
(list) (list)
(list (list
(integer)) (integer))

@ -48,7 +48,7 @@ if javascript {
name: (type_identifier)))) name: (type_identifier))))
return_type: (type return_type: (type
name: (type_identifier)) name: (type_identifier))
body: (function_body body: (block
(let (let
pattern: (identifier) pattern: (identifier)
value: (function_call value: (function_call
@ -184,7 +184,7 @@ pub fn negate(bool: Bool) -> Bool {
name: (type_identifier)))) name: (type_identifier))))
return_type: (type return_type: (type
name: (type_identifier)) name: (type_identifier))
body: (function_body body: (block
(case (case
subjects: (case_subjects subjects: (case_subjects
(identifier)) (identifier))
@ -290,7 +290,7 @@ fn foo(a,) {
(function_parameters (function_parameters
(function_parameter (function_parameter
(identifier))) (identifier)))
(function_body (block
(function_call (function_call
(identifier) (identifier)
(arguments (arguments