> On Apr 10, 2021, at 6:54 AM, Sven Barth <[email protected]> wrote:
>
> As an additional note: if you take a look at
> tarrayconstructornode.pass_typecheck you can see that the array type always
> has the ado_IsConstructor set and if it contains of incompatible types the
> ado_IsVariant is set as well. So if ado_IsVariant is *not* set, then you can
> rely on the elementdef of the arraydef.
I checked before and here's what I got. Maybe pass_typecheck hasn't been called
yet? If not I'll have to reproduce that code and determine how it knows the
elements are not uniform. Thanks.
elecount:4
typesym:{Array Of Const/Constant Open} Array of ShortInt
ado_IsConvertedPointer: FALSE
ado_IsDynamicArray: FALSE
ado_IsVariant: FALSE
ado_IsConstructor: TRUE
ado_IsArrayOfConst: FALSE
ado_IsConstString: FALSE
ado_IsBitPacked: FALSE
ado_IsVector: FALSE
ado_IsGeneric: FALSE
writeln('elecount:',tarraydef(caller_def).elecount);
writeln('typesym:',tarraydef(caller_def).typesym.realname);
writeln('ado_IsConvertedPointer: ',ado_IsConvertedPointer in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsDynamicArray: ',ado_IsDynamicArray in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsVariant: ',ado_IsVariant in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsConstructor: ',ado_IsConstructor in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsArrayOfConst: ',ado_IsArrayOfConst in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsConstString: ',ado_IsConstString in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsBitPacked: ',ado_IsBitPacked in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsVector: ',ado_IsVector in
tarraydef(caller_def).arrayoptions);
writeln('ado_IsGeneric: ',ado_IsGeneric in
tarraydef(caller_def).arrayoptions);
Regards,
Ryan Joseph
_______________________________________________
fpc-devel maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel