> > I don't know whether it is still the case but there was a time the 'is' > operator relied on RTTI. So as soon as you have two different RTTI > entries for, e.g., TMyList<integer> (which could happen if you compile > with packages) the operator needs some 'repair'.
This is why FPC has specialize (to emphasis this): only class instances having the same specialized generic type are considered being equal: type TList1 = specialize TList<Longint>; TList2 = specialize TList<Longint>; var l1a,l1b : TList1; l2 : TList2; Only l1a and l1b are assignment compatible. This is like records or classes are handled in pascal: even records with exactly the same fields are not assignment compatible. So generics in packages are a non issue for fpc: every package specializes the generics created by the units contained in the package as it is done currently by a program: the specialization and code generation for all generics specialized by a program and its units is done during compilation of the program. For packages, it is just done during package compilation. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel