From: Luca Bruno Date: Thu, 14 Aug 2014 12:28:21 +0000 (+0200) Subject: parser: Report error only for private instance fields in structs X-Git-Tag: 0.25.2~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0adb081fc11e563b037e19b2b85bcdc93a437c3;p=thirdparty%2Fvala.git parser: Report error only for private instance fields in structs Fixes bug 734787 --- diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 89218ebdc..41d10efaf 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -2574,16 +2574,17 @@ public class Vala.Parser : CodeVisitor { var f = new Field (id, type, null, get_src (begin), comment); f.access = access; - if (parent is Struct && f.access != SymbolAccessibility.PUBLIC) { - Report.error (f.source_reference, "accessibility of struct fields can only be `public`"); - } - set_attributes (f, attrs); if (ModifierFlags.STATIC in flags) { f.binding = MemberBinding.STATIC; } else if (ModifierFlags.CLASS in flags) { f.binding = MemberBinding.CLASS; } + + if (parent is Struct && f.access != SymbolAccessibility.PUBLIC && f.binding == MemberBinding.INSTANCE) { + Report.error (f.source_reference, "accessibility of struct fields can only be `public`"); + } + if (ModifierFlags.ABSTRACT in flags || ModifierFlags.VIRTUAL in flags || ModifierFlags.OVERRIDE in flags) {