Re: [fpc-devel] for .. in documentation and classes based iterators.

2019-09-03 Thread Michael Van Canneyt



On Tue, 3 Sep 2019, Marco van de Voort wrote:



Op 2019-09-03 om 12:59 schreef Michael Van Canneyt:


"5. Any type for which an enumerator operator is defined. The 
enumerator operator must return a structured type that implements the 
IEnumerator interface. The type of the control variable’s type must 
equal the type of the enumerator’s GetCurrent return value type."


but maybe that could be said more explicitly?


What should be said more explicitly ?
What does the delphi duck typing method getenumerator():TIterator; do 
with the iterator if it is of a classtype (not interface)? Where does it 
fit in the 5 cases outlined in the documentation article? Probably 5, 
but that only talks about the enumerator operator.


I will improve that before 3.2 is out.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] for .. in documentation and classes based iterators.

2019-09-03 Thread Marco van de Voort


Op 2019-09-03 om 12:59 schreef Michael Van Canneyt:


"5. Any type for which an enumerator operator is defined. The 
enumerator operator must return a structured type that implements the 
IEnumerator interface. The type of the control variable’s type must 
equal the type of the enumerator’s GetCurrent return value type."


but maybe that could be said more explicitly?


What should be said more explicitly ?
What does the delphi duck typing method getenumerator():TIterator; do 
with the iterator if it is of a classtype (not interface)? Where does it 
fit in the 5 cases outlined in the documentation article? Probably 5, 
but that only talks about the enumerator operator.

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


Re: [fpc-devel] for .. in documentation and classes based iterators.

2019-09-03 Thread Michael Van Canneyt



On Tue, 3 Sep 2019, Marco van de Voort wrote:



I did an initial patch to add for..in iterator support in fcl-stl 
ghashmap (https://bugs.freepascal.org/view.php?id=35940)


I've looked at the docs of for..in, and it doesn't seem to name the 
delphi getenumerator() method in its options. I assume it is equal to 
point 5, the enumerator operator, because a for..in this way doesn't 
cause a memory leak.


"5. Any type for which an enumerator operator is defined. The enumerator 
operator must return a structured type that implements the IEnumerator 
interface. The type of the control variable’s type must equal the type 
of the enumerator’s GetCurrent return value type."


but maybe that could be said more explicitly?


What should be said more explicitly ?

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel


[fpc-devel] for .. in documentation and classes based iterators.

2019-09-03 Thread Marco van de Voort


I did an initial patch to add for..in iterator support in fcl-stl 
ghashmap (https://bugs.freepascal.org/view.php?id=35940)


I've looked at the docs of for..in, and it doesn't seem to name the 
delphi getenumerator() method in its options. I assume it is equal to 
point 5, the enumerator operator, because a for..in this way doesn't 
cause a memory leak.


"5. Any type for which an enumerator operator is defined. The enumerator 
operator must return a structured type that implements the IEnumerator 
interface. The type of the control variable’s type must equal the type 
of the enumerator’s GetCurrent return value type."


but maybe that could be said more explicitly?

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel