aboutsummaryrefslogtreecommitdiffstats
path: root/src/vm.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-10 16:55:26 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-01-10 16:55:26 +0100
commit6d94077778d6043e135640f40b09e2582d3a3064 (patch)
tree871bffa3f6b9e061f9af5f620a8d432139a3f310 /src/vm.rs
parentd61370656d9f3deb39bb37f9c1d45e8ddc62efd5 (diff)
downloadsylt-6d94077778d6043e135640f40b09e2582d3a3064.tar.gz
Fix this shit
Diffstat (limited to 'src/vm.rs')
-rw-r--r--src/vm.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/vm.rs b/src/vm.rs
index 92740ea..a372d0b 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -49,7 +49,7 @@ pub struct Block {
name: String,
file: PathBuf,
ops: Vec<Op>,
- last_line_offset: Option<usize>,
+ last_line_offset: usize,
line_offsets: HashMap<usize, usize>,
}
@@ -59,23 +59,22 @@ impl Block {
name: String::from(name),
file: file.to_owned(),
ops: Vec::new(),
- last_line_offset: None,
+ last_line_offset: 0,
line_offsets: HashMap::new(),
}
}
- pub fn add(&mut self, op: Op, token_position: Option<usize>) -> usize {
+ pub fn add(&mut self, op: Op, token_position: usize) -> usize {
let len = self.ops.len();
if token_position != self.last_line_offset {
- if let Some(token_position) = token_position {
- self.line_offsets.insert(len, token_position);
- }
+ self.line_offsets.insert(len, token_position);
+ self.last_line_offset = token_position;
}
self.ops.push(op);
len
}
- pub fn add_from(&mut self, ops: &[Op], token_position: Option<usize>) -> usize {
+ pub fn add_from(&mut self, ops: &[Op], token_position: usize) -> usize {
let len = self.ops.len();
for op in ops {
self.add(*op, token_position);