Comments (3)
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?"
from method-signatures.
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.)
from method-signatures.
Merged. The PPI issue is open as #28.
from method-signatures.
Related Issues (20)
- Allow bare sigils as placeholders HOT 1
- Benchmarks vs 5.20
- Type checks should be done after default is applied. HOT 3
- Line numbers offset when signature has spaces in it HOT 9
- Type checking of defaults
- Multi-line defaults are broken HOT 1
- ($a, $b?, $c) should be a compile error HOT 1
- Type error in earlier Perl versions on Windows
- Anonymous functions which are a key in a hash will get the line number of the hash declaration. HOT 2
- Become a wrapper around Function::Parameters HOT 10
- Change Any::Moose for Moo HOT 4
- Getting "The type is unrecognized" if spaces are added HOT 1
- libmethod-signatures-perl: depends on libdata-alias-perl, broken with Perl 5.24
- support Type::Tiny HOT 33
- Support 'method BUILD' for Moo.* HOT 7
- Data::Alias is still required in 20131010 HOT 3
- t/thread-bug.t crashes on Mac OS X with threading enabled HOT 4
- Deprecate `@_` in favor of `...` HOT 1
- Move to evalEmpire org HOT 4
- Allow attributes between sub name and signature HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from method-signatures.