From 7e1376a14cd5b2a8d1bd75524262b725ffe07f86 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Thu, 11 Jan 2001 03:00:56 +0000 Subject: [PATCH] parse.y (resolve_expression_name): Permit instance variables from enclosing context in super constructor call. * 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. From-SVN: r38892 --- gcc/java/ChangeLog | 7 +++++++ gcc/java/parse.y | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bf0b323c288..9b9dd586035 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 a59e1987aab..873de308287 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; -- 2.30.2