add check step to all type comparisons
This commit is contained in:
@@ -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" ||
|
||||||
|
|||||||
Reference in New Issue
Block a user