From 2bed29253c2cf79b125b57324b48c0a0f917365c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Tue, 12 Jan 2021 21:14:25 +0100 Subject: Reference counted strings --- src/compiler.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/compiler.rs') 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()); -- cgit v1.2.1