public override void UnifyWithConnectedWireTypeAsNodeInput(VariableReference wireFacadeVariable, ITypeUnificationResultFactory unificationResultFactory) { FacadeVariable.MergeInto(wireFacadeVariable); bool setExpectedMutable; ITypeUnificationResult unificationResult = Terminal.UnifyTerminalTypeWith( TrueVariable.TypeVariableReference, ComputeTypeToUnifyWith(wireFacadeVariable, out setExpectedMutable), unificationResultFactory); if (setExpectedMutable) { unificationResult.SetExpectedMutable(); } }
public override void UnifyWithConnectedWireTypeAsNodeInput(VariableReference wireFacadeVariable, TerminalTypeUnificationResults unificationResults) { FacadeVariable.MergeInto(wireFacadeVariable); bool setExpectedMutable; TypeVariableReference typeToUnifyWith = ComputeTypeToUnifyWith(wireFacadeVariable, out setExpectedMutable); ITypeUnificationResult unificationResult = unificationResults.GetTypeUnificationResult( Terminal, TrueVariable.TypeVariableReference, typeToUnifyWith); if (setExpectedMutable) { unificationResult.SetExpectedMutable(); } TypeVariableSet.Unify(TrueVariable.TypeVariableReference, typeToUnifyWith, unificationResult); }