This is the mail archive of the
java-prs@sourceware.cygnus.com
mailing list for the Java project.
gcj/278: full hiearchy of interfaces not checked?
- To: java-gnats at sourceware dot cygnus dot com
- Subject: gcj/278: full hiearchy of interfaces not checked?
- From: osk at hem dot passagen dot se
- Date: 3 Jul 2000 09:26:29 -0000
- Reply-To: osk at hem dot passagen dot se
- Resent-Cc: java-prs at sourceware dot cygnus dot com, green at cygnus dot com
- Resent-Reply-To: java-gnats@sourceware.cygnus.com, osk@hem.passagen.se
>Number: 278
>Category: gcj
>Synopsis: full hiearchy of interfaces not checked?
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apbianco
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jul 03 02:30:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Oskar Liljeblad
>Release: unknown-1.0
>Organization:
>Environment:
Debian GNU/Linux
egcs 2.96 2000-06-26
libgcj 2000-07-02
>Description:
Run the script below to generate the java code, then compile it.
$ sh the_script
$ gcj -C bava/awt/*.java
bava/awt/Dialog.java: In class `bava.awt.Dialog':
bava/awt/Dialog.java: In method `bava.awt.Dialog()':
bava/awt/Dialog.java:4: Can't find method `setLayout(Lbava/awt/BorderLayout;)' in type `bava.awt.Dialog'.
setLayout(new BorderLayout());
If BorderLayout only extends LayoutManager and not LayoutManager2, everything
is fine. So it seems that the class hierarchy of interfaces are not checked
in arguments.
Oskar Liljeblad (osk@hem.passagen.se)
----------------------------------------------------------------------
mkdir bava bava/awt
cd bava/awt
echo >BorderLayout.java "package bava.awt;"
echo >>BorderLayout.java "public class BorderLayout implements LayoutManager2 { }"
echo >LayoutManager2.java "package bava.awt;"
echo >>LayoutManager2.java "public interface LayoutManager2 extends LayoutManager { }"
echo >LayoutManager.java "package bava.awt;"
echo >>LayoutManager.java "public interface LayoutManager { }"
cat >Dialog.java <<__END__
package bava.awt;
public class Dialog {
public Dialog() {
setLayout(new BorderLayout());
}
public void setLayout(LayoutManager layout_manager) { }
}
__END__
----------------------------------------------------------------------
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: