* java/parse.y (fix_constructors): Test if a CALL_EXPR invokes
`this'. If so, don't build instance initializers.
From-SVN: r43743
+2001-07-03 Jeff Sturm <jsturm@one-point.com>
+
+ * parse.y (fix_constructors): Test if a CALL_EXPR invokes
+ `this'. If so, don't build instance initializers.
+
2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
* lang.c: #include diagnostic.h
else
{
int found = 0;
+ int invokes_this = 0;
tree found_call = NULL_TREE;
tree main_block = BLOCK_EXPR_BODY (body);
tree ii; /* Instance Initializer */
{
case CALL_EXPR:
found = CALL_EXPLICIT_CONSTRUCTOR_P (body);
+ if (CALL_THIS_CONSTRUCTOR_P (body))
+ invokes_this = 1;
body = NULL_TREE;
break;
case COMPOUND_EXPR:
}
/* Insert the instance initializer block right after. */
- if ((ii = build_instance_initializer (mdecl)))
+ if (!invokes_this && (ii = build_instance_initializer (mdecl)))
compound = add_stmt_to_compound (compound, NULL_TREE, ii);
/* Fix the constructor main block if we're adding extra stmts */