From: Rico Tzschichholz Date: Tue, 12 Mar 2019 09:18:03 +0000 (+0100) Subject: parser: Implicit creation method of abstract classes must be protected X-Git-Tag: 0.44.1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fac2cec7502e2a365ff3b0bf7a8e0742b5c30586;p=thirdparty%2Fvala.git parser: Implicit creation method of abstract classes must be protected --- diff --git a/tests/girwriter/girtest.vapi-expected b/tests/girwriter/girtest.vapi-expected index 0612f09ff..e18b7314d 100644 --- a/tests/girwriter/girtest.vapi-expected +++ b/tests/girwriter/girtest.vapi-expected @@ -2,7 +2,7 @@ namespace GirTest { [CCode (cheader_filename = "girtest.h")] public abstract class AbstractObjectTest : GLib.Object { - public AbstractObjectTest (); + protected AbstractObjectTest (); public abstract void method_int8_in (int8 param); public abstract void method_int8_inout (ref int8 param); public abstract void method_int8_out (out int8 param); diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala index e1bd9025b..99b4fba88 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -2689,7 +2689,7 @@ public class Vala.Genie.Parser : CodeVisitor { if (scanner.source_file.file_type == SourceFileType.SOURCE && cl.default_construction_method == null) { var m = new CreationMethod (cl.name, null, cl.source_reference); - m.access = SymbolAccessibility.PUBLIC; + m.access = (cl.is_abstract ? SymbolAccessibility.PROTECTED : SymbolAccessibility.PUBLIC); m.body = new Block (cl.source_reference); cl.add_method (m); } diff --git a/vala/valaparser.vala b/vala/valaparser.vala index dbc3b778e..2614dad72 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -2571,7 +2571,7 @@ public class Vala.Parser : CodeVisitor { if (scanner.source_file.file_type == SourceFileType.SOURCE && cl.default_construction_method == null) { var m = new CreationMethod (cl.name, null, cl.source_reference); - m.access = SymbolAccessibility.PUBLIC; + m.access = (cl.is_abstract ? SymbolAccessibility.PROTECTED : SymbolAccessibility.PUBLIC); m.body = new Block (cl.source_reference); cl.add_method (m); }