This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: define-simple-class + non-default constructor = invalid Java class created


Hi Per,

this was a false alarm! Sorry for the trouble. The jd decompiler was to blame! It shows the same wrong code for classes generated by Java compiler either.

Regards,
Vladimir

On 06.11.2012 04:52, Per Bothner wrote:
On 11/05/2012 01:38 PM, Vladimir Tsichevski wrote:
Hi,

compiling this [define-simple-class with non-default constructor]
...
results in the class with bad non-default constructor (output created
with jd-decompiler):

public class Test
{
   private Long id;
   private String firstName;

   public Test(Long arg1, String arg2)
   {
     String fn;
     this.id = nid;
     this.firstName = fn;
   }
}

I'm a bit confused. This output suggests you compiled Test *not* in Test.scm, hence a separate module-class. When I do that, the generated bytecode looks fine to me. I haven't tried jd-decompiler since I couldn't see a simple way to download it (as a standalone command-line application).

I would guess a limitation/bug in jd-decompiler.  Note it is
not a goal of Kawa to produce bytecode than can be easily decompiled.
(It is not a goal to do the opposite either.)

When I compile with the source in file Test.scm, I get a Kawa compiler
crash. Ooops. I checked in a fix for that crash. If after you still have
problems, send me the output from gnu.bytecode.dump on Test.class.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]