(&self, scope: Scope<'_>)
| 188 | } |
| 189 | |
| 190 | async fn async_exec(&self, scope: Scope<'_>) -> CallResult<()> { |
| 191 | debug_assert_eq!(0, scope.nargs()); |
| 192 | |
| 193 | let image = { |
| 194 | let metadata = self.callables_metadata.borrow(); |
| 195 | let mut callables = HashMap::with_capacity(metadata.len()); |
| 196 | for (name, metadata) in metadata.iter() { |
| 197 | let callable = Rc::from(MetadataCallable { metadata: metadata.clone() }); |
| 198 | callables.insert(name.clone(), callable as Rc<dyn Callable>); |
| 199 | } |
| 200 | |
| 201 | let compiler = Compiler::new(&callables, &[]) |
| 202 | .map_err(|e| CallError::Syntax(e.pos(), e.message_without_pos()))?; |
| 203 | compiler |
| 204 | .compile(&mut self.program.borrow().text().as_bytes()) |
| 205 | .map_err(|e| CallError::Syntax(e.pos(), e.message_without_pos()))? |
| 206 | }; |
| 207 | |
| 208 | let mut console = self.console.borrow_mut(); |
| 209 | let mut pager = Pager::new(&mut *console, self.yielder.clone())?; |
| 210 | for line in image.disasm() { |
| 211 | pager.print(&line).await?; |
| 212 | } |
| 213 | pager.print("").await?; |
| 214 | |
| 215 | Ok(()) |
| 216 | } |
| 217 | } |
| 218 | |
| 219 | /// The `EDIT` command. |
nothing calls this directly
no test coverage detected