From: bryce Date: Thu, 11 Jan 2001 03:00:56 +0000 (+0000) Subject: * parse.y (resolve_expression_name): Permit instance variables from X-Git-Tag: upstream/4.9.2~96647 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=877e4397ab19abf090c2438fb00c388aeb72472b;p=platform%2Fupstream%2Flinaro-gcc.git * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38892 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bf0b323..9b9dd58 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,10 @@ +2001-01-11 Bryce McKinlay + + * 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 * class.c (build_utf8_ref): Remove last argument in call to diff --git a/gcc/java/parse.y b/gcc/java/parse.y index a59e198..873de30 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -8954,7 +8954,8 @@ resolve_expression_name (id, orig) } /* 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)); @@ -9320,7 +9321,8 @@ resolve_qualified_expression_name (wfl, found_decl, where_found, type_found) (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;