public void RegisterRemoveAssignment(PropGraphNodeDescriptor lhs, PropGraphNodeDescriptor rhs) { if (lhs != null && rhs != null) { var typesToDelete = PropagationGraph.TypesInEdge(rhs, lhs); PropagationGraph.RemoveTypes(lhs, typesToDelete); PropagationGraph.AddToDeletionWorkList(lhs); } }
public void RegisterRemoveTypes(PropGraphNodeDescriptor lhs, IEnumerable <TypeDescriptor> types) { if (lhs != null) { this.RemovedTypes.UnionWith(types); PropagationGraph.RemoveTypes(lhs, types); PropagationGraph.AddToDeletionWorkList(lhs); } }
public void RegisterRemoveNewExpressionAssignment(PropGraphNodeDescriptor lhs) { if (lhs != null) { var types = PropagationGraph.GetTypes(lhs); this.RemovedTypes.UnionWith(types); PropagationGraph.RemoveTypes(lhs, types); PropagationGraph.AddToDeletionWorkList(lhs); } }
public void RegisterRemoveType(PropGraphNodeDescriptor lhs, TypeDescriptor type) { if (lhs != null) { var types = new HashSet <TypeDescriptor>(); types.Add(type); this.RemovedTypes.Add(type); PropagationGraph.RemoveTypes(lhs, types); PropagationGraph.AddToDeletionWorkList(lhs); } }