[vala] Deprecate assigning to construct-only properties
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] Deprecate assigning to construct-only properties
- Date: Wed, 21 Oct 2009 21:56:43 +0000 (UTC)
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]