Ejemplo n.º 1
0
 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);
        }
Ejemplo n.º 3
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);
            }