vala r2042 - in trunk: . vala
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2042 - in trunk: . vala
- Date: Thu, 20 Nov 2008 21:37:36 +0000 (UTC)
Author: juergbi
Date: Thu Nov 20 21:37:35 2008
New Revision: 2042
URL: http://svn.gnome.org/viewvc/vala?rev=2042&view=rev
Log:
2008-11-20 JÃrg Billeter <j bitron ch>
* vala/valaassignment.vala:
Check types in property assignments, fixes bug 550088
Modified:
trunk/ChangeLog
trunk/vala/valaassignment.vala
Modified: trunk/vala/valaassignment.vala
==============================================================================
--- trunk/vala/valaassignment.vala (original)
+++ trunk/vala/valaassignment.vala Thu Nov 20 21:37:35 2008
@@ -301,7 +301,9 @@
Report.error (source_reference, "Assignment: Invalid callback assignment attempt");
return false;
}
- } else if (left.value_type != null && right.value_type != null) {
+ }
+
+ if (left.value_type != null && right.value_type != null) {
/* if there was an error on either side,
* i.e. {left|right}.value_type == null, skip type check */
@@ -311,18 +313,20 @@
return false;
}
- if (right.value_type.is_disposable ()) {
- /* rhs transfers ownership of the expression */
- if (!(left.value_type is PointerType) && !left.value_type.value_owned) {
- /* lhs doesn't own the value */
- error = true;
- Report.error (source_reference, "Invalid assignment from owned expression to unowned variable");
+ if (!(ma.symbol_reference is Property)) {
+ if (right.value_type.is_disposable ()) {
+ /* rhs transfers ownership of the expression */
+ if (!(left.value_type is PointerType) && !left.value_type.value_owned) {
+ /* lhs doesn't own the value */
+ error = true;
+ Report.error (source_reference, "Invalid assignment from owned expression to unowned variable");
+ }
+ } else if (left.value_type.value_owned) {
+ /* lhs wants to own the value
+ * rhs doesn't transfer the ownership
+ * code generator needs to add reference
+ * increment calls */
}
- } else if (left.value_type.value_owned) {
- /* lhs wants to own the value
- * rhs doesn't transfer the ownership
- * code generator needs to add reference
- * increment calls */
}
}
} else if (left is ElementAccess) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]