From: Marc-André Lureau Date: Thu, 28 Jan 2010 23:56:46 +0000 (+0100) Subject: Enforce protected member restrictions X-Git-Tag: 0.7.10~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9a06f450b9801c1f79e5819185e1af84e7dba3c5;p=thirdparty%2Fvala.git Enforce protected member restrictions Fixes bug 592577. --- diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index ceb2840ee..a3ea746f0 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -549,7 +549,15 @@ public class Vala.MemberAccess : Expression { member.used = true; - if (access == SymbolAccessibility.PRIVATE) { + if (access == SymbolAccessibility.PROTECTED) { + var subtype = (analyzer.current_class != null && analyzer.current_class.is_subtype_of ((TypeSymbol) member.parent_symbol)); + + if (!subtype) { + error = true; + Report.error (source_reference, "Access to protected member `%s' denied".printf (member.get_full_name ())); + return false; + } + } else if (access == SymbolAccessibility.PRIVATE) { var target_type = member.parent_symbol; bool in_target_type = false;