コード例 #1
0
ファイル: BoundMethodInfo.cs プロジェクト: zuokaihuang/PTVS
        internal override AnalysisValue UnionMergeTypes(AnalysisValue ns, int strength)
        {
            var bmi = ns as BoundMethodInfo;

            if (bmi == null || (Function.Equals(bmi.Function) && _instanceInfo.Equals(bmi._instanceInfo)))
            {
                return(this);
            }
            else
            {
                bool changed1, changed2;
                var  cmp     = UnionComparer.Instances[strength];
                var  newFunc = cmp.MergeTypes(Function, bmi.Function, out changed1) as FunctionInfo;
                var  newInst = cmp.MergeTypes(_instanceInfo, bmi._instanceInfo, out changed2);
                if (newFunc != null && newInst != null && (changed1 | changed2))
                {
                    return(new BoundMethodInfo(newFunc, newInst));
                }
            }
            return(this);
        }
コード例 #2
0
 protected override bool Equals(Protocol other) => _actualType.Equals((other as TypeDelegateProtocol)._actualType);