/// <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)); }
/// <summary> /// Visits the array string value location. /// </summary> /// <param name="location">The location.</param> public void VisitArrayStringValueLocation(ArrayStringValueLocation location) { assign(location.ContainingIndex); }