diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2023-02-05 19:33:15 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2023-02-05 19:33:15 +0100 |
commit | 7e5024ae2694c5406310314933235b68d79b1fca (patch) | |
tree | 3df91a30736373efada658911b8c67a758ca675a | |
parent | 37dd373f66403f8db3581c9216a5bdfdf6925a5f (diff) | |
download | vala-7e5024ae2694c5406310314933235b68d79b1fca.tar.gz |
vala: Allow more general usage of PropertyAccessor.get_method()
-rw-r--r-- | codegen/valagirwriter.vala | 6 | ||||
-rw-r--r-- | vala/valapropertyaccessor.vala | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index f7c37d735..01987d4fc 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -776,7 +776,7 @@ public class Vala.GIRWriter : CodeVisitor { foreach (var prop in iface.get_properties ()) { if (prop.is_abstract || prop.is_virtual) { - if (prop.get_accessor != null) { + if (prop.get_accessor != null && prop.get_accessor.readable) { var m = prop.get_accessor.get_method (); write_indent (); buffer.append_printf("<field name=\"%s\"", m.name); @@ -1493,14 +1493,14 @@ public class Vala.GIRWriter : CodeVisitor { buffer.append_printf ("</property>\n"); } - if (prop.get_accessor != null) { + if (prop.get_accessor != null && prop.get_accessor.readable) { var m = prop.get_accessor.get_method (); if (m != null) { visit_method (m); } } - if (prop.set_accessor != null) { + if (prop.set_accessor != null && prop.set_accessor.writable) { var m = prop.set_accessor.get_method (); if (m != null) { visit_method (m); diff --git a/vala/valapropertyaccessor.vala b/vala/valapropertyaccessor.vala index 979239d2e..0fbf4d32f 100644 --- a/vala/valapropertyaccessor.vala +++ b/vala/valapropertyaccessor.vala @@ -128,7 +128,7 @@ public class Vala.PropertyAccessor : Subroutine { m.copy_attribute_string (prop, "CCode", "array_length_type"); m.copy_attribute_bool (prop, "CCode", "array_null_terminated"); m.copy_attribute_bool (prop, "CCode", "delegate_target"); - } else if (writable) { + } else if (writable || construction) { m = new Method ("set_%s".printf (prop.name), new VoidType(), source_reference, comment); m.add_parameter (value_parameter.copy ()); } |