Skip to content

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

Open
mephinet wants to merge 1 commit into
moose:masterfrom
mephinet:topic/TypeConstraint-dead-code
Open

Remove bogus code in Moose::Meta::TypeConstraint::equals#157
mephinet wants to merge 1 commit into
moose:masterfrom
mephinet:topic/TypeConstraint-dead-code

Conversation

@mephinet

Copy link
Copy Markdown
Contributor

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.

@karenetheridge

Copy link
Copy Markdown
Member

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 dabed76, 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

Copy link
Copy Markdown
Member

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

@autarch

autarch commented Nov 25, 2017

Copy link
Copy Markdown
Member

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

@jozef

jozef commented Jan 7, 2020

Copy link
Copy Markdown

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 05a5763 which made all of those a waste of cpu cycles. If anyone wants to consider parents, should use is_a_type_of(), or?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants