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