class TypeProf::Core::AST::SigFuncType::SigTyAliasNode::SigTyUnionNode::SigTyIntersectionNode::SigTySingletonNode::SigTyInstanceNode::SigTyTupleNode::SigTyRecordNode::SigTyVarNode::SigTyOptionalNode::SigTyLiteralNode::SigTyProcNode
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 921 def initialize(raw_decl, lenv) super(raw_decl, lenv) # raw_decl.type is an RBS::Types::Function, we need to wrap it in a MethodType if raw_decl.type method_type = RBS::MethodType.new( type: raw_decl.type, type_params: [], block: raw_decl.block, location: raw_decl.location ) @type = AST.create_rbs_func_type(method_type, nil, raw_decl.block, lenv) else @type = nil end end
Calls superclass method
TypeProf::Core::AST::Node::new
Public Instance Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 946 def contravariant_vertex0(genv, changes, vtx, subst) # For now, just return the base Proc type without the function signature details # TODO: Create a proper Type::Proc with the function signature changes.add_edge(genv, Source.new(genv.proc_type), vtx) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 940 def covariant_vertex0(genv, changes, vtx, subst) # For now, just return the base Proc type without the function signature details # TODO: Create a proper Type::Proc with the function signature changes.add_edge(genv, Source.new(genv.proc_type), vtx) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 957 def show "^(...)" end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 938 def subnodes = { type: } def covariant_vertex0(genv, changes, vtx, subst) # For now, just return the base Proc type without the function signature details # TODO: Create a proper Type::Proc with the function signature changes.add_edge(genv, Source.new(genv.proc_type), vtx) end def contravariant_vertex0(genv, changes, vtx, subst) # For now, just return the base Proc type without the function signature details # TODO: Create a proper Type::Proc with the function signature changes.add_edge(genv, Source.new(genv.proc_type), vtx) end def typecheck(genv, changes, vtx, subst) # TODO: proper check AST.typecheck_for_module(genv, changes, genv.proc_type.mod, [], vtx, subst) end def show "^(...)" end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/sig_type.rb, line 952 def typecheck(genv, changes, vtx, subst) # TODO: proper check AST.typecheck_for_module(genv, changes, genv.proc_type.mod, [], vtx, subst) end