class Logic::Eq < Logic::BinaryOperator def operation = :== def errors(stable_ids = []) errors = [] if !Logic.compatible_type?(@left, @right) errors += ["les types sont incompatibles : #{self}"] end errors + @left.errors(stable_ids) + @right.errors(stable_ids) end def ==(other) self.class == other.class && [@left, @right].permutation.any? { |p| p == [other.left, other.right] } end end