Moose icon indicating copy to clipboard operation
Moose copied to clipboard

Remove bogus code in Moose::Meta::TypeConstraint::equals

Open mephinet opened this issue 7 years ago • 4 comments

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.

mephinet avatar Nov 24 '17 14:11 mephinet

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).

karenetheridge avatar Nov 24 '17 23:11 karenetheridge

PS. we might want to add an overload from == to this equals method here. strange that it was omitted.

karenetheridge avatar Nov 25 '17 00:11 karenetheridge

Yeah, I was wondering if this might be a bug rather than dead code.

autarch avatar Nov 25 '17 00:11 autarch

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?

jozef avatar Jan 07 '20 14:01 jozef