From: Peter Karman Date: Fri, 15 Jan 2010 06:35:30 +0000 (+0000) Subject: in what case is a numeric comparison called for? I cannot think of one. Is this the... X-Git-Tag: 5.80019~16 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=fa7a60aac97d8a9501a2cdca54f519752c12731a in what case is a numeric comparison called for? I cannot think of one. Is this the best way to test? --- diff --git a/lib/Catalyst/Component.pm b/lib/Catalyst/Component.pm index fe0ef6f..b0bb7b5 100644 --- a/lib/Catalyst/Component.pm +++ b/lib/Catalyst/Component.pm @@ -84,7 +84,7 @@ sub BUILDARGS { } elsif (Class::MOP::is_class_loaded($_[0]) && $_[0]->isa('Catalyst') && ref($_[1]) eq 'HASH') { $args = $_[1]; - } elsif ($_[0] == $_[1]) { + } elsif ($_[0] eq $_[1]) { $args = $_[1]; } else { $args = +{ @_ }; diff --git a/t/aggregate/unit_core_component.t b/t/aggregate/unit_core_component.t index 69ac6c0..9fb578a 100644 --- a/t/aggregate/unit_core_component.t +++ b/t/aggregate/unit_core_component.t @@ -1,4 +1,4 @@ -use Test::More tests => 22; +use Test::More tests => 23; use strict; use warnings; @@ -91,3 +91,18 @@ is_deeply([ MyApp->comp('Foo') ], \@complist, 'Fallthrough return ok'); is_deeply($args, [qw/foo3 bar3/], 'args passed to ACCEPT_CONTEXT ok'); } +# BUILDARGS logic +{ + { + package MyController; + @MyController::ISA = ('Catalyst::Controller'); + } + my $warning; + local $SIG{__WARN__} = sub { + $warning = shift; + diag($warning); + }; + my $controller = MyController->new('MyApp', undef); + like( $warning, qr/uninitialized value in string eq/, "no warning for == comparison"); + +}