Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi submethods inherit (but shouldn't) in Rakudo #1722

Closed
p6rt opened this issue Apr 24, 2010 · 7 comments
Closed

Multi submethods inherit (but shouldn't) in Rakudo #1722

p6rt opened this issue Apr 24, 2010 · 7 comments
Labels

Comments

@p6rt
Copy link

p6rt commented Apr 24, 2010

Migrated from rt.perl.org#74646 (status was 'resolved')

Searchable as RT74646$

@p6rt
Copy link
Author

p6rt commented Apr 24, 2010

From @masak

<masak> rakudo​: class A { multi method foo($a) { "general" }; multi
submethod foo(Str $a) { "specific" } }; class B is A {}; say
.new.foo("OH HAI") for A, B
<p6eval> rakudo 55a62a​: OUTPUT«specific␤specific␤»
<masak> should be "specific\ngeneral\n".
<masak> (since submethods don't inherit)
* masak submits rakudobug
<masak> rakudo​: class A { submethod foo { say "OH HAI" } }; class B is
A {}; B.new.foo
<p6eval> rakudo 55a62a​: OUTPUT«Method 'foo' not found for invocant of
class 'B' [...]
<masak> works for only methods but not for multi submethods.

@p6rt
Copy link
Author

p6rt commented Oct 8, 2011

From @coke

On Sat Apr 24 15​:08​:08 2010, masak wrote​:

<masak> rakudo​: class A { multi method foo($a) { "general" }; multi
submethod foo(Str $a) { "specific" } }; class B is A {}; say
.new.foo("OH HAI") for A, B
<p6eval> rakudo 55a62a​: OUTPUT«specific␤specific␤»

Still happening in rakudo 88c5a5.

<masak> should be "specific\ngeneral\n".
<masak> (since submethods don't inherit)
* masak submits rakudobug
<masak> rakudo​: class A { submethod foo { say "OH HAI" } }; class B is
A {}; B.new.foo
<p6eval> rakudo 55a62a​: OUTPUT«Method 'foo' not found for invocant of
class 'B' [...]
<masak> works for only methods but not for multi submethods.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Oct 8, 2011

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Nov 17, 2012

From @coke

On Sat Oct 08 13​:00​:27 2011, coke wrote​:

On Sat Apr 24 15​:08​:08 2010, masak wrote​:

<masak> rakudo​: class A { multi method foo($a) { "general" }; multi
submethod foo(Str $a) { "specific" } }; class B is A {}; say
.new.foo("OH HAI") for A, B
<p6eval> rakudo 55a62a​: OUTPUT«specific␤specific␤»

Still happening in rakudo 88c5a5.

Still happening in rakudo 112307b

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Jun 28, 2015

From @labster

On Sat Nov 17 14​:37​:29 2012, coke wrote​:

On Sat Oct 08 13​:00​:27 2011, coke wrote​:

On Sat Apr 24 15​:08​:08 2010, masak wrote​:

<masak> rakudo​: class A { multi method foo($a) { "general" }; multi
submethod foo(Str $a) { "specific" } }; class B is A {}; say
.new.foo("OH HAI") for A, B
<p6eval> rakudo 55a62a​: OUTPUT«specific␤specific␤»

Still happening in rakudo 88c5a5.

Still happening in rakudo 112307b

Still happening in rakudo f9dca91

@p6rt
Copy link
Author

p6rt commented Nov 13, 2015

From @jnthn

On Sat Apr 24 15​:08​:08 2010, masak wrote​:

<masak> rakudo​: class A { multi method foo($a) { "general" }; multi
submethod foo(Str $a) { "specific" } }; class B is A {}; say
.new.foo("OH HAI") for A, B
<p6eval> rakudo 55a62a​: OUTPUT«specific␤specific␤»
<masak> should be "specific\ngeneral\n".
<masak> (since submethods don't inherit)
* masak submits rakudobug
<masak> rakudo​: class A { submethod foo { say "OH HAI" } }; class B is
A {}; B.new.foo
<p6eval> rakudo 55a62a​: OUTPUT«Method 'foo' not found for invocant of
class 'B' [...]
<masak> works for only methods but not for multi submethods.

Fixed, and tests in S12-methods/multi.t unfudged.

/jnthn

@p6rt
Copy link
Author

p6rt commented Nov 13, 2015

@jnthn - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Nov 13, 2015
@p6rt p6rt added the Bug label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant