Skip to content

Alias method loaded from cache throws NoMethodError on inspect #1737

@4lllex

Description

@4lllex

Example:

driver = RDoc::RI::Driver.new
array_append = driver.stores.first.load_method("Array", "#append")

p array_append
# rdoc (7.2.0) lib/rdoc/code_object/method_attr.rb:299:in 'RDoc::MethodAttr#inspect': undefined method 'name' # for an instance of Array (NoMethodError)
#
#    alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
#                                                            ^^^^^

pp array_append
# => [RDoc::AnyMethod Array#append public alias for push comment: #<RDoc::Comment:24b0 array.c "">]

def inspect # :nodoc:
alias_for = @is_alias_for ? " (alias for #{@is_alias_for.name})" : nil
visibility = self.visibility

def pretty_print(q) # :nodoc:
alias_for =
if @is_alias_for.respond_to? :name then
"alias for #{@is_alias_for.name}"
elsif Array === @is_alias_for then
"alias for #{@is_alias_for.last}"
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions