On Mon May 10 07:31:39 2010, richardh wrote:
> See IRC May 10
> @.x[1 .. +@x] is not being treated (rakudo dies) in the same way as @y[1
> .. +@y]
>
> In particular:
>
> finanalyst: rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for
> @y[1 .. +@y]; .say for @.x; .say for @.x[1 ..^ [email protected]] } };my AB $y
> .=new(:x(1,2,3)); $y.aa;
> p6eval: rakudo 3d3893: OUTPUT«23123No applicable candidates found
> to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:Mu :
> Int $i;; *%_)Mu : Block $b;; *%_)Mu : !whatever_dispatch_helper ;;
> *%_)current instr.: '!postcircumfix:<[ ]>' pc 11329
> (src/builtins/Role.pir:26)»
This now says:
20:02 < [Coke]> rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for
@y[1 .. +@y]; .say for @.x; .say for @.x[1 ..^ [email protected]] } };my AB
$y.=new(:x(1,2,3)); $y.aa;
20:02 <+p6eval> rakudo 38165a: OUTPUT«23Any()12323»
Is this correct and closable?
> More detail:
>
> finanalyst: rakudo: my @x=1,2,3,4; .say for @x[1 ..^ +@x]
> p6eval: rakudo 3d3893: OUTPUT«234»
> finanalyst: works
> finanalyst: rakudo: class AB{has @.x; method aa { .say for @.x; .say for
> @.x[1 ..^ [email protected]] } };my AB $y .=new(:x(1,2,3)); $y.aa;
> p6eval: rakudo 3d3893: OUTPUT«123No applicable candidates found to
> dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:Mu :
> Int $i;; *%_)Mu : Block $b;; *%_)Mu : !whatever_dispatch_helper ;;
> *%_)current instr.: '!postcircumfix:<[ ]>' pc 11329
> (src/builtins/Role.pir:26)»
> finanalyst: doesnt work
> masak: that is indeed odd.
> colomon: ah, I believe that's an array-handling bug.
> moritz_: seems like @.x is not the same kind of array as @x
> moritz_: rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.WHAT
> p6eval: rakudo 3d3893: OUTPUT«Array()»
> colomon: ran into this same sort of problem passing @x as an argument.
> moritz_: rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.PARROT
> p6eval: rakudo 3d3893: OUTPUT«Array»
> finanalyst: rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for
> @y; .say for @.x; .say for @.x[1 ..^ [email protected]] } };my AB $y
> .=new(:x(1,2,3)); $y.aa;
> p6eval: rakudo 3d3893: OUTPUT«123123No applicable candidates found
> to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:Mu :
> Int $i;; *%_)Mu : Block $b;; *%_)Mu : !whatever_dispatch_helper ;;
> *%_)current instr.: '!postcircumfix:<[ ]>' pc 11329
> (src/builtins/Role.pir:26)»
> masak: rakudo: class A { has @.x }; say A.new(:x(1, 2, 3)).x.WHAT
> p6eval: rakudo 3d3893: OUTPUT«Array()»
> finanalyst: rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for
> @y[1 .. +@y]; .say for @.x; .say for @.x[1 ..^ [email protected]] } };my AB $y
> .=new(:x(1,2,3)); $y.aa;
> p6eval: rakudo 3d3893: OUTPUT«23123No applicable candidates found
> to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:Mu :
> Int $i;; *%_)Mu : Block $b;; *%_)Mu : !whatever_dispatch_helper ;;
> *%_)current instr.: '!postcircumfix:<[ ]>' pc 11329
> (src/builtins/Role.pir:26)»
> finanalyst: definitely treating @y and @.x differently
> moritz_: rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for
> @!x[1..^+@!x] } }; AB.new(:x[1, 2, 3]).aa
> p6eval: rakudo 3d3893: OUTPUT«No applicable candidates found to dispatch
> to for 'postcircumfix:<[ ]>'. Available candidates are:Mu : Int $i;;
> *%_)Mu : Block $b;; *%_)Mu : !whatever_dispatch_helper ;;
> *%_)current instr.: '!postcircumfix:<[ ]>' pc 11329
> (src/builtins/Role.pir:26)»
> - envi^home has joined the room
> colomon: rakudo: sub foo(@a) { .say for @a[1 ..^ +@a] }; my @a = 1... 4;
> foo(@a)
> p6eval: rakudo 3d3893: OUTPUT«234»
>
> - 18:25 -
> colomon: hmmm....
> finanalyst: shall i post a rakudobug?
> * colomon still thinks it's related to a rakudobug from a couple of
> weeks ago...
> colomon: finanalyst: yes.
>
>
--
Will "Coke" Coleda