]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
parser: Implicit creation method of abstract classes must be protected fac2cec7502e2a365ff3b0bf7a8e0742b5c30586
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 12 Mar 2019 09:18:03 +0000 (10:18 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 12 Mar 2019 11:01:33 +0000 (12:01 +0100)
tests/girwriter/girtest.vapi-expected
vala/valagenieparser.vala
vala/valaparser.vala

index 0612f09ffe7005e7815ad3515a4e9758053a8da8..e18b7314d3d82e1ef30c3f17a8e7b0fff2ca45e5 100644 (file)
@@ -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);
index e1bd9025b316bd03b296d767d8ce381d139bc6b2..99b4fba88a48a199d3321db8f32ac3a51ebd7690 100644 (file)
@@ -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);
                }
index dbc3b778e0fff574adcbd8cebad2bc583a77e566..2614dad72f5a460d080a83660c981d0da5704bdf 100644 (file)
@@ -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);
                }