From e5972640d2516ff23b8253a355b7ccccab7906e2 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Wed, 14 Dec 2022 22:10:15 +0100 Subject: [PATCH] Remove 'eval' command. Was introduced as a work-around to get some debugging info out of scripts, but tests do now provide the same capability with a better output and, do so automatically. --- crates/cli/src/cmd/eval.rs | 27 ------------------------- crates/cli/src/cmd/mod.rs | 1 - crates/cli/src/lib.rs | 38 +++++++++++++++-------------------- crates/cli/src/main.rs | 4 +--- crates/lang/src/ast.rs | 2 +- crates/project/src/lib.rs | 8 -------- crates/project/src/options.rs | 1 - 7 files changed, 18 insertions(+), 63 deletions(-) delete mode 100644 crates/cli/src/cmd/eval.rs diff --git a/crates/cli/src/cmd/eval.rs b/crates/cli/src/cmd/eval.rs deleted file mode 100644 index 15dfabb7..00000000 --- a/crates/cli/src/cmd/eval.rs +++ /dev/null @@ -1,27 +0,0 @@ -use aiken_project::options::{CodeGenMode, Options}; -use std::path::PathBuf; - -#[derive(clap::Args)] -/// Evaluate a chosen function with no argument. -pub struct Args { - /// Path to project - #[clap(short, long)] - directory: Option, - - /// Evaluate the given function - #[clap(short, long)] - function_name: String, -} - -pub fn exec( - Args { - directory, - function_name, - }: Args, -) -> miette::Result<()> { - crate::with_project(directory, |p| { - p.compile(Options { - code_gen_mode: CodeGenMode::Eval(function_name.clone()), - }) - }) -} diff --git a/crates/cli/src/cmd/mod.rs b/crates/cli/src/cmd/mod.rs index 4fc06408..75b5fe74 100644 --- a/crates/cli/src/cmd/mod.rs +++ b/crates/cli/src/cmd/mod.rs @@ -1,7 +1,6 @@ pub mod build; pub mod check; pub mod error; -pub mod eval; pub mod fmt; pub mod lsp; pub mod new; diff --git a/crates/cli/src/lib.rs b/crates/cli/src/lib.rs index 7064e8fc..dc195f14 100644 --- a/crates/cli/src/lib.rs +++ b/crates/cli/src/lib.rs @@ -34,16 +34,15 @@ where err.report(); println!("{}", "Summary".purple().bold()); println!( - " {}, {}", - format!("{} error(s)", err.len()), + " {} error(s), {}", + err.len(), format!("{warning_count} warning(s)").yellow(), ); process::exit(1); } else { println!("{}", "Summary".purple().bold()); println!( - " {}, {}", - "0 error", + " 0 error, {}", format!("{warning_count} warning(s)").yellow(), ); } @@ -163,21 +162,18 @@ fn fmt_test_summary(tests: &Vec<&EvalInfo>, styled: bool) -> String { } }); format!( - "{}", - format!( - "{} | {} | {}", - pretty::style_if(styled, format!("{} tests", tests.len()), |s| s - .bold() - .to_string()), - pretty::style_if(styled, format!("{} passed", n_passed), |s| s - .bright_green() - .bold() - .to_string()), - pretty::style_if(styled, format!("{} failed", n_failed), |s| s - .bright_red() - .bold() - .to_string()), - ) + "{} | {} | {}", + pretty::style_if(styled, format!("{} tests", tests.len()), |s| s + .bold() + .to_string()), + pretty::style_if(styled, format!("{} passed", n_passed), |s| s + .bright_green() + .bold() + .to_string()), + pretty::style_if(styled, format!("{} failed", n_failed), |s| s + .bright_red() + .bold() + .to_string()), ) } @@ -207,9 +203,7 @@ fn fmt_eval(eval_info: &EvalInfo, max_mem: usize, max_cpu: usize) -> String { fn group_by_module(infos: &Vec) -> BTreeMap> { let mut modules = BTreeMap::new(); for eval_info in infos { - let xs = modules - .entry(eval_info.script.module.clone()) - .or_insert(vec![]); + let xs: &mut Vec<&EvalInfo> = modules.entry(eval_info.script.module.clone()).or_default(); xs.push(eval_info); } modules diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 3cda6690..d624ce6d 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -1,4 +1,4 @@ -use aiken::cmd::{build, check, eval, fmt, lsp, new, tx, uplc}; +use aiken::cmd::{build, check, fmt, lsp, new, tx, uplc}; use clap::Parser; /// Aiken: a smart-contract language and toolchain for Cardano @@ -11,7 +11,6 @@ pub enum Cmd { Fmt(fmt::Args), Build(build::Args), Check(check::Args), - Eval(eval::Args), #[clap(hide = true)] Lsp(lsp::Args), @@ -36,7 +35,6 @@ fn main() -> miette::Result<()> { Cmd::Fmt(args) => fmt::exec(args), Cmd::Build(args) => build::exec(args), Cmd::Check(args) => check::exec(args), - Cmd::Eval(args) => eval::exec(args), Cmd::Lsp(args) => lsp::exec(args), Cmd::Tx(sub_cmd) => tx::exec(sub_cmd), Cmd::Uplc(sub_cmd) => uplc::exec(sub_cmd), diff --git a/crates/lang/src/ast.rs b/crates/lang/src/ast.rs index ccb93e3a..f839ca7a 100644 --- a/crates/lang/src/ast.rs +++ b/crates/lang/src/ast.rs @@ -94,7 +94,7 @@ impl TypedFunction { left, right, .. - } if tipo == &bool() => Some((name.clone(), left.clone(), right.clone())), + } if tipo == &bool() => Some((*name, left.clone(), right.clone())), _ => None, } } diff --git a/crates/project/src/lib.rs b/crates/project/src/lib.rs index f2495e4e..df4a7378 100644 --- a/crates/project/src/lib.rs +++ b/crates/project/src/lib.rs @@ -178,14 +178,6 @@ where Ok(()) } } - CodeGenMode::Eval(func_name) => { - let scripts = self - .collect_scripts(&checked_modules, |def| matches!(def, Definition::Fn(..)))?; - let results = self.eval_scripts(scripts, Some(func_name)); - self.event_listener - .handle_event(Event::EvaluatingFunction { results }); - Ok(()) - } CodeGenMode::NoOp => Ok(()), } } diff --git a/crates/project/src/options.rs b/crates/project/src/options.rs index decd8686..f2fab614 100644 --- a/crates/project/src/options.rs +++ b/crates/project/src/options.rs @@ -4,7 +4,6 @@ pub struct Options { pub enum CodeGenMode { Test(Option), - Eval(String), Build(bool), NoOp, }