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:
parent
1941082cbb
commit
52b7a76268
3 changed files with 12 additions and 14 deletions
|
@ -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(),
|
||||
),
|
||||
)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue