class TypeProf::Core::Type
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/type.rb, line 32 def self.default_param_map(genv, ty) ty = ty.base_type(genv) instance_ty = ty.is_a?(Type::Instance) ? ty : Type::Instance.new(genv, ty.mod, []) # TODO: type params singleton_ty = ty.is_a?(Type::Instance) ? Type::Singleton.new(genv, ty.mod) : ty { "*self": Source.new(ty), "*instance": Source.new(instance_ty), "*class": Source.new(singleton_ty), } end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/type.rb, line 18 def self.extract_hash_value_type(s) if s.start_with?("Hash[") && s.end_with?("]") type = RBS::Parser.parse_type(s) if type.is_a?(RBS::Types::Union) type.types.map {|t| t.args[1].to_s }.join(" | ") else type.args[1].to_s end else s end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/type.rb, line 5 def self.new(genv, *args) genv.type_table[[self] + args] ||= super(genv, *args) end
This new method does memoize creation of types
: (GlobalEnv, *untyped) -> instance
Calls superclass method
BasicObject::new
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/type.rb, line 14 def self.strip_array(s) s.start_with?("Array[") && s.end_with?("]") ? s[6..-2] || raise : s end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/type.rb, line 9 def self.strip_parens(s) #s =~ /\A\((.*)\)\z/ ? $1 : s s.start_with?("(") && s.end_with?(")") ? s[1..-2] || raise : s end