[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

is it bug?

Chung Chung

7/18/2007 2:02:00 PM

Hi, all
[root@home1 ~]# ruby -v
ruby 1.9.0 (2007-06-30 patchlevel 0) [i686-linux]
[root@home1 ~]# irb
irb(main):001:0> class C
irb(main):002:1> def C.hello
irb(main):003:2> p "helloc"
irb(main):004:2> end
irb(main):005:1> end
=> nil
irb(main):006:0> class A < C
irb(main):007:1> def A.hello
irb(main):008:2> p "C #{hello}"
irb(main):009:2> end
irb(main):010:1> hello
irb(main):011:1> end
(irb):8:in `hello': stack level too deep (SystemStackError)
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
from (irb):8:in `hello'
... 6881 levels...

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

3 Answers

Stefan Rusterholz

7/18/2007 2:03:00 PM

0

Chung Chung wrote:
> Hi, all
> [root@home1 ~]# ruby -v
> ruby 1.9.0 (2007-06-30 patchlevel 0) [i686-linux]
> [root@home1 ~]# irb
> irb(main):001:0> class C
> irb(main):002:1> def C.hello
> irb(main):003:2> p "helloc"
> irb(main):004:2> end
> irb(main):005:1> end
> => nil
> irb(main):006:0> class A < C
> irb(main):007:1> def A.hello
> irb(main):008:2> p "C #{hello}"
> irb(main):009:2> end
> irb(main):010:1> hello
> irb(main):011:1> end

It is not a bug. You recursively call A.hello. You want:
p "C #{super}"

Regards
Stefan

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

Daniel Martin

7/18/2007 2:41:00 PM

0

Quoting Chung Chung <bkeh12@gmail.com>:

> Hi, all
> [root@home1 ~]# ruby -v
> ruby 1.9.0 (2007-06-30 patchlevel 0) [i686-linux]
> [root@home1 ~]# irb
> irb(main):001:0> class C
> irb(main):002:1> def C.hello
> irb(main):003:2> p "helloc"
> irb(main):004:2> end
> irb(main):005:1> end
> => nil
> irb(main):006:0> class A < C
> irb(main):007:1> def A.hello
> irb(main):008:2> p "C #{hello}"
> irb(main):009:2> end
> irb(main):010:1> hello
> irb(main):011:1> end
> (irb):8:in `hello': stack level too deep (SystemStackError)
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> from (irb):8:in `hello'
> ... 6881 levels...

Why would you consider this a bug? What on earth were you expecting
it to do? You define a method with no arguments that always calls
itself, and then you call it, and ruby complains from the infinite
recursion.

What else would you have it do?

--
@/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/;
map{y/X_/\n /;print}map{pop@$_}@/for@/


Chung Chung

7/19/2007 3:11:00 PM

0

Daniel Martin wrote:

> What else would you have it do?

I hope ruby can contextual valid...:-)


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