示例#1
0
            /// <summary>
            /// Visits the array string value location.
            /// </summary>
            /// <param name="location">The location.</param>
            public void VisitArrayStringValueLocation(ArrayStringValueLocation location)
            {
                MemoryEntry     oldEntry  = snapshot.Structure.GetMemoryEntry(location.ContainingIndex);
                HashSet <Value> newValues = new HashSet <Value>();

                HashSetTools.AddAll(newValues, oldEntry.PossibleValues);

                if (isMust)
                {
                    newValues.Remove(location.Value);
                }

                IEnumerable <Value> values = location.WriteValues(snapshot.MemoryAssistant, entry);

                HashSetTools.AddAll(newValues, values);

                snapshot.Structure.SetMemoryEntry(location.ContainingIndex, new MemoryEntry(newValues));
            }
示例#2
0
        /// <summary>
        /// Visits the array string value location.
        /// </summary>
        /// <param name="location">The location.</param>
        public void VisitArrayStringValueLocation(ArrayStringValueLocation location)
        {
            IEnumerable <Value> values = location.ReadValues(assistant);

            ProcessValues(null, values, IsMust);
        }
示例#3
0
 /// <summary>
 /// Visits the array string value location.
 /// </summary>
 /// <param name="location">The location.</param>
 public void VisitArrayStringValueLocation(ArrayStringValueLocation location)
 {
     read(location.ContainingIndex);
 }