re PR java/20697 (Invalid Can't find method error on call to super)

PR java/20697
	* parse.y (find_most_specific_methods_list): Remove special case for
	inner classes.

From-SVN: r101270
This commit is contained in:
Bryce McKinlay 2005-06-23 15:00:50 +00:00 committed by Bryce McKinlay
parent fa47911c56
commit c0f6dc941d
4 changed files with 41 additions and 6 deletions

View file

@ -1,3 +1,9 @@
2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
PR java/20697
* parse.y (find_most_specific_methods_list): Remove special case for
inner classes.
2005-06-15 Tom Tromey <tromey@redhat.com> 2005-06-15 Tom Tromey <tromey@redhat.com>
PR libgcj/21906: PR libgcj/21906:

View file

@ -11416,13 +11416,9 @@ find_most_specific_methods_list (tree list)
if (argument_types_convertible (method_v, current_v)) if (argument_types_convertible (method_v, current_v))
{ {
if (valid_method_invocation_conversion_p if (valid_method_invocation_conversion_p
(DECL_CONTEXT (method_v), DECL_CONTEXT (current_v)) (DECL_CONTEXT (method_v), DECL_CONTEXT (current_v)))
|| (INNER_CLASS_TYPE_P (DECL_CONTEXT (current_v))
&& enclosing_context_p (DECL_CONTEXT (method_v),
DECL_CONTEXT (current_v))))
{ {
int v = (DECL_SPECIFIC_COUNT (current_v) += int v = (DECL_SPECIFIC_COUNT (current_v) += 1);
(INNER_CLASS_TYPE_P (DECL_CONTEXT (current_v)) ? 2 : 1));
max = (v > max ? v : max); max = (v > max ? v : max);
} }
} }

View file

@ -1,3 +1,7 @@
2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
* testsuite/libjava.compile/PR20697.java: New test-case.
2005-06-22 Kelley Cook <kcook@gcc.gnu.org> 2005-06-22 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.am (SUBDIRS): Use append for conditional. * Makefile.am (SUBDIRS): Use append for conditional.

View file

@ -0,0 +1,29 @@
public class PR20697
{
public interface I
{
public void m();
}
public static class A2 implements I
{
public void m()
{
return;
}
}
}
class Test extends PR20697.A2
{
public void m()
{
return;
}
public void n()
{
m();
}
}