Project

General

Profile

ActionsLike0

Bug #14232

closed

Unused refinement still breaks method search

Added by shugo (Shugo Maeda) over 7 years ago. Updated about 7 years ago.

Status:
Closed
Target version:
-
[ruby-dev:50390]

Description

Given the following t.rb:

module A
  def foo
    puts "A#foo"
    super
  end
end

class B
  def foo
    puts "B#foo"
  end
end

class C < B
  include A

  def foo
    puts "C#foo"
    super
  end
end

module D
  refine A do
    def foo
    end
  end
end

C.new.foo

Even if D is not used, B#foo cannot be called by super in A#foo:

$ ruby t.rb
C#foo
A#foo
Traceback (most recent call last):
        2: from t.rb:30:in `<main>'
        1: from t.rb:19:in `foo'
t.rb:4:in `foo': super: no superclass method `foo' for #<C:0x00005623950b74f8> (NoMethodError)
#1

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

  • Status changed from Assigned to Closed
#2

Updated by nagachika (Tomoyuki Chikanaga) about 7 years ago

  • Backport changed from 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED

Updated by nagachika (Tomoyuki Chikanaga) about 7 years ago

  • Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: REQUIRED, 2.5: REQUIRED

Updated by nagachika (Tomoyuki Chikanaga) about 7 years ago

  • Backport changed from 2.3: DONTNEED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: DONE, 2.5: REQUIRED

Updated by naruse (Yui NARUSE) about 7 years ago

  • Backport changed from 2.3: DONTNEED, 2.4: DONE, 2.5: REQUIRED to 2.3: DONTNEED, 2.4: DONE, 2.5: DONE
ActionsLike0

Also available in: Atom PDF