Sha256: cec1ebb8c29cecc833e80fdff1bf0721f1bf4fb58054c2c706f06e124a984600

Contents?: true

Size: 578 Bytes

Versions: 514

Compression:

Stored size: 578 Bytes

Contents

# frozen_string_literal: true
# typed: true

module T::Private::Types
  # Wraps a proc for a type alias to defer its evaluation.
  class TypeAlias < T::Types::Base

    def initialize(callable)
      @callable = callable
    end

    def aliased_type
      @aliased_type ||= T::Utils.coerce(@callable.call)
    end

    # overrides Base
    def name
      aliased_type.name
    end

    # overrides Base
    def recursively_valid?(obj)
      aliased_type.recursively_valid?(obj)
    end

    # overrides Base
    def valid?(obj)
      aliased_type.valid?(obj)
    end
  end
end

Version data entries

514 entries across 508 versions & 3 rubygems

Version Path
sorbet-runtime-0.5.11170 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11164 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11163 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11162 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11158 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11156 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11155 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11152 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11151 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11150 lib/types/private/types/type_alias.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/private/types/type_alias.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11148 lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11147 lib/types/private/types/type_alias.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/private/types/type_alias.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/private/types/type_alias.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/private/types/type_alias.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/private/types/type_alias.rb
sorbet-runtime-0.5.11146 lib/types/private/types/type_alias.rb
study_line-0.1.3 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/private/types/type_alias.rb