This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gcjx] Patch: FYI: revert earlier patch
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 15 Jan 2005 16:25:17 -0700
- Subject: [gcjx] Patch: FYI: revert earlier patch
- Reply-to: tromey at redhat dot com
I'm checking this in on the gcjx branch.
This reverts an earlier patch but adds commentary explaining the
problem and eventual solution. No time today.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* model/fieldref.cc (resolve): Reverted earlier patch, with
commentary.
Index: model/fieldref.cc
===================================================================
RCS file: /cvs/gcc/gcc/gcjx/model/Attic/fieldref.cc,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 fieldref.cc
--- model/fieldref.cc 15 Jan 2005 22:35:28 -0000 1.1.2.2
+++ model/fieldref.cc 15 Jan 2005 23:27:24 -0000
@@ -171,8 +171,17 @@
else
{
// This is an unqualified reference to a field. In this case we
- // use the implicit qualifier, which is the current class.
- qualifier = scope->get_current_class ();
+ // use the implicit qualifier. FIXME: if we have a qualified
+ // reference like 'Derived.field', but the field is actually
+ // declared in 'Base', we will wind up with 'Base.field' here,
+ // which is incorrect. Fixing this requires extracting more
+ // information from classify_expression_name(). Even the
+ // commented out code here doesn't work, since for something
+ // like 'System.out.println()', nothing tells the field reference
+ // that it is qualified.
+ // qualifier = (qualified ? field->get_declaring_class ()
+ // : scope->get_current_class ());
+ qualifier = field->get_declaring_class ();
}
set_type (field->type ());