public override void UnifyWithConnectedWireTypeAsNodeInput(VariableReference wireFacadeVariable, ITypeUnificationResultFactory unificationResultFactory) { Terminal.UnifyTerminalTypeWith( FacadeVariable.TypeVariableReference, wireFacadeVariable.TypeVariableReference, unificationResultFactory); FacadeVariable.MergeInto(wireFacadeVariable); }
public override void UnifyWithConnectedWireTypeAsNodeInput(VariableReference wireFacadeVariable, TerminalTypeUnificationResults unificationResults) { ITypeUnificationResult unificationResult = unificationResults.GetTypeUnificationResult( Terminal, FacadeVariable.TypeVariableReference, wireFacadeVariable.TypeVariableReference); FacadeVariable.UnifyTypeVariableInto(wireFacadeVariable, unificationResult); FacadeVariable.MergeInto(wireFacadeVariable); }
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); }