Sha256: 945f95d889f02bb1fb6d2456cd1a840a1a30e270f9e72d12cbc21b23d8f72498

Contents?: true

Size: 1023 Bytes

Versions: 4

Compression:

Stored size: 1023 Bytes

Contents

module Yoda
  module Model
    module TypeExpressions
      class DuckType < Base
        attr_reader :method_name

        # @param method_name [String]
        def initialize(method_name)
          @method_name = method_name
        end

        # @param another [Object]
        def eql?(another)
          another.is_a?(DuckType) &&
          method_name == another.method_name
        end

        def hash
          [self.class.name, method_name].hash
        end

        # @param paths [LexicalContext]
        # @return [self]
        def change_root(paths)
          self
        end

        # @param registry [Registry]
        # @return [Array<Store::Objects::Base>]
        def resolve(registry)
          []
        end

        # @param env [Environment]
        def to_rbs_type(env)
          # TODO: Implement as interface type
          RBS::Types::Bases::Any.new(location: nil)
        end

        # @return [String]
        def to_s
          "##{method_name}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/model/type_expressions/duck_type.rb
yoda-language-server-0.10.0 lib/yoda/model/type_expressions/duck_type.rb
yoda-language-server-0.9.0 lib/yoda/model/type_expressions/duck_type.rb
yoda-language-server-0.8.0 lib/yoda/model/type_expressions/duck_type.rb