procyon
procyon copied to clipboard
Procyon is a suite of Java metaprogramming tools, including a rich reflection API, a LINQ-inspired expression tree API for runtime code generation, and a Java decompiler.
For the StretchLines option to work properly, the code needs to be prepared first : - members re-ordered by original source line numbers (ReOrderMembersForLineStretchTransform) - field initializers from constructors need...
I find it helpful to have source attachment when using the jar as a dependency. All the procyon-* jars come with sources and javadoc except procyon-decompiler. With this change procyon-decompiler...
This PR inverts if conditions and statements when line numbers are in the wrong order. The next statements have sometimes inferior line numbers than then statements, making it impossible to...
I removed the temp file creation for the output with line numbers (-ln, --with-line-numbers) and instead I return a String in reformatFile(). This way I can re-use reformatFile() to get...
Decompilation stops at com/tangosol/coherence/component/util/windowedArray/ConcurrentWindowedArray. ``` 11:47:32 [FINE] JarTypeLoader: Attempting to load type: com/tangosol/coherence/component/util/windowedArray/ConcurrentWindowedArray... 11:47:32 [FINE] JarTypeLoader: Type loaded from C:\tools\test\coherence-14.1.1.0.7.jar!com/tangosol/coherence/component/util/windowedArray/ConcurrentWindowedArray.class. 11:47:32 [FINE] AstBuilder: Beginning bytecode AST construction for com/tangosol/coherence/component/util/windowedArray/ConcurrentWindowedArray.remove:(J)Ljava/lang/Object;... 11:47:32...
It's generating that code: ``` public G(final some 0) { super(); this.field = 0; } ``` from that bytecode: ``` DEFINE PUBLIC (Lsomething/some; 1)V A: ALOAD this INVOKESPECIAL java/lang/RuntimeException.()V ALOAD...
Can procyon rename invalid Java names which are heavily obfuscated?
This PR aims at several goals: - start using the formatting policy options that were unused until now (i.e in JavaFormattingOptions) - produce an output that is more ready for...
I have encountered an issue compiling a lambda using a closure in a nested lambda. This is the expression I am trying to generate and compile (the `getOrNull` method, included...
As far as I can tell, this works. Please test in your environment as well. Also, added the proposed fix for #49 This is a continuation of #35, this time...