6 ms·
Java8 plugin that adds support for persistent local variables
- jannotti 13y agoPretty 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.
- cpeterso 13y agoSimply 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.
- depsypher 13y agoBut why? Is it just to prove you can (then fair enough) or is there a good reason to use this that I'm missing?
- saryant 13y agoI'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.
- revscat 13y agoThis 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.
- huherto 13y agoI 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.