diff options
author | Vincent Ambo <mail@tazj.in> | 2022-08-11T09·20+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-08-25T12·07+0000 |
commit | 2422f2f2245e96fbed61200bb42d04b4e96a32b0 (patch) | |
tree | c0f57309bb07e10229a89dd74d99631cbfea3149 /tvix/eval/src/compiler.rs | |
parent | a0cbc78a8330941b43a6aec00e1f3b8d72eb0f81 (diff) |
refactor(tvix/value): hide internal string representation r/4482
Wraps the string representation in an additional newtype struct with a private field in order to hide the representation from other modules. This is done in order to avoid accidental leakage of the internals outside of value::string. In fact, this caught a mistake in the compiler module which was directly constructing an internal variant. Change-Id: If4b627d3cff7ab9cd50ca1a3ac73245d4dcf7aef Reviewed-on: https://cl.tvl.fyi/c/depot/+/6147 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'tvix/eval/src/compiler.rs')
-rw-r--r-- | tvix/eval/src/compiler.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tvix/eval/src/compiler.rs b/tvix/eval/src/compiler.rs index 91eb1bda12eb..4a3a652af5c5 100644 --- a/tvix/eval/src/compiler.rs +++ b/tvix/eval/src/compiler.rs @@ -4,7 +4,7 @@ use crate::chunk::Chunk; use crate::errors::EvalResult; use crate::opcode::OpCode; -use crate::value::{NixString, Value}; +use crate::value::Value; use rnix; use rnix::types::{EntryHolder, TokenWrapper, TypedNode, Wrapper}; @@ -221,9 +221,9 @@ impl Compiler { let ident = rnix::types::Ident::cast(fragment).unwrap(); // TODO(tazjin): intern! - let idx = self.chunk.add_constant(Value::String(NixString::Heap( - ident.as_str().to_string(), - ))); + let idx = self + .chunk + .add_constant(Value::String(ident.as_str().to_string().into())); self.chunk.add_op(OpCode::OpConstant(idx)); } |