vala r2214 - in trunk: . vala
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r2214 - in trunk: . vala
- Date: Fri, 19 Dec 2008 10:47:17 +0000 (UTC)
Author: juergbi
Date: Fri Dec 19 10:47:17 2008
New Revision: 2214
URL: http://svn.gnome.org/viewvc/vala?rev=2214&view=rev
Log:
2008-12-19 JÃrg Billeter <j bitron ch>
* vala/valaparser.vala:
* vala/valascanner.vala:
* vala/valatokentype.vala:
Add `owned' type modifier and `(owned)' cast to replace `#',
add `unowned' type modifier to complement `weak' for non-reference
counted objects.
`#' will be deprecated in Vala 0.5.5
Modified:
trunk/ChangeLog
trunk/vala/valaparser.vala
trunk/vala/valascanner.vala
trunk/vala/valatokentype.vala
Modified: trunk/vala/valaparser.vala
==============================================================================
--- trunk/vala/valaparser.vala (original)
+++ trunk/vala/valaparser.vala Fri Dec 19 10:47:17 2008
@@ -207,6 +207,7 @@
case TokenType.NULL:
case TokenType.OUT:
case TokenType.OVERRIDE:
+ case TokenType.OWNED:
case TokenType.PARAMS:
case TokenType.PRIVATE:
case TokenType.PROTECTED:
@@ -226,6 +227,7 @@
case TokenType.TRUE:
case TokenType.TRY:
case TokenType.TYPEOF:
+ case TokenType.UNOWNED:
case TokenType.USING:
case TokenType.VAR:
case TokenType.VIRTUAL:
@@ -336,6 +338,8 @@
return;
}
accept (TokenType.DYNAMIC);
+ accept (TokenType.OWNED);
+ accept (TokenType.UNOWNED);
accept (TokenType.WEAK);
skip_symbol_name ();
skip_type_argument_list ();
@@ -369,8 +373,14 @@
bool is_dynamic = accept (TokenType.DYNAMIC);
bool value_owned = owned_by_default;
+
if (owned_by_default) {
- value_owned = !accept (TokenType.WEAK);
+ if (accept (TokenType.UNOWNED)
+ || accept (TokenType.WEAK)) {
+ value_owned = false;
+ }
+ } else {
+ value_owned = accept (TokenType.OWNED);
}
var sym = parse_symbol_name ();
@@ -419,7 +429,11 @@
}
if (!owned_by_default) {
- value_owned = accept (TokenType.HASH);
+ if (accept (TokenType.HASH)) {
+ // TODO enable warning after releasing Vala 0.5.4
+ // Report.warning (get_last_src (), "deprecated syntax, use `owned` modifier");
+ value_owned = true;
+ }
}
type.is_dynamic = is_dynamic;
@@ -776,15 +790,24 @@
}
switch (current ()) {
case TokenType.HASH:
+ // TODO enable warning after releasing Vala 0.5.4
+ // Report.warning (get_last_src (), "deprecated syntax, use `(owned)` cast");
next ();
var op = parse_unary_expression ();
return new ReferenceTransferExpression (op, get_src (begin));
case TokenType.OPEN_PARENS:
next ();
switch (current ()) {
+ case TokenType.OWNED:
+ // (owned) foo
+ next ();
+ if (accept (TokenType.CLOSE_PARENS)) {
+ var op = parse_unary_expression ();
+ return new ReferenceTransferExpression (op, get_src (begin));
+ }
+ break;
case TokenType.VOID:
case TokenType.DYNAMIC:
- case TokenType.WEAK:
case TokenType.IDENTIFIER:
var type = parse_type ();
if (accept (TokenType.CLOSE_PARENS)) {
@@ -807,9 +830,6 @@
case TokenType.SIZEOF:
case TokenType.TYPEOF:
case TokenType.IDENTIFIER:
- if (!(type is PointerType) && !type.value_owned) {
- Report.warning (get_src (begin), "obsolete syntax, weak type modifier unused in cast expressions");
- }
var inner = parse_unary_expression ();
return new CastExpression (inner, type, get_src (begin), false);
default:
@@ -2179,7 +2199,7 @@
var begin = get_location ();
var access = parse_access_modifier ();
var flags = parse_member_declaration_modifiers ();
- bool is_weak = accept (TokenType.WEAK);
+ bool is_weak = accept (TokenType.UNOWNED) || accept (TokenType.WEAK);
var type = parse_type (false);
string id = parse_identifier ();
var prop = new Property (id, type, null, null, get_src_com (begin));
@@ -2818,6 +2838,7 @@
switch (current ()) {
case TokenType.VOID:
case TokenType.DYNAMIC:
+ case TokenType.UNOWNED:
case TokenType.WEAK:
case TokenType.IDENTIFIER:
var type = parse_type ();
Modified: trunk/vala/valascanner.vala
==============================================================================
--- trunk/vala/valascanner.vala (original)
+++ trunk/vala/valascanner.vala Fri Dec 19 10:47:17 2008
@@ -166,6 +166,9 @@
case 'f':
if (matches (begin, "false")) return TokenType.FALSE;
break;
+ case 'o':
+ if (matches (begin, "owned")) return TokenType.OWNED;
+ break;
case 't':
if (matches (begin, "throw")) return TokenType.THROW;
break;
@@ -274,6 +277,9 @@
case 'p':
if (matches (begin, "private")) return TokenType.PRIVATE;
break;
+ case 'u':
+ if (matches (begin, "unowned")) return TokenType.UNOWNED;
+ break;
case 'v':
if (matches (begin, "virtual")) return TokenType.VIRTUAL;
break;
Modified: trunk/vala/valatokentype.vala
==============================================================================
--- trunk/vala/valatokentype.vala (original)
+++ trunk/vala/valatokentype.vala Fri Dec 19 10:47:17 2008
@@ -107,6 +107,7 @@
OPEN_BRACKET,
OPEN_PARENS,
OVERRIDE,
+ OWNED,
PARAMS,
PERCENT,
PLUS,
@@ -133,6 +134,7 @@
TRUE,
TRY,
TYPEOF,
+ UNOWNED,
USING,
VAR,
VERBATIM_STRING_LITERAL,
@@ -226,6 +228,7 @@
case OPEN_BRACKET: return "`['";
case OPEN_PARENS: return "`('";
case OVERRIDE: return "`override'";
+ case OWNED: return "`owned'";
case PARAMS: return "`params'";
case PERCENT: return "`%'";
case PLUS: return "`+'";
@@ -252,6 +255,7 @@
case TRUE: return "`true'";
case TRY: return "`try'";
case TYPEOF: return "`typeof'";
+ case UNOWNED: return "`unowned'";
case USING: return "`using'";
case VAR: return "`var'";
case VIRTUAL: return "`virtual'";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]