facebook / starlark-rust

A Rust implementation of the Starlark language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

panicked at 'assertion failed: self.args.is_none() && !self.no_args && self.kwargs.is_none()'

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 'assertion failed: self.args.is_none() && !self.no_args && self.kwargs.is_none()', /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/runtime/arguments.rs:195:9
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic
   3: starlark::eval::runtime::arguments::ParametersSpec<V>::args
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/runtime/arguments.rs:195:9
   4: starlark::eval::fragment::def::DefCompiled::as_compiled::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/def.rs:215:54
   5: starlark::eval::fragment::def::DefCompiled::as_compiled::ann_expr_def::{{closure}}
             at /home/sxia/.cargo/git/checkouts/starlark-rust-59575ffdf833204c/458a203/starlark/src/eval/fragment/mod.rs:29:33
   6: <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
   7: 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
   8: 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
   9: <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
  10: 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
  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::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
  13: 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
  14: 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
  15: 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

I think this should have been fixed by the same fix as #36, as both have the same route cause. When I try to run it now I get:

Got error: error: Args parameter after another args or kwargs parameter
 --> assert.bzl:1:18
  |
1 | lambda**T1lambda,*O:lambda**T:lambda**O:7
  |                  ^^
  |

Which seems an accurate error