public static ChangeCalculatorResult CalculateChanges( this IChangeCalculator calculator, IEnumerable <SyntaxNode> oldNodes, IEnumerable <SyntaxNode> newNodes, ComparerOptions options) { calculator = calculator ?? throw new ArgumentNullException(nameof(calculator)); oldNodes = oldNodes ?? throw new ArgumentNullException(nameof(oldNodes)); newNodes = newNodes ?? throw new ArgumentNullException(nameof(newNodes)); options = options ?? throw new ArgumentNullException(nameof(options)); var oldTypes = ResolveDeclaredTypes(oldNodes); var newTypes = ResolveDeclaredTypes(newNodes); return(calculator.CalculateChanges(oldTypes, newTypes, options)); }
public static async Task <ChangeCalculatorResult> CalculateChanges( this IChangeCalculator calculator, IEnumerable <CodeSource> oldCode, IEnumerable <CodeSource> newCode, ComparerOptions options, CancellationToken cancellationToken) { calculator = calculator ?? throw new ArgumentNullException(nameof(calculator)); oldCode = oldCode ?? throw new ArgumentNullException(nameof(oldCode)); newCode = newCode ?? throw new ArgumentNullException(nameof(newCode)); // Convert all the old and new code into SyntaxNode objects var oldTask = ParseCode(oldCode, cancellationToken); var newTask = ParseCode(newCode, cancellationToken); await Task.WhenAll(oldTask, newTask).ConfigureAwait(false); var oldNodes = oldTask.Result; var newNodes = newTask.Result; return(CalculateChanges(calculator, oldNodes, newNodes, options)); }
public ChangeCalculatorResult CalculateChanges(IEnumerable <ITypeDefinition> oldTypes, IEnumerable <ITypeDefinition> newTypes, ComparerOptions options) { oldTypes = oldTypes ?? throw new ArgumentNullException(nameof(oldTypes)); newTypes = newTypes ?? throw new ArgumentNullException(nameof(newTypes)); var result = new ChangeCalculatorResult(); var changes = _matchProcessor.CalculateChanges(oldTypes, newTypes, options); foreach (var change in changes) { if (change.ChangeType == SemVerChangeType.None) { continue; } _logger?.LogInformation($@"{change.ChangeType}: {change.Message}"); result.Add(change); } var changeType = result.ChangeType.ToString().ToLower(CultureInfo.CurrentCulture); _logger?.LogInformation("Calculated overall result as a {0} change.", changeType); return(result); }