public void FinalizeTerminateLifetimeInputs(TerminateLifetimeNode terminateLifetimeNode, LifetimeVariableAssociation lifetimeVariableAssociation) { if (CommonLifetime != null && _state == State.VariablesInLifetimeRemaining) { // assume that none of the lifetimes of our inputs are going to change after this point foreach (var inputVariable in _inputVariables) { lifetimeVariableAssociation.MarkVariableConsumed(inputVariable); } List <VariableReference> unconsumedVariables = _parentDiagram .GetVariableSet() .GetUniqueVariableReferences() .Where(variable => variable.Lifetime == CommonLifetime && !lifetimeVariableAssociation.IsVariableConsumed(variable)) .ToList(); if (unconsumedVariables.Count == 0) { _state = State.AllVariablesInLifetimeTerminated; } int requiredInputCount = _inputVariables.Count + unconsumedVariables.Count; terminateLifetimeNode.RequiredInputCount = requiredInputCount; terminateLifetimeNode.UpdateInputTerminals(requiredInputCount); } UpdateTerminateLifetimeErrorState(terminateLifetimeNode); }