about summary refs log tree commit diff
path: root/tvix/eval/src/compiler.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-08-11T09·20+0300
committertazjin <tazjin@tvl.su>2022-08-25T12·07+0000
commit2422f2f2245e96fbed61200bb42d04b4e96a32b0 (patch)
treec0f57309bb07e10229a89dd74d99631cbfea3149 /tvix/eval/src/compiler.rs
parenta0cbc78a8330941b43a6aec00e1f3b8d72eb0f81 (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.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/tvix/eval/src/compiler.rs b/tvix/eval/src/compiler.rs
index 91eb1bda12..4a3a652af5 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));
                     }