Sha256: 4768949f4465a6188be18349a8b9b49380309534ca7a351ef3d923bdddd58e16
Contents?: true
Size: 1.37 KB
Versions: 4
Compression:
Stored size: 1.37 KB
Contents
require 'delegate' module Yoda module Model class Environment class ValueResolveContext # @return [ValueResolveContext] def self.empty new end # @return [RBS::Types::t, nil] attr_reader :self_type # @param self_type [RBS::Types::t, nil] def initialize(self_type: nil) @self_type = self_type end # @param type [RBS::Types::t] def wrap(type) WrappedType.new(type, context: self) end class WrappedType < SimpleDelegator # @return [ValueResolveContext] attr_reader :context # @param type [RBS::Types::t] # @param context [ValueResolveContext] def initialize(type, context:) @context = context super(type) end def act_as_type_wrapper? wrapped_type end # @return [WrappedType] def propage_context_to(another_type) context.wrap(another_type) end # @param type [RBS::Types::t] def wrapped_type __getobj__ end # @param pp [PP] def pretty_print(pp) pp.object_group(self) do pp.breakable pp.text "type:" pp.pp wrapped_type end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems