+2001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
+
+ * parse.y (resolve_expression_name): Permit instance variables from
+ enclosing context in super constructor call.
+ (resolve_qualified_expression_name): Permit enclosing class's qualified
+ "this" in super constructor call.
+
2001-01-10 Mark Mitchell <mark@codesourcery.com>
* class.c (build_utf8_ref): Remove last argument in call to
}
/* Instance variables can't appear as an argument of
an explicit constructor invocation */
- if (!fs && ctxp->explicit_constructor_p)
+ if (!fs && ctxp->explicit_constructor_p
+ && !enclosing_context_p (DECL_CONTEXT (decl), current_class))
{
parse_error_context
(id, "Can't reference `%s' before the superclass constructor has been called", IDENTIFIER_POINTER (name));
(wfl, "Keyword `this' used outside allowed context");
return 1;
}
- if (ctxp->explicit_constructor_p)
+ if (ctxp->explicit_constructor_p
+ && type == current_class)
{
parse_error_context (wfl, "Can't reference `this' before the superclass constructor has been called");
return 1;