Sha256: a62db8cace02df1cf9abc5760ba9813c0fd77a66d85f0282758e2eb918f55d71

Contents?: true

Size: 714 Bytes

Versions: 4

Compression:

Stored size: 714 Bytes

Contents

module Yoda
  module Typing
    module Types
      class Instance < Base
        # @return [Stor::Objects::NamespaceObject]
        attr_reader :klass

        # @param klass [Store::Objects::NamespaceObject] class object for the instance.
        def initialize(klass:)
          @klass = klass
        end

        def to_expression
          case klass.kind
          when :meta_class
            Model::TypeExpressions::ModuleType.new(klass.path)
          when :class, :module
            Model::TypeExpressions::InstanceType.new(klass.path)
          else
            fail NotImplementedError
          end
        end

        def to_type_string
          klass.path
        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/typing/types/instance.rb
yoda-language-server-0.10.0 lib/yoda/typing/types/instance.rb
yoda-language-server-0.9.0 lib/yoda/typing/types/instance.rb
yoda-language-server-0.8.0 lib/yoda/typing/types/instance.rb