From: Jürg Billeter Date: Wed, 21 Oct 2009 21:53:58 +0000 (+0200) Subject: Deprecate assigning to construct-only properties X-Git-Tag: 0.7.8~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3848a5546a671dd5ab52ffed5b34f0b07f349034;p=thirdparty%2Fvala.git Deprecate assigning to construct-only properties Object (property: value) constructor chain up is recommended to set construct-only properties. --- diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala index 06ad297a3..2ae05665c 100644 --- a/vala/valaassignment.vala +++ b/vala/valaassignment.vala @@ -273,6 +273,10 @@ public class Vala.Assignment : Expression { ma.error = true; Report.error (ma.source_reference, "Property `%s' is read-only".printf (prop.get_full_name ())); return false; + } else if (!analyzer.context.deprecated + && !prop.set_accessor.writable + && analyzer.find_current_method () is CreationMethod) { + Report.warning (ma.source_reference, "assigning to construct-only properties is deprecated, use Object (property: value) constructor chain up"); } } else if (ma.symbol_reference is LocalVariable && right.value_type == null) { var local = (LocalVariable) ma.symbol_reference; diff --git a/vala/valamarkupreader.vala b/vala/valamarkupreader.vala index 96ad0e809..41ec731ff 100644 --- a/vala/valamarkupreader.vala +++ b/vala/valamarkupreader.vala @@ -26,7 +26,7 @@ using GLib; * Simple reader for a subset of XML. */ public class Vala.MarkupReader : Object { - public string filename { get; construct; } + public string filename { get; private set; } public string name { get; private set; } diff --git a/vapigen/valavapicheck.vala b/vapigen/valavapicheck.vala index 9494f0521..a59b010e2 100644 --- a/vapigen/valavapicheck.vala +++ b/vapigen/valavapicheck.vala @@ -29,9 +29,9 @@ class Vala.VAPICheck : Object { this.context = context; } - public CodeContext context { get; construct; } - public SourceFile gidl { get; construct; } - public SourceFile metadata { get; construct; } + public CodeContext context { get; private set; } + public SourceFile gidl { get; private set; } + public SourceFile metadata { get; private set; } private List _scope; private Set _symbols;