fpc/rtl/objpas/classes
paul aa5a5e79ce merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994:
rtl: add enumerators to the basic classes
tests: add enumerators test which compiles and work both by fpc and dcc
compiler: 
  + start for-in loop implementation: implement for-in loop for types (enumerations and ranges), strings, arrays and sets. todo: perform type checking, optimize array and string loops - use temp for expression, implement for-in loop for classes
test:
  + add a simple test for the 'for-in' loop
compiler: fix string for-in loop. now it uses a temp variable to store string expression result
complier: fix for-in array loop. use a temp variable for the loop expression only if loop is not an open array loop
complier: continue enumerator implementation:
  + add operator enumerator which give an ability to add enumerator for an existent type (for example to override builtin string enumerator)
  + add class enumerator support via delphi compatible GetEnumerator method + enumerator class/object template (function MoveNext: Boolean; property Current)
  + tests
compiler: fix for-in loop for arrays. delphi does not copy arrays to a temp variable and it is possible to change array during loop. + test
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: add reference for the enumerator operator when it is used + another test for operator enumerator for a class
compiler: enumerator directive support:
  + allow to mark methods and properties by 'enumerator MoveNext' and 'enumerator Current' modifiers. Parser checks return types and duplicates.
  + prefer *marked* by enumerator directive methods and properties than GetEnumerator and Current builtin symbols
  + increase ppu version
  + test
rtl: add IEnumerator and IEnumerable interfaces declarations
tests: for-in loop tests:
  + add small comment at the top of test program
compiler: allow 'enumerator MoveNext' for the interface function declaration + test
compiler: move all for-in loop helpers to the nflw unit
compiler: don't allow the compiler to choose the non-valid enumerator operator for the for-in loop

git-svn-id: trunk@14008 -
2009-11-02 03:24:48 +00:00
..
action.inc
bits.inc * fixes and cleanups for tbits (patch by Sergei Gorelkin, mantis #13890) 2009-06-06 14:35:25 +00:00
classes.inc Merged revisions 11665-11738 via svnmerge from 2008-09-10 20:14:31 +00:00
classesh.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
collect.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
compon.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
constsg.inc
constss.inc
cregist.inc
dm.inc
filer.inc
intf.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
lists.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
parser.inc rtl: introduce new TObject methods: UnitName, GetHashCode, Equals, ToString added for compatibility with delphi 2009. 2009-11-01 16:22:47 +00:00
persist.inc * TInterfacedPersistent requires that the interface is requested from the owner if an owner is SetActive 2009-07-19 09:36:43 +00:00
reader.inc - removed SUPPORT_UNALIGNED, FPC_SUPPORTS_UNALIGNED and FPC_UNALIGNED_FIXED 2009-08-23 07:51:26 +00:00
resref.inc Inline methods inside classes unit protected by {$ifdef classesinline} 2008-05-11 10:19:01 +00:00
sllist.inc Merged revisions 9263-10571 via svnmerge from 2008-03-27 20:15:57 +00:00
streams.inc * TStreamAdapter + relevant constants. From 10608 2009-10-31 20:13:41 +00:00
stringl.inc merge revisions: 13909,13923,13924,13934,13935,13942,13943,13944,13946,13948,13950,13951,13952,13983,13994: 2009-11-02 03:24:48 +00:00
twriter.inc
util.inc * Removed inttostr, isvalidident so sysutils versions are used. 2007-03-24 22:11:03 +00:00
writer.inc * Patch from Mattias Gaertner to fix property overrides. (bug ID 14885) 2009-10-24 12:34:26 +00:00