]> Repositorios git - scryer-prolog.git/commitdiff
merge if let, match structures
authorThierry Marianne <[email protected]>
Sun, 14 Sep 2025 16:32:30 +0000 (18:32 +0200)
committerThierry Marianne <[email protected]>
Sun, 14 Sep 2025 18:10:44 +0000 (20:10 +0200)
Signed-off-by: Thierry Marianne <[email protected]>
src/machine/machine_state.rs

index e1124222ae1da20d390efc476208ed90b3f54835..a3c141e099d3b309b6ead9059d9b799188f314e8 100644 (file)
@@ -745,44 +745,29 @@ impl MachineState {
         stream: Stream,
         indices: &mut IndexStore,
     ) -> CallResult {
-        if let Stream::Readline(ptr) = stream {
-            let readline = unsafe { ptr.as_ptr().as_mut() }.unwrap();
-            readline.set_atoms_for_completion(&self.atom_tbl);
-            return self.read_term(
+        match stream {
+            #[cfg(feature = "http")]
+            Stream::HttpRead(_) => self.read_term(
                 stream,
                 indices,
                 MachineState::read_term_from_user_input_eof_handler,
-            );
-        }
-
-        match stream {
-            #[cfg(feature = "http")]
-            Stream::HttpRead(_) => {
-                return self.read_term(
-                    stream,
-                    indices,
-                    MachineState::read_term_from_user_input_eof_handler,
-                )
-            }
-            Stream::InputFile(_) | Stream::NamedTcp(_) => {
-                return self.read_term(
+            ),
+            Stream::Readline(ptr) => {
+                let readline = unsafe { ptr.as_ptr().as_mut() }.unwrap();
+                readline.set_atoms_for_completion(&self.atom_tbl);
+                self.read_term(
                     stream,
                     indices,
                     MachineState::read_term_from_user_input_eof_handler,
                 )
             }
-            _ => true,
-        };
-
-        if let Stream::Byte(_) = stream {
-            return self.read_term(
+            Stream::Byte(_) | Stream::InputFile(_) | Stream::NamedTcp(_) => self.read_term(
                 stream,
                 indices,
                 MachineState::read_term_from_user_input_eof_handler,
-            );
+            ),
+            _ => Err(functor_stub(atom!("read_term_from_user_input"), 3)),
         }
-
-        unreachable!("Stream must be a Stream::Readline(_)")
     }
 
     pub fn read_term_eof_handler(&mut self, mut stream: Stream) -> Result<OnEOF, MachineStub> {