From 9a06f450b9801c1f79e5819185e1af84e7dba3c5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc-Andr=C3=A9=20Lureau?= Date: Fri, 29 Jan 2010 00:56:46 +0100 Subject: [PATCH] Enforce protected member restrictions Fixes bug 592577. --- vala/valamemberaccess.vala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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; -- 2.47.3