This is the mail archive of the java-prs@sources.redhat.com mailing list for the Java project.


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

Re: gcj/283: GCJ fails to compile inner classes which extend another inner class


The following reply was made to PR gcj/283; it has been noted by GNATS.

From: Mark Wielaard <mark@klomp.org>
To: idstewart@softhome.net
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: gcj/283: GCJ fails to compile inner classes which extend another inner class
Date: Sat, 15 Jul 2000 12:51:51 +0200

 Hi,
 
 > > Note that in your example you try to extend InnerB from a non static
 > > innerclass InnerA which is not legal. Making InnerA a public static class
 > > would be a valid example.
 > 
 > That, unfortunately, is not an option.  I'm working on a clean-room 
 > implementation of Swing.  Each of the core classes implement the Accessible 
 > interface by returning an inner class which extends 
 > JComponent.AccessibleJComponent, a protected abstract inner class.
 
 I see what you are trying to do. You found (another) bug which is different
 from gjc/256 (but which can only be shown when the gcj/256 patch is applied).
 
 So to show this bug you have to not only extend the InnerA from InnerB
 but also OuterB from OuterA:
 
 public class OuterA {
     public class InnerA {
     }
 }
 
 public class OuterB extends OuterA {
     public class InnerB extends OuterA.InnerA {
     }
 }
 
 Now gcj will give the following error:
 
 OuterB.java: In class `OuterB$InnerB':
 OuterB.java: In method `<init>(OuterB)':
 OuterB.java:4: No enclosing instance for inner class `OuterA$InnerA' is in scope; an explicit one must be provided when creating this inner class.
 }
 ^
 1 error
 
 Which is wrong since OuterB is in scope and is an instance of OuterA.
 
 Note that as Bryce noted you want to make sure that you don't have
 any class files around since that gives yet another obscure error message.
 
 Thanks,
 
 Mark
 
 P.S. Please CC java-gnats so your comments will make it into the bug database.
 P.P.S. Where can I find this Swing clean room implementation?
 Are you going to merge it with Classpath/libgcj?

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