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

            CollectionMemoryUtils.AddAll(newValues, oldEntry.PossibleValues);

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

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

            CollectionMemoryUtils.AddAll(newValues, values);

            snapshot.CurrentData.Writeable.SetMemoryEntry(location.ContainingIndex, snapshot.CreateMemoryEntry(newValues));
        }
Example #2
0
 /// <summary>
 /// Visits the array string value location.
 /// </summary>
 /// <param name="location">The location.</param>
 public void VisitArrayStringValueLocation(ArrayStringValueLocation location)
 {
     assign(location.ContainingIndex);
 }