private function visitBinaryOpCommon(Node $node)
{
$left = UnionType::fromNode($this->context, $this->code_base, $node->children['left']);
$right = UnionType::fromNode($this->context, $this->code_base, $node->children['right']);
if (!$left->genericArrayElementTypes()->isEmpty() && $left->nonGenericArrayTypes()->isEmpty() && !$right->canCastToUnionType(ArrayType::instance()->asUnionType())) {
Issue::maybeEmit($this->code_base, $this->context, Issue::TypeComparisonFromArray, $node->lineno ?? 0, (string) $right);
} elseif (!$right->genericArrayElementTypes()->isEmpty() && $right->nonGenericArrayTypes()->isEmpty() && !$left->canCastToUnionType(ArrayType::instance()->asUnionType())) {
// and the same for the left side
Issue::maybeEmit($this->code_base, $this->context, Issue::TypeComparisonToArray, $node->lineno ?? 0, (string) $left);
}
return BoolType::instance()->asUnionType();
}