Moose
Moose copied to clipboard
Remove bogus code in Moose::Meta::TypeConstraint::equals
While profiling some hot code I reviewed Moose::Meta::TypeConstraint::equals
, and think that the lower half of it is bogus and can be removed:
After the single "return 1" of the method, all following code will return undef and does not have any other side effects as far as I can tell - so I think it can be safely dropped.
All unittests are happy - but please double-check, as I'm by no means an export on the Moose meta classes.
I only have time for a one-minute drive-by presently, but it looks like most of the relevant history for this sub is in dabed765f6, which had additional code after all the return undef
stuff. Perhaps something important got lost along the way that we should bring back (along with tests that exercises that usecase).
PS. we might want to add an overload from ==
to this equals
method here. strange that it was omitted.
Yeah, I was wondering if this might be a bug rather than dead code.
Long before equals() was also checking parents and there was "return 1" at the end after all the current negative returns. It got removed in 05a5763cc which made all of those a waste of cpu cycles. If anyone wants to consider parents, should use is_a_type_of(), or?