From 3dd4140cdc251a3c274bb21cc4db8a3d37cd3039 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Tue, 12 Mar 2019 10:18:03 +0100 Subject: [PATCH] parser: Implicit creation method of abstract classes must be protected --- tests/girwriter/girtest.vapi-expected | 2 +- vala/valagenieparser.vala | 2 +- vala/valaparser.vala | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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); } -- 2.47.2