Beispiel #1
0
            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);
            }