[vala] Deprecate assigning to construct-only properties



commit 3848a5546a671dd5ab52ffed5b34f0b07f349034
Author: Jürg Billeter <j bitron ch>
Date:   Wed Oct 21 23:53:58 2009 +0200

    Deprecate assigning to construct-only properties
    
    Object (property: value) constructor chain up is recommended to set
    construct-only properties.

 vala/valaassignment.vala   |    4 ++++
 vala/valamarkupreader.vala |    2 +-
 vapigen/valavapicheck.vala |    6 +++---
 3 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala
index 06ad297..2ae0566 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 96ad0e8..41ec731 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 9494f05..a59b010 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<string> _scope;
 	private Set<string> _symbols;



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