"super" bug

Hi all -

I misused the "super" keyword and I think I should have received an
error, but didn't.

I tried "super.my_method_name(..)" and got strange results. OK, fine,
I'm supposed to say "super(..)" or just "super". But shouldn't I get a
compilation error or something? Is the behavior of
"super.my_method_name(..)" even defined?

-larry

···

--
Posted via http://www.ruby-forum.com/.

sure it is

   ( the_object_returned = super ).my_method_name( 42 )

'super' in ruby is not an object - it defers to the method of the same name in
the parent class and returns whatever that does.

regards.

-a

···

On Tue, 13 Feb 2007, Larry Edelstein wrote:

Hi all -

I misused the "super" keyword and I think I should have received an
error, but didn't.

I tried "super.my_method_name(..)" and got strange results. OK, fine,
I'm supposed to say "super(..)" or just "super". But shouldn't I get a
compilation error or something? Is the behavior of
"super.my_method_name(..)" even defined?

--
we can deny everything, except that we have the possibility of being better.
simply reflect on that.
- the dalai lama

Larry Edelstein wrote:

Hi all -

I misused the "super" keyword and I think I should have received an
error, but didn't.

I tried "super.my_method_name(..)" and got strange results. OK, fine,
I'm supposed to say "super(..)" or just "super". But shouldn't I get a
compilation error or something? Is the behavior of
"super.my_method_name(..)" even defined?

-larry

as "a" already pointed out, super is a method call. I'd like to add,
that super and super() differ, super without parens calls the same
method in the parent class with all parameters passed to the current
method.

my regards

···

--
Posted via http://www.ruby-forum.com/\.

unknown wrote:

Ah, right...it invokes the specified method on whatever happens to be
returned by the call to the superclass's method.

It's the downside of weakly typed languages - they make it easy to get
an oddball result like this. (Of course not knowing how to actually use
the language helps, too, heh heh.)

-larry

···

On Tue, 13 Feb 2007, Larry Edelstein wrote:

Hi all -

I misused the "super" keyword and I think I should have received an
error, but didn't.

I tried "super.my_method_name(..)" and got strange results. OK, fine,
I'm supposed to say "super(..)" or just "super". But shouldn't I get a
compilation error or something? Is the behavior of
"super.my_method_name(..)" even defined?

sure it is

   ( the_object_returned = super ).my_method_name( 42 )

'super' in ruby is not an object - it defers to the method of the same
name in
the parent class and returns whatever that does.

regards.

-a

--
Posted via http://www.ruby-forum.com/\.