From 740ce02a0f3e2b96b11c5de3db7cb93725b40c90 Mon Sep 17 00:00:00 2001 From: Solomon Foster Date: Thu, 25 Feb 2010 17:59:13 -0500 Subject: [PATCH 1/4] Turn on S32-array/delete.t. --- t/spectest.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/spectest.data b/t/spectest.data index a8fa17ba17f..2d5076f74f9 100644 --- a/t/spectest.data +++ b/t/spectest.data @@ -413,7 +413,7 @@ S29-any/isa.t S29-context/sleep.t S29-conversions/ord_and_chr.t #icu ## S32-array/create.t -# S32-array/delete.t +S32-array/delete.t S32-array/elems.t S32-array/end.t # S32-array/exists.t From 7ce3765cedd60758f436789fd9c8424e0ad65087 Mon Sep 17 00:00:00 2001 From: Jonathan Worthington Date: Fri, 26 Feb 2010 00:03:16 +0100 Subject: [PATCH 2/4] Fix up .+ and .* with multis. --- src/glue/dispatch.pir | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/glue/dispatch.pir b/src/glue/dispatch.pir index cb33a4970c5..fc420fceb7f 100644 --- a/src/glue/dispatch.pir +++ b/src/glue/dispatch.pir @@ -165,10 +165,15 @@ Implements the .* operator. Calls one or more matching methods. =cut .sub '!dispatch_.*' - .param pmc invocant - .param string method_name - .param pmc pos_args :slurpy - .param pmc named_args :slurpy :named + .param pmc call_sig :call_sig + + # Deconstruct call signature (no caller side :call_sig yet). + .local pmc invocant, pos_args, named_args + .local string method_name + invocant = shift call_sig + method_name = shift call_sig + (pos_args, named_args) = '!deconstruct_call_sig'(call_sig) + unshift call_sig, invocant # Set up result list. .local pmc result_list @@ -200,9 +205,7 @@ Implements the .* operator. Calls one or more matching methods. push result_list, res_parcel goto it_loop is_multi: - # XXX To do: need a call_sig - die 'Multis and .* NYI.' - #$P0 = $P0.'find_possible_candidates'(call_sig) + $P0 = $P0.'find_possible_candidates'(call_sig) multi_it = iter $P0 multi_it_loop: unless multi_it goto it_loop From 6ffe11a1dcdf010f35893c2e382780cd39aed996 Mon Sep 17 00:00:00 2001 From: Jonathan Worthington Date: Fri, 26 Feb 2010 00:03:51 +0100 Subject: [PATCH 3/4] Just rely on code thingies stringifying sanely; means Parrot subs just work in the role composer too. --- src/metamodel/RoleToClassApplier.nqp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/metamodel/RoleToClassApplier.nqp b/src/metamodel/RoleToClassApplier.nqp index 78a4cf967af..3240ef5c5bb 100644 --- a/src/metamodel/RoleToClassApplier.nqp +++ b/src/metamodel/RoleToClassApplier.nqp @@ -24,7 +24,7 @@ class Perl6::Metamodel::RoleToClassApplier; sub has_method($target, $name, $local) { my @methods := $target.HOW.methods($target, :local($local)); for @methods { - if $_.name eq $name { return 1; } + if $_ eq $name { return 1; } } return 0; } From 3be16bb47d9dff3b967f6eccdf34af2d7a817961 Mon Sep 17 00:00:00 2001 From: Jonathan Worthington Date: Fri, 26 Feb 2010 00:04:06 +0100 Subject: [PATCH 4/4] We now pass S12-methods/calling_sets.t again. --- t/spectest.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/spectest.data b/t/spectest.data index 2d5076f74f9..ea71f7717a3 100644 --- a/t/spectest.data +++ b/t/spectest.data @@ -354,7 +354,7 @@ S12-enums/anonymous.t S12-introspection/parents.t S12-introspection/roles.t # S12-introspection/walk.t -# S12-methods/calling_sets.t +S12-methods/calling_sets.t S12-methods/calling_syntax.t # S12-methods/chaining.t S12-methods/class-and-instance.t