Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

found a weird case where MS eats compilation errors #16

Closed
barefootcoder opened this issue Apr 15, 2011 · 3 comments
Closed

found a weird case where MS eats compilation errors #16

barefootcoder opened this issue Apr 15, 2011 · 3 comments

Comments

@barefootcoder
Copy link
Contributor

Fix and failing test case here: barefootcoder/method-signatures@e0cd9bc9897a486e2bb3

Basically, it looks like the fact that there's a pending error in $@ is confusing the eval inside PPI (specifically, PPI::Node's _wanted(), which is called from find_first()). Localizing $@ inside split_proto() fixes the issue.

@schwern
Copy link
Contributor

schwern commented Apr 17, 2011

On 2011.4.16 1:47 AM, barefootcoder wrote:

Fix and failing test case here: barefootcoder/method-signatures@e0cd9bc9897a486e2bb3

Basically, it looks like the fact that there's a pending error in $@ is confusing
the eval inside PPI (specifically, PPI::Node's _wanted(), which is called from
find_first()). Localizing $@ inside split_proto() fixes the issue.

Hmm, PPI::Node is vulnerable to $@ pollution all over the place. Would be
nice to have that fixed.

Good catch.

Can I cherry pick that fix into master?

E: "Would you want to maintain a 5000 line Perl program?"
d: "Why would you write a 5000 line program?"

@barefootcoder
Copy link
Contributor Author

Good catch.

Thanx! Purely accidental that I found it, of course. I was hacking
up something quick for something else entirely and I decided to use MS
(partially to get a feel for how useful it could be outside of Moose,
and partially just to get more testing in on it), and I just happened
to create a syntax error while I was refactoring. But the error it
showed was the one from split_proto() about not being able to find a
statement, which I knew was bogus. And after that it was a matter of
just beating at it until I figured it out (debugger was useless on
this one; I ended up filling up PPI::Node with good ol' fashioned
print STDERR's).

Can I cherry pick that fix into master?

Cherrypick away, monsieur. I've tried to be clear in the issues as to
what's part of the MSM project vs what's a separate issue. Anything
outside of MSM stuff could be cherrypicked, and I'd say quite a bit
of it probably should be cherrypicked. The POD/comments only stuff,
the fix for comments inside signatures ... also possibly the change to
fix type-checking non-supplied optional params (though that one is a
slightly more pervasive change, so I'd understand if you wanted to
hold off there). All the commits should be independent and not give
you any merge conflicts, I would think. (In retrospect, I really
should have put the MSM stuff onto a separate branch, but I didn't
think of it until after I'd already started and I didn't want to stop
and figure out how to move stuff around in git. So, sorry about
that.)

@schwern
Copy link
Contributor

schwern commented Jul 3, 2011

Merged. The PPI issue is open as #28.

@schwern schwern closed this as completed Jul 3, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants