Module: Steep::AST::Builtin

Defined in:
lib/steep/ast/builtin.rb

Defined Under Namespace

Classes: Type

Constant Summary collapse

Object =
Type.new("::Object")
BasicObject =
Type.new("::BasicObject")
Array =
Type.new("::Array", arity: 1)
Range =
Type.new("::Range", arity: 1)
Hash =
Type.new("::Hash", arity: 2)
Module =
Type.new("::Module")
Class =
Type.new("::Class")
Integer =
Type.new("::Integer")
Float =
Type.new("::Float")
String =
Type.new("::String")
Symbol =
Type.new("::Symbol")
TrueClass =
Type.new("::TrueClass")
FalseClass =
Type.new("::FalseClass")
Regexp =
Type.new("::Regexp")
NilClass =
Type.new("::NilClass")
Proc =
Type.new("::Proc")
Kernel =
Type.new("::Kernel")
Method =
Type.new("::Method")

Class Method Summary collapse

Class Method Details

.any_typeObject



75
76
77
# File 'lib/steep/ast/builtin.rb', line 75

def self.any_type
  AST::Types::Any.instance
end

.bool_typeObject



79
80
81
# File 'lib/steep/ast/builtin.rb', line 79

def self.bool_type
  AST::Types::Boolean.instance
end

.bottom_typeObject



83
84
85
# File 'lib/steep/ast/builtin.rb', line 83

def self.bottom_type
  AST::Types::Bot.instance
end

.false_typeObject



99
100
101
# File 'lib/steep/ast/builtin.rb', line 99

def self.false_type
  AST::Types::Literal.new(value: false)
end

.nil_typeObject



71
72
73
# File 'lib/steep/ast/builtin.rb', line 71

def self.nil_type
  AST::Types::Nil.instance
end

.optional(type) ⇒ Object



91
92
93
# File 'lib/steep/ast/builtin.rb', line 91

def self.optional(type)
  AST::Types::Union.build(types: [type, nil_type])
end

.top_typeObject



87
88
89
# File 'lib/steep/ast/builtin.rb', line 87

def self.top_type
  AST::Types::Top.instance
end

.true_typeObject



95
96
97
# File 'lib/steep/ast/builtin.rb', line 95

def self.true_type
  AST::Types::Literal.new(value: true)
end