diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-15 16:49:14 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-15 16:49:14 +0200 |
commit | 4f2ef8fa3c391451f0ea788ad6e8ea6c15ef0430 (patch) | |
tree | dde47cb1131ccfe2c48f50d90106df354bc12c56 /vala/valaparser.vala | |
parent | eb7dc13c0d4cf66c153852513c69c5caccec5a7d (diff) | |
download | vala-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.vala | 6 |
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); } |