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