summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2023-02-05 19:33:15 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2023-02-05 19:33:15 +0100
commit7e5024ae2694c5406310314933235b68d79b1fca (patch)
tree3df91a30736373efada658911b8c67a758ca675a
parent37dd373f66403f8db3581c9216a5bdfdf6925a5f (diff)
downloadvala-7e5024ae2694c5406310314933235b68d79b1fca.tar.gz
vala: Allow more general usage of PropertyAccessor.get_method()
-rw-r--r--codegen/valagirwriter.vala6
-rw-r--r--vala/valapropertyaccessor.vala2
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 ());
}