]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
expression: Add get_null_state vfunc
authorTimm Bäder <mail@baedert.org>
Mon, 7 Nov 2016 18:29:30 +0000 (19:29 +0100)
committerTimm Bäder <mail@baedert.org>
Mon, 7 Nov 2016 18:29:30 +0000 (19:29 +0100)
vala/valaexpression.vala
vala/valaliteral.vala
vala/valanullliteral.vala

index 5f7a02333935616f9f0d7a1f180c2bfce7525ed2..28a536d8131ef4dd23aa3389f7fe0ccd2e1ddb3f 100644 (file)
 
 using GLib;
 
+
+public enum Vala.NullabilityState {
+       NULL,
+       NON_NULL,
+       NULLABLE
+}
+
 /**
  * Base class for all code nodes that might be used as an expression.
  */
@@ -71,6 +78,10 @@ public abstract class Vala.Expression : CodeNode {
         */
        public abstract bool is_pure ();
 
+       public virtual NullabilityState get_null_state () {
+               return NullabilityState.NULLABLE;
+       }
+
        /**
         * Returns whether this expression is guaranteed to be non-null.
         */
index 62f17a3af5aee0c9080b70afe21fbec6f57f677f..3550ff7756d76227df2b64e1c0f546f261eab163 100644 (file)
@@ -33,4 +33,8 @@ public abstract class Vala.Literal : Expression {
        public override bool is_pure () {
                return true;
        }
+
+       public override NullabilityState get_null_state () {
+               return NullabilityState.NON_NULL;
+       }
 }
index b5f95d0646be1a25cdfb248e06fdaafc3906793b..015dd7e8325335f7f0c07a8257860e8b16fbd313 100644 (file)
@@ -50,6 +50,10 @@ public class Vala.NullLiteral : Literal {
                return true;
        }
 
+       public override NullabilityState get_null_state () {
+               return NullabilityState.NULL;
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;