From 865065217f0e79ca2b359a5c60a2b49b97ff67f8 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 4 Jul 2026 21:17:48 +0900 Subject: fix(console-application): implement --profile via IOInterface::enable_debugging The --profile flag parsed the option but never actually enabled the timing/memory output, because ConsoleIO::enableDebugging existed only as an inherent method, unreachable through the `dyn IOInterface` handle held by Application. Promote enable_debugging to an IOInterface trait method (default panics, since only ConsoleIO/BufferIO ever legitimately receive this call) so do_run can invoke it directly without downcasting. --- crates/shirabe/src/io/io_interface.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'crates/shirabe/src/io/io_interface.rs') diff --git a/crates/shirabe/src/io/io_interface.rs b/crates/shirabe/src/io/io_interface.rs index 1ae8d28..af3f688 100644 --- a/crates/shirabe/src/io/io_interface.rs +++ b/crates/shirabe/src/io/io_interface.rs @@ -155,6 +155,11 @@ pub trait IOInterface: IOInterfaceImmutable + IOInterfaceMutable { fn as_base_io_mut(&mut self) -> Option<&mut dyn crate::io::BaseIO> { None } + + // PHP: only `ConsoleIO::enableDebugging` exists; the interface itself does not declare it. + fn enable_debugging(&mut self, _start_time: f64) { + panic!("enable_debugging is only supported by ConsoleIO/BufferIO"); + } } // Shared-ownership handle for a PHP IO instance (reference semantics). It -- cgit v1.3.1