diff options
author | Luca Bruno <lucabru@src.gnome.org> | 2013-06-11 23:02:44 +0200 |
---|---|---|
committer | Luca Bruno <lucabru@src.gnome.org> | 2013-06-11 23:07:16 +0200 |
commit | 73e553ac3488d641fb08b275bcf2636e3cf0de67 (patch) | |
tree | 8fa7995b9d3cee870be6b5b51cbca357d4cdf6bc /vala/valaproperty.vala | |
parent | a3c2589cf39f9dd6efcb403e47c68e1b0fba76d5 (diff) | |
download | vala-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.vala | 18 |
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; |