From 8412075175d78ed2e73f405d67dde6457689a624 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Sat, 24 Apr 2021 01:13:59 +0200 Subject: [PATCH] Fix pointer type compatibility checks --- src/main/scala/millfork/env/Thing.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/scala/millfork/env/Thing.scala b/src/main/scala/millfork/env/Thing.scala index a9941c52..d74b579e 100644 --- a/src/main/scala/millfork/env/Thing.scala +++ b/src/main/scala/millfork/env/Thing.scala @@ -107,6 +107,12 @@ case class PointerType(name: String, targetName: String, var target: Option[Type override def pointerTargetName: String = targetName override def alignment: MemoryAlignment = NoAlignment + + override def isCompatible(other: Type): Boolean = this == other || ((target -> other) match { + case (Some(t1), PointerType(_, _, Some(t2))) => t1 == t2 + case (_, PointerType(_, t, _)) => targetName == t + case _ => false + }) } case class FunctionPointerType(name: String, paramTypeName:String, returnTypeName: String, var paramType: Option[Type], var returnType: Option[Type]) extends VariableType {