diff --git a/crates/objectscript-core/src/common.rs b/crates/objectscript-core/src/common.rs index 962bd87..91fef9a 100644 --- a/crates/objectscript-core/src/common.rs +++ b/crates/objectscript-core/src/common.rs @@ -935,11 +935,11 @@ pub fn cls_is_scope_node(node: Node) -> bool { /// that method’s name (sliced from `content`). /// /// Returns `None` if no method definition is found within a bounded parent walk. -pub fn method_name_from_identifier_node( - node: Node, +pub fn method_node_and_name_from_identifier_node<'a>( + node: Node<'a>, content: &str, mut iteration: usize, -) -> Option { +) -> Option<(Node<'a>, String)> { if iteration > 10 { eprintln!("Iteration MAX reached"); generic_exit_statements("COMMON (no struct)", "method_name_from_identifier_node"); @@ -961,7 +961,7 @@ pub fn method_name_from_identifier_node( generic_exit_statements("COMMON (no struct)", "method_name_from_identifier_node"); return None; }; - Some(method_name.to_string()) + Some((method_name_node, method_name.to_string())) } _ => { iteration += 1; @@ -970,7 +970,7 @@ pub fn method_name_from_identifier_node( generic_exit_statements("COMMON (no struct)", "method_name_from_identifier_node"); return None; }; - method_name_from_identifier_node(new_node, content, iteration) + method_node_and_name_from_identifier_node(new_node, content, iteration) } } }