facebook / starlark-rust

A Rust implementation of the Starlark language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

panicked at 'slice index starts at 2 but ends at 1'

charlesxsh opened this issue · comments

For given input file:
in.zip

The following code:

use starlark::eval::Evaluator;
use starlark::environment::{Module, Globals};
use starlark::values::Value;
use starlark::syntax::{AstModule, Dialect};


fn main() {
    // change filepath to the input file
    let data = std::fs::read(filepath).unwrap();
        let _  = match std::str::from_utf8(&data) {
            Ok(d) => {
                if let Ok(ast) = AstModule::parse("hello_world.star", d.to_owned(), &Dialect::Standard) {
                   
                    let globals: Globals = Globals::standard();

                    let module: Module = Module::new();

                    let mut eval: Evaluator = Evaluator::new(&module, &globals);

                    eval.eval_module(ast);  
                }

                
            },
            Err(..) => return,
        };
       
}

has output:

thread 'main' panicked at 'slice index starts at 2 but ends at 1', /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/values/index.rs:129:19
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::slice::index::slice_index_order_fail
   3: <core::ops::range::Range<usize> as core::slice::index::SliceIndex<[T]>>::index
             at /home/sxia/code/rust-compiler/library/core/src/slice/index.rs:238:13
   4: core::slice::index::<impl core::ops::index::Index<I> for [T]>::index
             at /home/sxia/code/rust-compiler/library/core/src/slice/index.rs:15:9
   5: starlark::values::index::apply_slice
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/values/index.rs:129:19
   6: <starlark::values::types::string::StarlarkStr as starlark::values::traits::StarlarkValue>::slice
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/values/types/string.rs:349:22
   7: <starlark::values::layout::avalue::Wrapper<Mode,T> as starlark::values::traits::StarlarkValueDyn>::slice
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/values/layout/avalue.rs:598:9
   8: starlark::values::<impl starlark::values::layout::value::Value>::slice
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/values/mod.rs:497:9
   9: starlark::eval::fragment::expr::eval_slice::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/expr.rs:554:13
  10: starlark::eval::fragment::expr::eval_slice::ann_expr_slice::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/mod.rs:44:33
  11: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /home/sxia/code/rust-compiler/library/alloc/src/boxed.rs:1652:9
  12: starlark::eval::fragment::stmt::<impl starlark::codemap::Spanned<starlark::eval::fragment::stmt::StmtCompiledValue>>::as_compiled::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/stmt.rs:95:54
  13: starlark::eval::fragment::stmt::<impl starlark::codemap::Spanned<starlark::eval::fragment::stmt::StmtCompiledValue>>::as_compiled::ann_stmt_return::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/mod.rs:88:33
  14: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /home/sxia/code/rust-compiler/library/alloc/src/boxed.rs:1652:9
  15: starlark::eval::fragment::stmt::StmtsCompiled::as_compiled::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/stmt.rs:310:25
  16: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /home/sxia/code/rust-compiler/library/alloc/src/boxed.rs:1652:9
  17: starlark::eval::fragment::module::<impl starlark::eval::compiler::Compiler>::eval_top_level_stmt
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/module.rs:81:17
  18: starlark::eval::fragment::module::<impl starlark::eval::compiler::Compiler>::eval_top_level_stmt
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/module.rs:74:21
  19: starlark::eval::fragment::module::<impl starlark::eval::compiler::Compiler>::eval_module
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/module.rs:92:9
  20: starlark::eval::<impl starlark::eval::runtime::evaluator::Evaluator>::eval_module
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/mod.rs:148:19
...

Thanks for the awesome bug report! Fixed in ce5ef1b