From 8396aa46131951cfe81f5925a6b8954f506fb419 Mon Sep 17 00:00:00 2001 From: sofia Date: Fri, 25 Jul 2025 21:27:21 +0300 Subject: [PATCH] Fix casting indexed accesses --- reid/src/mir/typecheck/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/reid/src/mir/typecheck/mod.rs b/reid/src/mir/typecheck/mod.rs index 1df3323..1f2d4f6 100644 --- a/reid/src/mir/typecheck/mod.rs +++ b/reid/src/mir/typecheck/mod.rs @@ -125,6 +125,12 @@ impl TypeKind { (TypeKind::UserPtr(val1), TypeKind::UserPtr(val2)) => { Ok(TypeKind::UserPtr(Box::new(val1.narrow_into(val2)?))) } + (TypeKind::Array(val1, len1), TypeKind::Array(val2, len2)) => { + if len1 != len2 { + return Err(ErrorKind::TypesIncompatible(self.clone(), other.clone())); + } + Ok(TypeKind::Array(Box::new(val1.narrow_into(val2)?), *len1)) + } _ => Err(ErrorKind::TypesIncompatible(self.clone(), other.clone())), } }