Beispiel #1
0
        protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <ArgumentInfo <TAbstractAnalysisValue> > obj)
        {
            var other = (ArgumentInfo <TAbstractAnalysisValue>)obj;

            return(Operation.GetHashCode() == other.Operation.GetHashCode() &&
                   AnalysisEntity.GetHashCodeOrDefault() == other.AnalysisEntity.GetHashCodeOrDefault() &&
                   InstanceLocation.GetHashCode() == other.InstanceLocation.GetHashCode() &&
                   (Value?.GetHashCode() ?? 0) == (other.Value?.GetHashCode() ?? 0));
        }
        protected sealed override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <TAnalysisContext> obj)
        {
            var other = (AbstractDataFlowAnalysisContext <TAnalysisData, TAnalysisContext, TAnalysisResult, TAbstractAnalysisValue>)obj;

            return(ValueDomain.GetHashCode() == other.ValueDomain.GetHashCode() &&
                   OwningSymbol.GetHashCode() == other.OwningSymbol.GetHashCode() &&
                   ControlFlowGraph.GetHashCode() == other.ControlFlowGraph.GetHashCode() &&
                   AnalyzerOptions.GetHashCode() == other.AnalyzerOptions.GetHashCode() &&
                   InterproceduralAnalysisConfiguration.GetHashCode() == other.InterproceduralAnalysisConfiguration.GetHashCode() &&
                   PessimisticAnalysis.GetHashCode() == other.PessimisticAnalysis.GetHashCode() &&
                   PredicateAnalysis.GetHashCode() == other.PredicateAnalysis.GetHashCode() &&
                   ExceptionPathsAnalysis.GetHashCode() == other.ExceptionPathsAnalysis.GetHashCode() &&
                   CopyAnalysisResult.GetHashCodeOrDefault() == other.CopyAnalysisResult.GetHashCodeOrDefault() &&
                   PointsToAnalysisResult.GetHashCodeOrDefault() == other.PointsToAnalysisResult.GetHashCodeOrDefault() &&
                   ValueContentAnalysisResult.GetHashCodeOrDefault() == other.ValueContentAnalysisResult.GetHashCodeOrDefault() &&
                   InterproceduralAnalysisData.GetHashCodeOrDefault() == other.InterproceduralAnalysisData.GetHashCodeOrDefault() &&
                   InterproceduralAnalysisPredicate.GetHashCodeOrDefault() == other.InterproceduralAnalysisPredicate.GetHashCodeOrDefault() &&
                   ComputeEqualsByHashCodeParts(other));
        }
            protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <AbstractIndex> obj)
            {
                var other = (ConstantValueIndex)obj;

                return(Index.GetHashCode() == other.Index.GetHashCode());
            }
            protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <AbstractIndex> obj)
            {
                var other = (OperationBasedIndex)obj;

                return(Operation.GetHashCode() == other.Operation.GetHashCode());
            }
            protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <AbstractIndex> obj)
            {
                var other = (AnalysisEntityBasedIndex)obj;

                return(AnalysisEntity.GetHashCode() == other.AnalysisEntity.GetHashCode());
            }
Beispiel #6
0
 protected abstract bool ComputeEqualsByHashCodeParts(CacheBasedEquatable <T> obj);