public void Indexer() { Indexer inter = new Indexer(controller); inter.Name = "File"; inter.DataType = new DataType(controller, "int"); Parameter param = new Parameter(controller); param.Name = "i"; param.DataType = "int"; inter.Parameters.Add(param); Assert.That(inter.IsTheSame(inter.Clone(), ComparisonDepth.Outer), Is.True); }
public virtual Differences VisitIndexer(Indexer indexer1, Indexer indexer2){ Differences differences = new Differences(indexer1, indexer2); if (indexer1 == null || indexer2 == null){ if (indexer1 != indexer2) differences.NumberOfDifferences++; else differences.NumberOfSimilarities++; return differences; } Indexer changes = (Indexer)indexer2.Clone(); Indexer deletions = (Indexer)indexer2.Clone(); Indexer insertions = (Indexer)indexer2.Clone(); Differences diff = this.VisitExpression(indexer1.Object, indexer2.Object); if (diff == null){Debug.Assert(false); return differences;} changes.Object = diff.Changes as Expression; deletions.Object = diff.Deletions as Expression; insertions.Object = diff.Insertions as Expression; Debug.Assert(diff.Changes == changes.Object && diff.Deletions == deletions.Object && diff.Insertions == insertions.Object); differences.NumberOfDifferences += diff.NumberOfDifferences; differences.NumberOfSimilarities += diff.NumberOfSimilarities; ExpressionList exprChanges, exprDeletions, exprInsertions; diff = this.VisitExpressionList(indexer1.Operands, indexer2.Operands, out exprChanges, out exprDeletions, out exprInsertions); if (diff == null){Debug.Assert(false); return differences;} changes.Operands = exprChanges; deletions.Operands = exprDeletions; insertions.Operands = exprInsertions; 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 Expression VisitIndexer(Indexer indexer) { if (indexer == null) return null; indexer = (Indexer)base.VisitIndexer((Indexer)indexer.Clone()); if (indexer == null) return null; indexer.ElementType = this.VisitTypeReference(indexer.ElementType); return indexer; }