From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20747 invoked by alias); 25 Jan 2005 20:41:15 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 20715 invoked by uid 48); 25 Jan 2005 20:41:13 -0000 Date: Tue, 25 Jan 2005 20:41:00 -0000 From: "tromey at gcc dot gnu dot org" To: java-prs@gcc.gnu.org Message-ID: <20050125204108.19629.tromey@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug java/19629] New: simple anonymous constructor bug X-Bugzilla-Reason: CC X-SW-Source: 2005-q1/txt/msg00187.txt.bz2 List-Id: test case: public class z { public static void main(String[] args) throws Throwable { final String name = "java_cup.terminal"; Class k; ClassLoader cl = new ClassLoader(null) { }; k = cl.loadClass(name); System.out.println(k); System.out.println(k.getProtectionDomain().getCodeSource()); System.out.println(k.getClassLoader()); } } gcj gives: opsy. gcj -C z.java z.java: In class 'z$1': z.java: In constructor '(z,java.lang.String,java.lang.Object)': z.java:9: error: No constructor matching ‘(z,java.lang.String,java.lang.Object)’ found in class ‘java.lang.ClassLoader’. ClassLoader cl = new ClassLoader(null) { }; ^ 1 error This is wrong. It looks like variable capture is confusing creation of the super() call in the anonymous class constructor. -- Summary: simple anonymous constructor bug Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tromey at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19629