import eclipse 3.1 M4 compiler
[org.ibex.tool.git] / src / org / eclipse / jdt / internal / compiler / flow / ConditionalFlowInfo.java
index 115979e..d7dc642 100644 (file)
@@ -83,6 +83,42 @@ public class ConditionalFlowInfo extends FlowInfo {
                                && initsWhenFalse.isDefinitelyAssigned(local);
        }
        
+       /**
+        * Check status of definite non-null assignment for a field.
+        */
+       public boolean isDefinitelyNonNull(FieldBinding field) {
+               
+               return initsWhenTrue.isDefinitelyNonNull(field) 
+                               && initsWhenFalse.isDefinitelyNonNull(field);
+       }
+
+       /**
+        * Check status of definite non-null assignment for a local variable.
+        */
+       public boolean isDefinitelyNonNull(LocalVariableBinding local) {
+               
+               return initsWhenTrue.isDefinitelyNonNull(local) 
+                               && initsWhenFalse.isDefinitelyNonNull(local);
+       }
+       
+       /**
+        * Check status of definite null assignment for a field.
+        */
+       public boolean isDefinitelyNull(FieldBinding field) {
+               
+               return initsWhenTrue.isDefinitelyNull(field) 
+                               && initsWhenFalse.isDefinitelyNull(field);
+       }
+
+       /**
+        * Check status of definite null assignment for a local variable.
+        */
+       public boolean isDefinitelyNull(LocalVariableBinding local) {
+               
+               return initsWhenTrue.isDefinitelyNull(local) 
+                               && initsWhenFalse.isDefinitelyNull(local);
+       }
+
        public int reachMode(){
                return unconditionalInits().reachMode();
        }
@@ -130,6 +166,42 @@ public class ConditionalFlowInfo extends FlowInfo {
        }
        
        /**
+        * Record a field got definitely assigned to non-null value.
+        */
+       public void markAsDefinitelyNonNull(FieldBinding field) {
+               
+               initsWhenTrue.markAsDefinitelyNonNull(field);
+               initsWhenFalse.markAsDefinitelyNonNull(field);  
+       }
+       
+       /**
+        * Record a field got definitely assigned to non-null value
+        */
+       public void markAsDefinitelyNonNull(LocalVariableBinding local) {
+               
+               initsWhenTrue.markAsDefinitelyNonNull(local);
+               initsWhenFalse.markAsDefinitelyNonNull(local);  
+       }
+
+       /**
+        * Record a field got definitely assigned to null.
+        */
+       public void markAsDefinitelyNull(FieldBinding field) {
+               
+               initsWhenTrue.markAsDefinitelyNull(field);
+               initsWhenFalse.markAsDefinitelyNull(field);     
+       }
+       
+       /**
+        * Record a field got definitely assigned to null.
+        */
+       public void markAsDefinitelyNull(LocalVariableBinding local) {
+               
+               initsWhenTrue.markAsDefinitelyNull(local);
+               initsWhenFalse.markAsDefinitelyNull(local);     
+       }
+
+       /**
         * Clear the initialization info for a field
         */
        public void markAsDefinitelyNotAssigned(FieldBinding field) {