diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dec812e8..f13b6e198 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Bug fixes --------- * The position of an undefined operation call now points to the operator instead of the first operand. +* The `optimize` command in `rhai-repl` now works properly and cycles through `None`->`Simple`->`Full`. Deprecated API's ---------------- diff --git a/src/bin/rhai-repl.rs b/src/bin/rhai-repl.rs index 025f05d45..65b826b7b 100644 --- a/src/bin/rhai-repl.rs +++ b/src/bin/rhai-repl.rs @@ -438,15 +438,21 @@ fn main() { continue; } #[cfg(not(feature = "no_optimize"))] - "optimize" if optimize_level == rhai::OptimizationLevel::Simple => { - optimize_level = rhai::OptimizationLevel::None; - println!("Script optimization turned OFF."); - continue; - } - #[cfg(not(feature = "no_optimize"))] "optimize" => { - optimize_level = rhai::OptimizationLevel::Simple; - println!("Script optimization turned ON."); + match optimize_level { + rhai::OptimizationLevel::Full => { + optimize_level = rhai::OptimizationLevel::None; + println!("Script optimization turned OFF."); + } + rhai::OptimizationLevel::Simple => { + optimize_level = rhai::OptimizationLevel::Full; + println!("Script optimization turned to FULL."); + } + _ => { + optimize_level = rhai::OptimizationLevel::Simple; + println!("Script optimization turned to SIMPLE."); + } + } continue; } "scope" => {