From: Rico Tzschichholz Date: Wed, 22 Apr 2020 20:33:53 +0000 (+0200) Subject: vala: Add InvalidExpression as replacement for erroneous nodes instead X-Git-Tag: 0.49.1~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed320c6260bfa369f64f41450bc48fd5b664809a;p=thirdparty%2Fvala.git vala: Add InvalidExpression as replacement for erroneous nodes instead This type is meant to be used where a successful parsing or transforming cannot be achieved and the usage of "null" is not possible. --- diff --git a/vala/Makefile.am b/vala/Makefile.am index 78e4c9390..c833939a3 100644 --- a/vala/Makefile.am +++ b/vala/Makefile.am @@ -102,6 +102,7 @@ libvala_la_VALASOURCES = \ valaintegertype.vala \ valainterface.vala \ valainterfacetype.vala \ + valainvalidexpression.vala \ valainvalidtype.vala \ valalambdaexpression.vala \ valaliteral.vala \ diff --git a/vala/valainvalidexpression.vala b/vala/valainvalidexpression.vala new file mode 100644 index 000000000..dc7d5e4f7 --- /dev/null +++ b/vala/valainvalidexpression.vala @@ -0,0 +1,38 @@ +/* valainvalidexpression.vala + * + * Copyright (C) 2020 Rico Tzschichholz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Rico Tzschichholz + */ + +/** + * An invalid expression. + */ +public class Vala.InvalidExpression : Expression { + public InvalidExpression () { + error = true; + } + + public override bool is_pure () { + return false; + } + + public override bool check (CodeContext context) { + return false; + } +}