summaryrefslogtreecommitdiff
path: root/vala/valaparser.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-04-15 16:49:14 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-04-15 16:49:14 +0200
commit4f2ef8fa3c391451f0ea788ad6e8ea6c15ef0430 (patch)
treedde47cb1131ccfe2c48f50d90106df354bc12c56 /vala/valaparser.vala
parenteb7dc13c0d4cf66c153852513c69c5caccec5a7d (diff)
downloadvala-4f2ef8fa3c391451f0ea788ad6e8ea6c15ef0430.tar.gz
Support explicit nullable var-type declarations
var? foo = "foo"; unowned var? bar = "bar"; Fixes https://gitlab.gnome.org/GNOME/vala/issues/1146
Diffstat (limited to 'vala/valaparser.vala')
-rw-r--r--vala/valaparser.vala6
1 files changed, 6 insertions, 0 deletions
diff --git a/vala/valaparser.vala b/vala/valaparser.vala
index 49336c94c..9ecc96e9b 100644
--- a/vala/valaparser.vala
+++ b/vala/valaparser.vala
@@ -1944,10 +1944,12 @@ public class Vala.Parser : CodeVisitor {
DataType variable_type;
if (accept (TokenType.UNOWNED) && accept (TokenType.VAR)) {
variable_type = new VarType (false);
+ variable_type.nullable = accept (TokenType.INTERR);
} else {
rollback (begin);
if (accept (TokenType.VAR)) {
variable_type = new VarType ();
+ variable_type.nullable = accept (TokenType.INTERR);
} else {
variable_type = parse_type (true, true);
}
@@ -2211,10 +2213,12 @@ public class Vala.Parser : CodeVisitor {
DataType type;
if (accept (TokenType.UNOWNED) && accept (TokenType.VAR)) {
type = new VarType (false);
+ type.nullable = accept (TokenType.INTERR);
} else {
rollback (var_or_type);
if (accept (TokenType.VAR)) {
type = new VarType ();
+ type.nullable = accept (TokenType.INTERR);
} else {
type = parse_type (true, true);
if (accept (TokenType.IN)) {
@@ -2380,10 +2384,12 @@ public class Vala.Parser : CodeVisitor {
DataType variable_type;
if (accept (TokenType.UNOWNED) && accept (TokenType.VAR)) {
variable_type = new VarType (false);
+ variable_type.nullable = accept (TokenType.INTERR);
} else {
rollback (expr_or_decl);
if (accept (TokenType.VAR)) {
variable_type = new VarType ();
+ variable_type.nullable = accept (TokenType.INTERR);
} else {
variable_type = parse_type (true, true);
}