Hacker News new | past | comments | ask | show | jobs | submit login
Java8 plugin that adds support for persistent local variables (github.com/metabrain)
12 points by RohitS5 on May 28, 2013 | hide | past | favorite | 6 comments



But why? Is it just to prove you can (then fair enough) or is there a good reason to use this that I'm missing?


This seems more easily parsed by humans. My immediate faction to this is a positive one. Instead of having to scan the entire class to tell whether or not a variable is static, it's declared in the method itself.


I don think it is very useful or practical. A similar effect can be done using static variables declared outside the methods.

But it is a good example on how to write a plugin, with annotations and instrumentation. So the interesting parts are on the code implementing this functionality.


I'm a little unclear on its purpose myself.

Also, it seems like (if abused) it would make unit testing really cumbersome without some sort of side-effecting mechanism to expose these persistent variables.


Pretty neat. A simple transform, but I prefer this style and miss C's static in some cases.

The doc says that the transformed variable name uses the method name for a suffix to avoid name clashing. But it needs to use the signature, right? Else you would have clashes for two methods with the same name (but different arguments).

I think it should also use $, since that's the convention to avoid clashes with user defined names.


Simply appending a number to the variable name would be adequate to prevent name conflicts. Each method would only access its own static variable, so fancy C++-style name mangling would be overkill.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: