From: Jürg Billeter Date: Fri, 10 Sep 2010 15:57:44 +0000 (+0200) Subject: Report error for private virtual methods X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a55c8f1ac59fdb828c0fb9d6e230990ceec7c94;p=thirdparty%2Fvala.git Report error for private virtual methods --- diff --git a/vala/valamethod.vala b/vala/valamethod.vala index a29ab0592..1f475912f 100644 --- a/vala/valamethod.vala +++ b/vala/valamethod.vala @@ -912,11 +912,16 @@ public class Vala.Method : Symbol { if (analyzer.current_struct != null) { if (is_abstract || is_virtual || overrides) { + error = true; Report.error (source_reference, "A struct member `%s' cannot be marked as override, virtual, or abstract".printf (get_full_name ())); return false; } } else if (overrides && base_method == null) { Report.error (source_reference, "%s: no suitable method found to override".printf (get_full_name ())); + } else if ((is_abstract || is_virtual || overrides) && access == SymbolAccessibility.PRIVATE) { + error = true; + Report.error (source_reference, "Private member `%s' cannot be marked as override, virtual, or abstract".printf (get_full_name ())); + return false; } if (!external_package && !overrides && !hides && get_hidden_member () != null) {