chore(tvix/eval): remove From<SmolStr> for NixString instance

No longer needed, and in some cases caused some extra work.

Change-Id: I64e8e7292573bdc92a9c7a8e470e33f8c526f311
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8152
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2023-02-27 13:44:06 +03:00 committed by tazjin
parent 1941082cbb
commit 52b7a76268
3 changed files with 12 additions and 14 deletions

View file

@ -1,6 +1,5 @@
use builtin_macros::builtins;
use genawaiter::rc::Gen;
use smol_str::SmolStr;
use std::{
env,
@ -12,7 +11,7 @@ use crate::{
io::FileType,
value::NixAttrs,
vm::generators::{self, GenCo},
Value,
NixString, Value,
};
#[builtins]
@ -38,14 +37,14 @@ mod impure_builtins {
let dir = generators::request_read_dir(&co, path).await;
let res = dir.into_iter().map(|(name, ftype)| {
(
name,
NixString::from(name.as_str()),
Value::String(
SmolStr::new(match ftype {
match ftype {
FileType::Directory => "directory",
FileType::Regular => "regular",
FileType::Symlink => "symlink",
FileType::Unknown => "unknown",
})
}
.into(),
),
)

View file

@ -361,7 +361,7 @@ impl Compiler<'_> {
// Place key on the stack when compiling attribute sets.
if kind.is_attrs() {
self.emit_constant(Value::String(name.clone().into()), &attr);
self.emit_constant(Value::String(name.as_str().into()), &attr);
let span = self.span_for(&attr);
self.scope_mut().declare_phantom(span, true);
}
@ -569,7 +569,7 @@ impl Compiler<'_> {
KeySlot::Static { slot, name } => {
let span = self.scope()[slot].span;
self.emit_constant(Value::String(name.into()), &span);
self.emit_constant(Value::String(name.as_str().into()), &span);
self.scope_mut().mark_initialised(slot);
}
@ -593,7 +593,7 @@ impl Compiler<'_> {
c.compile(s, namespace.clone());
c.emit_force(&namespace);
c.emit_constant(Value::String(name.into()), &span);
c.emit_constant(Value::String(name.as_str().into()), &span);
c.push_op(OpCode::OpAttrsSelect, &span);
})
}
@ -681,7 +681,7 @@ impl Compiler<'_> {
// (OpAttrs consumes all of these locals).
self.scope_mut().end_scope();
self.emit_constant(Value::String(SmolStr::new_inline("body").into()), node);
self.emit_constant(Value::String("body".into()), node);
self.push_op(OpCode::OpAttrsSelect, node);
}
@ -726,7 +726,7 @@ impl Compiler<'_> {
if self.has_dynamic_ancestor() {
self.thunk(slot, node, |c, _| {
c.context_mut().captures_with_stack = true;
c.emit_constant(Value::String(SmolStr::new(ident).into()), node);
c.emit_constant(Value::String(ident.into()), node);
c.push_op(OpCode::OpResolveWith, node);
});
return;

View file

@ -4,7 +4,6 @@
//! level, allowing us to shave off some memory overhead and only
//! paying the cost when creating new strings.
use rnix::ast;
use smol_str::SmolStr;
use std::ffi::OsStr;
use std::hash::Hash;
use std::ops::Deref;
@ -50,9 +49,9 @@ impl From<String> for NixString {
}
}
impl From<SmolStr> for NixString {
fn from(s: SmolStr) -> Self {
NixString(Box::from(s.as_str()))
impl From<Box<str>> for NixString {
fn from(s: Box<str>) -> Self {
Self(s)
}
}