From ef7fd8222a8d68f3ebd16ab7e4139bd085a60682 Mon Sep 17 00:00:00 2001 From: "Joshua 'Joan Metek(illot)' Kidder" Date: Wed, 6 May 2026 09:09:43 -0400 Subject: [PATCH 1/2] adds Annotation::ProcParameter for the arguments of a proc declaration --- crates/dreammaker/src/annotation.rs | 1 + crates/dreammaker/src/parser.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/crates/dreammaker/src/annotation.rs b/crates/dreammaker/src/annotation.rs index e973aa02..a1fecf17 100644 --- a/crates/dreammaker/src/annotation.rs +++ b/crates/dreammaker/src/annotation.rs @@ -19,6 +19,7 @@ pub enum Annotation { TypePath(TypePath), Variable(Vec), ProcHeader(Vec, usize), + ProcParameter(VarType, Ident), ProcBody(Vec, usize), LocalVarScope(VarType, Ident), diff --git a/crates/dreammaker/src/parser.rs b/crates/dreammaker/src/parser.rs index ae7e51fe..7f3d3c4b 100644 --- a/crates/dreammaker/src/parser.rs +++ b/crates/dreammaker/src/parser.rs @@ -1359,6 +1359,8 @@ impl<'ctx, 'an, 'inp> Parser<'ctx, 'an, 'inp> { .with_errortype("semicolon_in_proc_parameter") .register(self.context); } + let end = self.updated_location(); + self.annotate_precise(leading_loc..end, || Annotation::ProcParameter(var_type.clone().build(), name.clone())); success(Parameter { var_type: var_type.build(), From 0fca4078ce4c5f3896e87eae76b134320890b42b Mon Sep 17 00:00:00 2001 From: "Joshua 'Joan Metek(illot)' Kidder" Date: Wed, 6 May 2026 09:22:41 -0400 Subject: [PATCH 2/2] include input_type explicitly as part of the vartype annotation --- crates/dreammaker/src/parser.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/dreammaker/src/parser.rs b/crates/dreammaker/src/parser.rs index 7f3d3c4b..3ee7f9e9 100644 --- a/crates/dreammaker/src/parser.rs +++ b/crates/dreammaker/src/parser.rs @@ -1360,7 +1360,9 @@ impl<'ctx, 'an, 'inp> Parser<'ctx, 'an, 'inp> { .register(self.context); } let end = self.updated_location(); - self.annotate_precise(leading_loc..end, || Annotation::ProcParameter(var_type.clone().build(), name.clone())); + let mut var_annotation = var_type.clone(); + var_annotation.input_type = input_type; + self.annotate_precise(leading_loc..end, || Annotation::ProcParameter(var_annotation.build(), name.clone())); success(Parameter { var_type: var_type.build(),