class TypeProf::Core::Type

Public Class Methods

default_param_map(genv, ty) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/type.rb, line 18
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
new(genv, *args) click to toggle source
This new method does memoize creation of types

: (GlobalEnv, *untyped) -> instance

Calls superclass method
# File typeprof-0.30.1/lib/typeprof/core/type.rb, line 5
def self.new(genv, *args)
  genv.type_table[[self] + args] ||= super(genv, *args)
end
strip_array(s) click to toggle source
# File typeprof-0.30.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
strip_parens(s) click to toggle source
# File typeprof-0.30.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