public virtual Differences VisitAliasDefinition(AliasDefinition/*!*/ aliasDefinition1, AliasDefinition aliasDefinition2) { Differences differences = new Differences(aliasDefinition1, aliasDefinition2); if (aliasDefinition1 == null || aliasDefinition2 == null){ if (aliasDefinition1 != aliasDefinition2) differences.NumberOfDifferences++; else differences.NumberOfSimilarities++; return differences; } AliasDefinition changes = (AliasDefinition)aliasDefinition2.Clone(); AliasDefinition deletions = (AliasDefinition)aliasDefinition2.Clone(); AliasDefinition insertions = (AliasDefinition)aliasDefinition2.Clone(); Differences diff = this.VisitIdentifier(aliasDefinition1.Alias, aliasDefinition2.Alias); if (diff == null){Debug.Assert(false); return differences;} changes.Alias = diff.Changes as Identifier; deletions.Alias = diff.Deletions as Identifier; insertions.Alias = diff.Insertions as Identifier; Debug.Assert(diff.Changes == changes.Alias && diff.Deletions == deletions.Alias && diff.Insertions == insertions.Alias); differences.NumberOfDifferences += diff.NumberOfDifferences; differences.NumberOfSimilarities += diff.NumberOfSimilarities; diff = this.VisitExpression(aliasDefinition1.AliasedExpression, aliasDefinition2.AliasedExpression); if (diff == null){Debug.Assert(false); return differences;} changes.AliasedExpression = diff.Changes as Expression; deletions.AliasedExpression = diff.Deletions as Expression; insertions.AliasedExpression = diff.Insertions as Expression; Debug.Assert(diff.Changes == changes.AliasedExpression && diff.Deletions == deletions.AliasedExpression && diff.Insertions == insertions.AliasedExpression); differences.NumberOfDifferences += diff.NumberOfDifferences; differences.NumberOfSimilarities += diff.NumberOfSimilarities; diff = this.VisitIdentifier(aliasDefinition1.AliasedUri, aliasDefinition2.AliasedUri); if (diff == null){Debug.Assert(false); return differences;} changes.AliasedUri = diff.Changes as Identifier; deletions.AliasedUri = diff.Deletions as Identifier; insertions.AliasedUri = diff.Insertions as Identifier; Debug.Assert(diff.Changes == changes.AliasedUri && diff.Deletions == deletions.AliasedUri && diff.Insertions == insertions.AliasedUri); differences.NumberOfDifferences += diff.NumberOfDifferences; differences.NumberOfSimilarities += diff.NumberOfSimilarities; if (differences.NumberOfDifferences == 0){ differences.Changes = null; differences.Deletions = null; differences.Insertions = null; }else{ differences.Changes = changes; differences.Deletions = deletions; differences.Insertions = insertions; } return differences; }
public override AliasDefinition VisitAliasDefinition(AliasDefinition aliasDefinition) { if (aliasDefinition == null) return null; return base.VisitAliasDefinition((AliasDefinition)aliasDefinition.Clone()); }