From 65eb876cb4284a3d96c5910e21a2153ce55c5535 Mon Sep 17 00:00:00 2001 From: Moritz Lenz Date: Mon, 2 Aug 2010 15:07:17 +0200 Subject: [PATCH] attempt to produce more awesme error message when you do map { hash => 1} --- src/core/Any-list.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/Any-list.pm b/src/core/Any-list.pm index c360605680f..acd98cfcfd4 100644 --- a/src/core/Any-list.pm +++ b/src/core/Any-list.pm @@ -34,6 +34,13 @@ augment class Any { our multi method map(&block) { self.list.map(&block); } + our multi method map(%block) { + die "Can't call map() with a Hash argument, Callable required\n" + ~ "You probably wrote a Hash composer accidentally - try to\n" + ~ "disambiguate the it with a ; directly after the opening brace"; + + } + our multi method sort(&by = &infix:) { self.list.sort(&by); } method rotate($n = 1) { self.list.rotate($n); } @@ -355,7 +362,7 @@ proto sub max($by, *@values) { @values.max($by); } proto sub minmax($by, *@values) { @values.minmax($by); } proto sub uniq(@values) { @values.uniq; } proto sub pick ($num, :$replace, *@values) { @values.pick($num, :$replace); } -proto sub map(&mapper, *@values) { @values.map(&mapper); } +proto sub map($mapper, *@values) { @values.map($mapper); } proto sub kv(@array) { @array.kv; } proto sub keys(@array) { @array.keys; } proto sub values(@array) { @array.values; }