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.42.7~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3dd4140cdc251a3c274bb21cc4db8a3d37cd3039;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 b7c681755..17ec6aaa7 100644 --- a/vala/valagenieparser.vala +++ b/vala/valagenieparser.vala @@ -2705,7 +2705,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 67544a9b5..14a73640a 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -2587,7 +2587,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); }