From 6afaf446939802750da3c4b76bbca8a75dd27746 Mon Sep 17 00:00:00 2001 From: Jeremy Philippe Date: Sun, 1 Sep 2019 21:57:01 +0200 Subject: [PATCH] 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 (" "); -- 2.47.2