diff options
Diffstat (limited to 'tvix/eval/src/compiler')
-rw-r--r-- | tvix/eval/src/compiler/import.rs | 5 | ||||
-rw-r--r-- | tvix/eval/src/compiler/mod.rs | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/tvix/eval/src/compiler/import.rs b/tvix/eval/src/compiler/import.rs index 94a6602e9df6..4e8ea7195d81 100644 --- a/tvix/eval/src/compiler/import.rs +++ b/tvix/eval/src/compiler/import.rs @@ -6,6 +6,7 @@ //! instance, or observers). use super::GlobalsMap; +use bstr::ByteSlice; use genawaiter::rc::Gen; use std::rc::Weak; @@ -40,11 +41,11 @@ async fn import_impl( // TODO(tazjin): make this return a string directly instead let contents: Value = generators::request_read_to_string(&co, path.clone()).await; - let contents = contents.to_str()?.as_str().to_string(); + let contents = contents.to_str()?.to_str()?.to_owned(); let parsed = rnix::ast::Root::parse(&contents); let errors = parsed.errors(); - let file = source.add_file(path.to_string_lossy().to_string(), contents); + let file = source.add_file(path.to_string_lossy().to_string(), contents.to_owned()); if !errors.is_empty() { return Err(ErrorKind::ImportParseError { diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index 53a99a453d9e..b4ef7973c7e8 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -727,7 +727,7 @@ impl Compiler<'_> { if let (Some(attr), None) = (path_iter.next(), path_iter.next()) { // Only do this optimisation for statically known attrs. if let Some(ident) = expr_static_attr_str(&attr) { - if let Some(selected_value) = attrs.select(ident.as_str()) { + if let Some(selected_value) = attrs.select(ident.as_bytes()) { *constant = selected_value.clone(); // If this worked, we can unthunk the current thunk. |