class Steep::Interface::Block
def +(other)
def +(other) optional = self.optional? || other.optional? type = Function.new( params: self.type.params + other.type.params, return_type: AST::Types::Union.build(types: [self.type.return_type, other.type.return_type]), location: nil ) self_types = [self.self_type, other.self_type].compact self.class.new( type: type, optional: optional, self_type: unless self_types.empty? AST::Types::Union.build(types: self_types) end ) end