gcj/278: full hiearchy of interfaces not checked?
osk@hem.passagen.se
osk@hem.passagen.se
Mon Jul 3 02:30:00 GMT 2000
>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:
More information about the Java-prs
mailing list