This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gcjx] Patch: FYI: field annotations fix
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 02 Dec 2005 09:48:43 -0700
- Subject: [gcjx] Patch: FYI: field annotations fix
- Reply-to: tromey at redhat dot com
I'm checking this in on the gcjx branch.
We were pushing a warning scope in the field resolution code before
field annotations had been resolved. This fixes the problem by moving
the code into the model_variable_decl resolver instead.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* model/field.cc (resolve_classes): Don't push warning scope.
* model/variable.cc (resolve_classes): Resolve annotations
first. Push warning scope.
(resolve): Likewise.
Index: model/field.cc
===================================================================
--- model/field.cc (revision 107604)
+++ model/field.cc (working copy)
@@ -82,7 +82,6 @@
if (state < CLASSES)
{
state = CLASSES;
- resolution_scope::push_warnings warn_holder (scope, this);
model_variable_decl::resolve_classes (scope);
}
}
@@ -134,9 +133,11 @@
if (state < RESOLVED)
{
state = RESOLVED;
- resolution_scope::push_warnings warn_holder (scope, this);
model_variable_decl::resolve (scope);
+ // Ideally this warning push would be done in
+ // model_variable_decl.
+ resolution_scope::push_warnings warn_holder (scope, this);
if (scope->warn_bad_serialization_field ())
check_serialization_fields ();
}
Index: model/variable.cc
===================================================================
--- model/variable.cc (revision 107604)
+++ model/variable.cc (working copy)
@@ -24,14 +24,16 @@
void
model_variable_decl::resolve_classes (resolution_scope *scope)
{
+ resolve_annotation_classes (scope);
+ resolution_scope::push_warnings warn_holder (scope, this);
decltype->resolve (scope);
- resolve_annotation_classes (scope);
}
void
model_variable_decl::resolve (resolution_scope *scope)
{
resolve_annotations (scope);
+ resolution_scope::push_warnings warn_holder (scope, this);
decltype->resolve (scope); // fixme redundant for fields...
if (initializer)
{