diff --git a/src/typechecker.rs b/src/typechecker.rs index d21f70a..9c76e8c 100644 --- a/src/typechecker.rs +++ b/src/typechecker.rs @@ -832,6 +832,18 @@ impl TypeChecker { } } } + UnOp::PreInc => { + if !matches!(typed_inner.ty, Type::Int | Type::Float) { + return Err(TypeError { + kind: TypeErrorKind::TypeMismatch( + Type::Int, + typed_inner.ty.clone(), + ), + span: inner.span.clone(), + }); + } + typed_inner.ty.clone() + } }; ( TypedExprKind::UnOp(op.clone(), Box::new(typed_inner)),