fix: fix stack mut issues

上级 5a03dcf9
...@@ -156,7 +156,7 @@ impl Grammar { ...@@ -156,7 +156,7 @@ impl Grammar {
format_line_text, format_line_text,
is_first_line, is_first_line,
0, 0,
&mut current_state, current_state,
line_tokens, line_tokens,
true, true,
); );
...@@ -167,7 +167,7 @@ impl Grammar { ...@@ -167,7 +167,7 @@ impl Grammar {
line_text: String, line_text: String,
origin_is_first: bool, origin_is_first: bool,
origin_line_pos: i32, origin_line_pos: i32,
stack: &mut StackElement, mut stack: StackElement,
mut line_tokens: LineTokens, mut line_tokens: LineTokens,
check_while_conditions: bool, check_while_conditions: bool,
) -> Option<StackElement> { ) -> Option<StackElement> {
...@@ -193,7 +193,7 @@ impl Grammar { ...@@ -193,7 +193,7 @@ impl Grammar {
line_text.clone(), line_text.clone(),
is_first_line, is_first_line,
line_pos, line_pos,
stack, &mut stack,
anchor_position, anchor_position,
); );
if let None = r { if let None = r {
...@@ -210,7 +210,7 @@ impl Grammar { ...@@ -210,7 +210,7 @@ impl Grammar {
return None; return None;
} else { } else {
let rule = self.get_rule(matched_rule_id); let rule = self.get_rule(matched_rule_id);
line_tokens.produce(stack, capture_indices[0].start as i32); line_tokens.produce(&mut stack, capture_indices[0].start as i32);
// let before_push = stack.clone(); // let before_push = stack.clone();
let scope_name = let scope_name =
rule.get_name(Some(line_text.clone()), Some(capture_indices.clone())); rule.get_name(Some(line_text.clone()), Some(capture_indices.clone()));
...@@ -222,7 +222,7 @@ impl Grammar { ...@@ -222,7 +222,7 @@ impl Grammar {
if capture_indices[0].end == _line_length { if capture_indices[0].end == _line_length {
begin_rule_capture_eol = true; begin_rule_capture_eol = true;
} }
let mut new_stack = stack.clone().push( stack = stack.clone().push(
matched_rule_id, matched_rule_id,
line_pos, line_pos,
anchor_position, anchor_position,
...@@ -239,12 +239,12 @@ impl Grammar { ...@@ -239,12 +239,12 @@ impl Grammar {
self, self,
line_text.clone(), line_text.clone(),
is_first_line, is_first_line,
&mut new_stack, &mut stack,
line_tokens.clone(), line_tokens.clone(),
begin_rule.begin_captures, begin_rule.begin_captures,
capture_indices.clone(), capture_indices.clone(),
); );
line_tokens.produce(stack, capture_indices[0].end.clone() as i32); line_tokens.produce(&mut stack, capture_indices[0].end.clone() as i32);
anchor_position = capture_indices[0].end.clone() as i32; anchor_position = capture_indices[0].end.clone() as i32;
let content_name = push_rule let content_name = push_rule
.get_name(Some(line_text.clone()), Some(capture_indices.clone())); .get_name(Some(line_text.clone()), Some(capture_indices.clone()));
...@@ -364,7 +364,7 @@ impl Grammar { ...@@ -364,7 +364,7 @@ impl Grammar {
String::from(sub_text), String::from(sub_text),
sub_is_first_line, sub_is_first_line,
capture_index.start as i32, capture_index.start as i32,
&mut stack_clone, stack_clone,
line_tokens.clone(), line_tokens.clone(),
false, false,
); );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册