diff options
| author | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-12 21:14:25 +0100 |
|---|---|---|
| committer | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-12 21:14:25 +0100 |
| commit | 2bed29253c2cf79b125b57324b48c0a0f917365c (patch) | |
| tree | b1279d8688ad439875ca627b6e33aaed918f1570 /src/compiler.rs | |
| parent | 6718b634844a7db28ef01374701d1f77c4fe1716 (diff) | |
| download | sylt-2bed29253c2cf79b125b57324b48c0a0f917365c.tar.gz | |
Reference counted strings
Diffstat (limited to 'src/compiler.rs')
| -rw-r--r-- | src/compiler.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index df094ae..d3fc1fd 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -1,4 +1,5 @@ use std::path::{Path, PathBuf}; +use std::rc::Rc; use std::convert::TryFrom; use crate::tokenizer::{Token, TokenStream}; @@ -225,7 +226,7 @@ impl Compiler { Token::Float(f) => { Value::Float(f) }, Token::Int(i) => { Value::Int(i) } Token::Bool(b) => { Value::Bool(b) } - Token::String(s) => { Value::String(s.clone()) } + Token::String(s) => { Value::String(Rc::from(s)) } _ => { error!(self, "Cannot parse value."); Value::Bool(false) } }; block.add(Op::Constant(value), self.line()); |
