From 8f005b31f495822d25f44e38b3aa2b458e1676ac Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Tue, 30 Sep 2025 14:52:30 +0400 Subject: [PATCH] fix bug in parameters binding --- core/parameters.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/parameters.rs b/core/parameters.rs index 5ed520300..a6f3d31b5 100644 --- a/core/parameters.rs +++ b/core/parameters.rs @@ -25,7 +25,7 @@ impl Parameter { #[derive(Debug)] pub struct Parameters { - index: NonZero, + next_index: NonZero, pub list: Vec, } @@ -38,7 +38,7 @@ impl Default for Parameters { impl Parameters { pub fn new() -> Self { Self { - index: 1.try_into().unwrap(), + next_index: 1.try_into().unwrap(), list: vec![], } } @@ -69,8 +69,8 @@ impl Parameters { } pub fn next_index(&mut self) -> NonZero { - let index = self.index; - self.index = self.index.checked_add(1).unwrap(); + let index = self.next_index; + self.next_index = self.next_index.checked_add(1).unwrap(); index } @@ -99,8 +99,8 @@ impl Parameters { index => { // SAFETY: Guaranteed from parser that the index is bigger than 0. let index: NonZero = index.parse().unwrap(); - if index > self.index { - self.index = index.checked_add(1).unwrap(); + if index >= self.next_index { + self.next_index = index.checked_add(1).unwrap(); } self.list.push(Parameter::Indexed(index)); tracing::trace!("indexed parameter at {index}");