[vala] Report error on duplicate constructor or destructor in class
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] Report error on duplicate constructor or destructor in class
- Date: Fri, 8 Jan 2010 22:00:45 +0000 (UTC)
commit edf34ae7a9e18334c817c58d5ae5c02a07083ac8
Author: Jürg Billeter <j bitron ch>
Date: Fri Jan 8 22:59:38 2010 +0100
Report error on duplicate constructor or destructor in class
Fixes bug 600581.
vala/valaparser.vala | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 04e8303..ea5df10 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -2180,19 +2180,37 @@ public class Vala.Parser : CodeVisitor {
} 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;
}
} 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;
}
} else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]