Skip to content

Commit 752e14a

Browse files
authored
Rename iterators and fix member visibility (#733)
1 parent 2248ef0 commit 752e14a

File tree

3 files changed

+31
-18
lines changed

3 files changed

+31
-18
lines changed

Src/IronPython/Runtime/Binding/PythonOperationBinder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,24 +127,24 @@ public override T BindDelegate<T>(CallSite<T> site, object[] args) {
127127
}
128128

129129
private KeyValuePair<IEnumerator, IDisposable> GetListEnumerator(CallSite site, PythonList value) {
130-
return new KeyValuePair<IEnumerator,IDisposable>(new ListIterator(value), null);
130+
return new KeyValuePair<IEnumerator,IDisposable>(new PythonListIterator(value), null);
131131
}
132132

133133
private KeyValuePair<IEnumerator, IDisposable> GetListEnumerator(CallSite site, object value) {
134134
if (value != null && value.GetType() == typeof(PythonList)) {
135-
return new KeyValuePair<IEnumerator,IDisposable>(new ListIterator((PythonList)value), null);
135+
return new KeyValuePair<IEnumerator,IDisposable>(new PythonListIterator((PythonList)value), null);
136136
}
137137

138138
return ((CallSite<Func<CallSite, object, KeyValuePair<IEnumerator, IDisposable>>>)site).Update(site, value);
139139
}
140140

141141
private KeyValuePair<IEnumerator, IDisposable> GetTupleEnumerator(CallSite site, PythonTuple value) {
142-
return new KeyValuePair<IEnumerator,IDisposable>(new TupleEnumerator(value), null);
142+
return new KeyValuePair<IEnumerator,IDisposable>(new PythonTupleEnumerator(value), null);
143143
}
144144

145145
private KeyValuePair<IEnumerator, IDisposable> GetTupleEnumerator(CallSite site, object value) {
146146
if (value != null && value.GetType() == typeof(PythonTuple)) {
147-
return new KeyValuePair<IEnumerator, IDisposable>(new TupleEnumerator((PythonTuple)value), null);
147+
return new KeyValuePair<IEnumerator, IDisposable>(new PythonTupleEnumerator((PythonTuple)value), null);
148148
}
149149

150150
return ((CallSite<Func<CallSite, object, KeyValuePair<IEnumerator, IDisposable>>>)site).Update(site, value);

Src/IronPython/Runtime/PythonList.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,11 @@ public virtual IEnumerator __iter__() {
324324
// we can call it w/o requiring an explicit conversion. If the
325325
// user overrides this we'll place a conversion in the wrapper
326326
// helper
327-
return new ListIterator(this);
327+
return new PythonListIterator(this);
328328
}
329329

330330
public virtual IEnumerator __reversed__() {
331-
return new ListReverseIterator(this);
331+
return new PythonListReverseIterator(this);
332332
}
333333

334334
public virtual bool __contains__(object value) {
@@ -1421,12 +1421,12 @@ int IStructuralComparable.CompareTo(object other, IComparer comparer) {
14211421
}
14221422

14231423
[PythonType("list_iterator")]
1424-
public sealed class ListIterator : IEnumerator, IEnumerable, IEnumerable<object>, IEnumerator<object> {
1424+
public sealed class PythonListIterator : IEnumerator, IEnumerable, IEnumerable<object>, IEnumerator<object> {
14251425
private int _index;
14261426
private readonly PythonList _list;
14271427
private bool _iterating;
14281428

1429-
public ListIterator(PythonList l) {
1429+
internal PythonListIterator(PythonList l) {
14301430
_list = l;
14311431
Reset();
14321432
}
@@ -1451,17 +1451,20 @@ public void __setstate__(int state) {
14511451

14521452
#region IEnumerator Members
14531453

1454+
[PythonHidden]
14541455
public void Reset() {
14551456
_index = -1;
14561457
_iterating = true;
14571458
}
14581459

1460+
[PythonHidden]
14591461
public object Current {
14601462
get {
14611463
return _list._data[_index];
14621464
}
14631465
}
14641466

1467+
[PythonHidden]
14651468
public bool MoveNext() {
14661469
if (_iterating) {
14671470
_index++;
@@ -1474,6 +1477,7 @@ public bool MoveNext() {
14741477

14751478
#region IEnumerable Members
14761479

1480+
[PythonHidden]
14771481
public IEnumerator GetEnumerator() {
14781482
return this;
14791483
}
@@ -1482,8 +1486,8 @@ public IEnumerator GetEnumerator() {
14821486

14831487
#region IDisposable Members
14841488

1485-
public void Dispose() {
1486-
}
1489+
[PythonHidden]
1490+
public void Dispose() { }
14871491

14881492
#endregion
14891493

@@ -1501,12 +1505,12 @@ public int __length_hint__() {
15011505
}
15021506

15031507
[PythonType("list_reverseiterator")]
1504-
public sealed class ListReverseIterator : IEnumerator, IEnumerable, IEnumerable<object>, IEnumerator<object> {
1508+
public sealed class PythonListReverseIterator : IEnumerator, IEnumerable, IEnumerable<object>, IEnumerator<object> {
15051509
private int _index;
15061510
private readonly PythonList _list;
15071511
private bool _iterating;
15081512

1509-
public ListReverseIterator(PythonList l) {
1513+
internal PythonListReverseIterator(PythonList l) {
15101514
_list = l;
15111515
Reset();
15121516
}
@@ -1531,17 +1535,20 @@ public void __setstate__(int state) {
15311535

15321536
#region IEnumerator Members
15331537

1538+
[PythonHidden]
15341539
public void Reset() {
15351540
_index = 0;
15361541
_iterating = true;
15371542
}
15381543

1544+
[PythonHidden]
15391545
public object Current {
15401546
get {
15411547
return _list._data[_list._size - _index];
15421548
}
15431549
}
15441550

1551+
[PythonHidden]
15451552
public bool MoveNext() {
15461553
if (_iterating) {
15471554
_index++;
@@ -1554,6 +1561,7 @@ public bool MoveNext() {
15541561

15551562
#region IEnumerable Members
15561563

1564+
[PythonHidden]
15571565
public IEnumerator GetEnumerator() {
15581566
return this;
15591567
}
@@ -1562,8 +1570,8 @@ public IEnumerator GetEnumerator() {
15621570

15631571
#region IDisposable Members
15641572

1565-
public void Dispose() {
1566-
}
1573+
[PythonHidden]
1574+
public void Dispose() { }
15671575

15681576
#endregion
15691577

Src/IronPython/Runtime/PythonTuple.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ object ICollection.SyncRoot {
281281
#endregion
282282

283283
public virtual IEnumerator __iter__() {
284-
return new TupleEnumerator(this);
284+
return new PythonTupleEnumerator(this);
285285
}
286286

287287
#region IEnumerable Members
@@ -320,7 +320,7 @@ public object __getnewargs__() {
320320
#region IEnumerable<object> Members
321321

322322
IEnumerator<object> IEnumerable<object>.GetEnumerator() {
323-
return new TupleEnumerator(this);
323+
return new PythonTupleEnumerator(this);
324324
}
325325

326326
#endregion
@@ -614,17 +614,18 @@ public MSAst.Expression CreateExpression() {
614614
/// public class to get optimized
615615
/// </summary>
616616
[PythonType("tuple_iterator")]
617-
public sealed class TupleEnumerator : IEnumerable, IEnumerator, IEnumerator<object> {
617+
public sealed class PythonTupleEnumerator : IEnumerable, IEnumerator, IEnumerator<object> {
618618
private int _curIndex;
619619
private PythonTuple _tuple;
620620

621-
public TupleEnumerator(PythonTuple t) {
621+
internal PythonTupleEnumerator(PythonTuple t) {
622622
_tuple = t;
623623
_curIndex = -1;
624624
}
625625

626626
#region IEnumerator Members
627627

628+
[PythonHidden]
628629
public object Current {
629630
get {
630631
// access _data directly because this is what CPython does:
@@ -637,6 +638,7 @@ public object Current {
637638
}
638639
}
639640

641+
[PythonHidden]
640642
public bool MoveNext() {
641643
if ((_curIndex + 1) >= _tuple.Count) {
642644
return false;
@@ -645,6 +647,7 @@ public bool MoveNext() {
645647
return true;
646648
}
647649

650+
[PythonHidden]
648651
public void Reset() {
649652
_curIndex = -1;
650653
}
@@ -653,6 +656,7 @@ public void Reset() {
653656

654657
#region IDisposable Members
655658

659+
[PythonHidden]
656660
public void Dispose() {
657661
GC.SuppressFinalize(this);
658662
}
@@ -661,6 +665,7 @@ public void Dispose() {
661665

662666
#region IEnumerable Members
663667

668+
[PythonHidden]
664669
public IEnumerator GetEnumerator() {
665670
return this;
666671
}

0 commit comments

Comments
 (0)