public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* java/7298: Can't call method of outer class from inner constructor
@ 2002-07-12 18:46 jmr
  0 siblings, 0 replies; 2+ messages in thread
From: jmr @ 2002-07-12 18:46 UTC (permalink / raw)
  To: gcc-gnats


>Number:         7298
>Category:       java
>Synopsis:       Can't call method of outer class from inner constructor
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 12 18:46:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Jesse Rosenstock
>Release:        3.2 20020710 (experimental)
>Organization:
>Environment:
System: Linux churchill 2.4.3-12 #1 Fri Jun 8 15:05:56 EDT 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ./configure --prefix=/home/user/jmr/app/gcc
>Description:
	A method of an outer class cannot be called from the inner class
        constructor before the constructor for the inner class's superclass
        has been called.  The outer class has been constructed, so this
        should be allowed.
>How-To-Repeat:

	X.java:

        public class X {
            Object f() {
                return null;
            }
            class XX {
                XX() {
                    this(f());
                }

                XX(Object o) {
                }
            }
        }

        gcj -v X.java yields:

        Reading specs from /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
        Reading specs from /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/../../../libgcj.spec
        rename spec lib to liborig
        Configured with: ./configure --prefix=/home/user/jmr/app/gcc
        Thread model: single
        gcc version 3.2 20020710 (experimental)
         /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/jc1 X.java -fno-use-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-functions -quiet -dumpbase X.java -g1 -version -o /tmp/ccZQXE2X.s
        GNU Java version 3.2 20020710 (experimental) (i686-pc-linux-gnu)
                compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-85).
        Class path starts here:
            /home/user/jmr/gcj_test/inner2/
            /home/user/jmr/app/gcc/share/java/libgcj-3.2.jar/ (system) (zip)
        X.java: In class `X$XX':
        X.java: In constructor `(X)':
        X.java:7: error: Can't reference `this' before the superclass constructor has been called.
                       this(f());
                            ^
        1 error

        This works with javac.
>Fix:
	This could be worked around by passing a reference to the outer
        class into the constructor.

        public class X {
            Object f() {
                return null;
            }
            class XX {
                XX(X x) {
                    this(x.f());
                }

                XX(Object o) {
                }
            }
        }
>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: java/7298: Can't call method of outer class from inner constructor
@ 2003-05-12 20:26 Dara Hazeghi
  0 siblings, 0 replies; 2+ messages in thread
From: Dara Hazeghi @ 2003-05-12 20:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: Dara Hazeghi <dhazeghi@yahoo.com>
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: java/7298: Can't call method of outer class from inner constructor
Date: Mon, 12 May 2003 13:20:17 -0700

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
 trail&database=gcc&pr=7298
 
 Hello,
 
 I can confirm that this bug still occurs on gcc 3.2, 3.3 branch and  
 mainline (20030511) on i686-linux.
 
 Dara
 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-05-12 20:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-12 18:46 java/7298: Can't call method of outer class from inner constructor jmr
2003-05-12 20:26 Dara Hazeghi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).