private CasesAndOr ComputeAllCases(INamedTypeSymbol errorType) { var result = new CasesAndOr(); var values = GetAllValues(errorType); foreach (var pair in values) { result.CombineAnd(ComputeAllCases(pair.Key, pair.Value.Values)); } return(result); }
private static CasesAndOr ComputeAllCases(TestedParameter testedParameter, Dictionary <TestedParameter, CriteriaValues> .ValueCollection criteriaValues) { var result = new CasesAndOr(); foreach (var criteriaValue in criteriaValues) { var cases = new CasesAndOr(); foreach (var criterion in criteriaValue.Values) { cases.CombineOr(new CasesAndOr(testedParameter, criterion.Analysis, criterion.IsError)); } result.CombineAnd(cases); } return(result); }