get_bit returns error kind which makes the error spanned
This commit is contained in:
parent
7b5a9aed89
commit
edb03dec94
|
@ -61,11 +61,8 @@ impl Display for ErrorKind {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<io::Error> for Error {
|
||||
impl From<io::Error> for ErrorKind {
|
||||
fn from(e: io::Error) -> Self {
|
||||
Self {
|
||||
kind: ErrorKind::IOError(e),
|
||||
span: 0..0,
|
||||
}
|
||||
Self::IOError(e)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -220,7 +220,10 @@ impl ExecEnv {
|
|||
println!("{value}");
|
||||
} else {
|
||||
print!("{value}");
|
||||
stdout().lock().flush()?;
|
||||
stdout()
|
||||
.lock()
|
||||
.flush()
|
||||
.map_err(|e| Error::new(e.into(), stmt.span.clone()))?;
|
||||
}
|
||||
}
|
||||
Stmt::Dim { ident, init } => {
|
||||
|
@ -313,7 +316,10 @@ impl ExecEnv {
|
|||
let mut value = 0;
|
||||
for _ in 0..READ_BITS {
|
||||
value <<= 1;
|
||||
value += self.get_bit()? as isize;
|
||||
value += self
|
||||
.get_bit()
|
||||
.map_err(|e| Error::new(e, stmt.span.clone()))?
|
||||
as isize;
|
||||
}
|
||||
|
||||
self.assign(assignable, Value::Int(value))?;
|
||||
|
@ -517,7 +523,7 @@ impl ExecEnv {
|
|||
|
||||
/// Get a single bit from the bit buffer, or refill it from
|
||||
/// standard input if it is empty.
|
||||
fn get_bit(&mut self) -> Result<bool, Error> {
|
||||
fn get_bit(&mut self) -> Result<bool, ErrorKind> {
|
||||
const BITS_PER_BYTE: u8 = 8;
|
||||
|
||||
if self.read_buf.is_empty() {
|
||||
|
|
Loading…
Reference in a new issue