[vala/staging] codewriter: Write "weak" modifier for properties



commit 6afaf446939802750da3c4b76bbca8a75dd27746
Author: Jeremy Philippe <jeremy philippe gmail com>
Date:   Sun Sep 1 21:57:01 2019 +0200

    codewriter: Write "weak" modifier for properties

 tests/fastvapi/fastvapitest.vala          |  4 ++++
 tests/fastvapi/fastvapitest.vapi-expected | 10 +++++++---
 vala/valacodewriter.vala                  |  4 ++++
 3 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/tests/fastvapi/fastvapitest.vala b/tests/fastvapi/fastvapitest.vala
index 02025e307..b711b5c29 100644
--- a/tests/fastvapi/fastvapitest.vala
+++ b/tests/fastvapi/fastvapitest.vala
@@ -25,8 +25,12 @@ namespace FastVapi {
 
                public int field;
 
+               public weak Test weak_field;
+
                public string property { get; construct set; }
 
+               public weak Test weak_property { get; private set; }
+
                public Test () {
                }
 
diff --git a/tests/fastvapi/fastvapitest.vapi-expected b/tests/fastvapi/fastvapitest.vapi-expected
index 0542a563d..1826b8299 100644
--- a/tests/fastvapi/fastvapitest.vapi-expected
+++ b/tests/fastvapi/fastvapitest.vapi-expected
@@ -6,12 +6,16 @@ namespace FastVapi {
        public class Test : Object {
                [Source (filename = "fastvapitest.vala", line = 26, column = 3)]
                public int field;
-               [Source (filename = "fastvapitest.vala", line = 30, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 28, column = 3)]
+               public weak Test weak_field;
+               [Source (filename = "fastvapitest.vala", line = 34, column = 3)]
                public Test ();
-               [Source (filename = "fastvapitest.vala", line = 33, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 37, column = 3)]
                public void method ();
-               [Source (filename = "fastvapitest.vala", line = 28, column = 3)]
+               [Source (filename = "fastvapitest.vala", line = 30, column = 3)]
                public string property { get; set construct; }
+               [Source (filename = "fastvapitest.vala", line = 32, column = 3)]
+               public weak Test weak_property { get; private set; }
                [Source (filename = "fastvapitest.vala", line = 24, column = 3)]
                public signal void some_signal (int param);
        }
diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala
index 1f223b6b8..97aa48136 100644
--- a/vala/valacodewriter.vala
+++ b/vala/valacodewriter.vala
@@ -837,6 +837,10 @@ public class Vala.CodeWriter : CodeVisitor {
                        write_string ("override ");
                }
 
+               if (prop.property_type.is_weak ()) {
+                       write_string ("weak ");
+               }
+
                write_type (prop.property_type);
 
                write_string (" ");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]