On Saturday 14 October 2006 17:38, Peter Vreman wrote: > > On Saturday 14 October 2006 15:55, Marc Weustink wrote: > >> Hi, > >> > >> if I define 2 types like: > >> > >> type > >> MyA = type string; > >> MyB = type string; > >> > >> are MyA and MyB considered as the same type ? > > > > No, you are explicitly marking them as a new type. This is a very cool > > feature > > of Pascal you wont find in many other languages. > > > > (For instance, you could use it to create a new integer-type for little- > > and > > big-endian numbers, ensuring that you _never_ directly assign a > > little-endian > > number to a big-endian one, or vice versa) > > For the compiler the types are not equal anymore, but they are still > compatible for implicit type conversion. This has mainly impact on > overload choosing and parameter passing. Normal assignments using ':=' are > not affected because of the still available implicit type conversion.
I really feel there should be a way to make two types completely incompatible. How exactly does the compiler figure out the rules for implicit conversion? In the case of wrapper integers in records, are 4-byte records handled as efficiently by the compiler as 4-byte integers? I suspect it's some radically different code that handles it. -- Regards, Christian Iversen _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel