add check step to all type comparisons

This commit is contained in:
2025-08-19 22:44:05 -06:00
parent df1083df3b
commit 05856f5d07

View File

@@ -89,6 +89,7 @@ class TypeSystem {
this.result[comparison.right.name] = comparison.left; this.result[comparison.right.name] = comparison.left;
comparison.right = comparison.left; comparison.right = comparison.left;
} }
// check
if ( if (
comparison.left.typeUsage !== "UnknownTypeUsage" && comparison.left.typeUsage !== "UnknownTypeUsage" &&
comparison.right.typeUsage !== "UnknownTypeUsage" comparison.right.typeUsage !== "UnknownTypeUsage"
@@ -121,6 +122,13 @@ class TypeSystem {
comparison.left.arguments[comparison.operation.argNum]; comparison.left.arguments[comparison.operation.argNum];
comparison.right = comparison.left.arguments[comparison.operation.argNum]; comparison.right = comparison.left.arguments[comparison.operation.argNum];
} }
// check
if (
argument.typeUsage !== "UnknownTypeUsage" &&
comparison.right.typeUsage !== "UnknownTypeUsage"
) {
compareTypes(argument, comparison.right);
}
} }
// return type // return type
if (comparison.operation.operation === "return") { if (comparison.operation.operation === "return") {
@@ -145,6 +153,13 @@ class TypeSystem {
this.result[comparison.right.name] = comparison.left.returnType; this.result[comparison.right.name] = comparison.left.returnType;
comparison.right = comparison.left.returnType; comparison.right = comparison.left.returnType;
} }
// check
if (
comparison.left.returnType.typeUsage !== "UnknownTypeUsage" &&
comparison.right.typeUsage !== "UnknownTypeUsage"
) {
compareTypes(comparison.left.returnType, comparison.right);
}
} }
if ( if (
comparison.left.typeUsage === "UnknownTypeUsage" || comparison.left.typeUsage === "UnknownTypeUsage" ||