]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
genieparser: Use dedicated Class.add_constructor/destructor() methods
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 17 Nov 2018 12:34:07 +0000 (13:34 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sat, 17 Nov 2018 14:35:17 +0000 (15:35 +0100)
vala/valagenieparser.vala

index 93374b443fdd70c4686b8fee067116933d8193fd..8ed3bab4d271bdc2e587d9696d27db19a50fc91b 100644 (file)
@@ -2729,43 +2729,9 @@ public class Vala.Genie.Parser : CodeVisitor {
                } else if (sym is Property) {
                        cl.add_property ((Property) sym);
                } else if (sym is Constructor) {
-                       var c = (Constructor) sym;
-                       if (c.binding == MemberBinding.INSTANCE) {
-                               if (cl.constructor != null) {
-                                       Report.error (c.source_reference, "class already contains a constructor");
-                               }
-                               cl.constructor = c;
-                       } else if (c.binding == MemberBinding.CLASS) {
-                               if (cl.class_constructor != null) {
-                                       Report.error (c.source_reference, "class already contains a class constructor");
-                               }
-                               cl.class_constructor = c;
-                       } else {
-                               if (cl.static_constructor != null) {
-                                       Report.error (c.source_reference, "class already contains a static constructor");
-                               }
-                               cl.static_constructor = c;
-                       }
-
+                       cl.add_constructor ((Constructor) sym);
                } else if (sym is Destructor) {
-                       var d = (Destructor) sym;
-                       if (d.binding == MemberBinding.STATIC) {
-                               if (cl.static_destructor != null) {
-                                       Report.error (d.source_reference, "class already contains a static destructor");
-                               }
-                               cl.static_destructor = (Destructor) d;
-                       } else if (d.binding == MemberBinding.CLASS) {
-                               if (cl.class_destructor != null) {
-                                       Report.error (d.source_reference, "class already contains a class destructor");
-                               }
-                               cl.class_destructor = (Destructor) d;
-                       } else {
-                               if (cl.destructor != null) {
-                                       Report.error (d.source_reference, "class already contains a destructor");
-                               }
-                               cl.destructor = (Destructor) d;
-                       }
-
+                       cl.add_destructor ((Destructor) sym);
                } else {
                        Report.error (sym.source_reference, "unexpected declaration in class");
                }