summaryrefslogtreecommitdiff
path: root/vala/valaproperty.vala
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2013-06-11 23:02:44 +0200
committerLuca Bruno <lucabru@src.gnome.org>2013-06-11 23:07:16 +0200
commit73e553ac3488d641fb08b275bcf2636e3cf0de67 (patch)
tree8fa7995b9d3cee870be6b5b51cbca357d4cdf6bc /vala/valaproperty.vala
parenta3c2589cf39f9dd6efcb403e47c68e1b0fba76d5 (diff)
downloadvala-73e553ac3488d641fb08b275bcf2636e3cf0de67.tar.gz
codegen: Support non-auto property initializer in gobjects
Fixes bug 701978
Diffstat (limited to 'vala/valaproperty.vala')
-rw-r--r--vala/valaproperty.vala18
1 files changed, 17 insertions, 1 deletions
diff --git a/vala/valaproperty.vala b/vala/valaproperty.vala
index 82cfff125..8a8ced49b 100644
--- a/vala/valaproperty.vala
+++ b/vala/valaproperty.vala
@@ -132,7 +132,17 @@ public class Vala.Property : Symbol, Lockable {
/**
* Specifies the default value of this property.
*/
- public Expression initializer { get; set; }
+ public Expression initializer {
+ get {
+ return _initializer;
+ }
+ set {
+ _initializer = value;
+ _initializer.parent_node = this;
+ }
+ }
+
+ private Expression _initializer;
private bool lock_used = false;
@@ -250,6 +260,12 @@ public class Vala.Property : Symbol, Lockable {
}
}
+ public override void replace_expression (Expression old_node, Expression new_node) {
+ if (initializer == old_node) {
+ initializer = new_node;
+ }
+ }
+
private void find_base_properties () {
if (base_properties_valid) {
return;