class TypeProf::Core::AST::IncludeMetaNode::AttrReaderMetaNode
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 50 def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end
Calls superclass method
TypeProf::Core::AST::Node::new
Public Instance Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 62 def attrs = { args: } def req_positionals = [] def opt_positionals = [] def post_positionals = [] def rest_positionals = nil def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 78 def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 72 def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 69 def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new end end end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 65 def opt_positionals = [] def post_positionals = [] def rest_positionals = nil def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 66 def post_positionals = [] def rest_positionals = nil def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 68 def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new end end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 64 def req_positionals = [] def opt_positionals = [] def post_positionals = [] def rest_positionals = nil def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 70 def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/ast/meta.rb, line 67 def rest_positionals = nil def req_keywords = [] def opt_keywords = [] def rest_keywords = nil def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def install0(genv) @args.each do |arg| ivar_name = :"@#{ arg }" ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, ivar_name) ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) end Source.new end end class AttrAccessorMetaNode < Node def initialize(raw_node, lenv) super(raw_node, lenv) @args = [] raw_node.arguments.arguments.each do |raw_arg| @args << raw_arg.value.to_sym if raw_arg.type == :symbol_node end # TODO: error for non-LIT # TODO: fine-grained hover end attr_reader :args def attrs = { args: } def mname_code_range(name) idx = @args.index(name.to_sym) # TODO: support string args node = @raw_node.arguments.arguments[idx].location TypeProf::CodeRange.from_node(node) end def define0(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod end end def define_copy(genv) @args.map do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.add_def(self) mod.remove_def(@prev_node) mod end super(genv) end def undefine0(genv) @args.each do |arg| mod = genv.resolve_ivar(lenv.cref.cpath, false, :"@#{ arg }") mod.remove_def(self) end end def install0(genv) @args.zip(@static_ret) do |arg, ive| ivar_box = @changes.add_ivar_read_box(genv, @lenv.cref.cpath, false, :"@#{ arg }") ret_box = @changes.add_escape_box(genv, ivar_box.ret) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, arg, FormalArguments::Empty, [ret_box]) vtx = Vertex.new(self) @changes.add_edge(genv, vtx, ive.vtx) f_args = FormalArguments.new([vtx], [], nil, [], [], [], nil, nil) @changes.add_method_def_box(genv, @lenv.cref.cpath, false, :"#{ arg }=", f_args, [ret_box]) end Source.new end end