mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-04 04:17:53 +01:00
* arrayconstructor convert for in
This commit is contained in:
parent
f2274e0248
commit
277cef9696
@ -38,7 +38,8 @@ implementation
|
||||
globtype,systems,
|
||||
cobjects,verbose,globals,
|
||||
symtable,aasm,types,
|
||||
hcodegen,htypechk,pass_1
|
||||
hcodegen,htypechk,pass_1,
|
||||
tccnv
|
||||
{$ifdef i386}
|
||||
{$ifdef ag386bin}
|
||||
,i386base
|
||||
@ -92,8 +93,12 @@ implementation
|
||||
if codegenerror then
|
||||
exit;
|
||||
|
||||
{ Convert array constructor first to set }
|
||||
if is_array_constructor(p^.right^.resulttype) then
|
||||
arrayconstructor_to_set(p^.right);
|
||||
|
||||
if p^.right^.resulttype^.deftype<>setdef then
|
||||
CGMessage(sym_e_set_expected);
|
||||
CGMessage(sym_e_set_expected);
|
||||
|
||||
firstpass(p^.left);
|
||||
if codegenerror then
|
||||
@ -155,7 +160,7 @@ implementation
|
||||
exit;
|
||||
{ both types must be compatible }
|
||||
if not(is_equal(p^.left^.resulttype,p^.right^.resulttype)) and
|
||||
not(isconvertable(p^.left^.resulttype,p^.right^.resulttype,ct,ordconstn,false)) then
|
||||
(isconvertable(p^.left^.resulttype,p^.right^.resulttype,ct,ordconstn,false)=0) then
|
||||
CGMessage(type_e_mismatch);
|
||||
{ Check if only when its a constant set }
|
||||
if (p^.left^.treetype=ordconstn) and (p^.right^.treetype=ordconstn) then
|
||||
@ -249,7 +254,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.6 1999-02-22 02:15:55 peter
|
||||
Revision 1.7 1999-03-02 18:22:36 peter
|
||||
* arrayconstructor convert for in
|
||||
|
||||
Revision 1.6 1999/02/22 02:15:55 peter
|
||||
* updates for ag386bin
|
||||
|
||||
Revision 1.5 1998/12/18 17:15:40 peter
|
||||
|
||||
Loading…
Reference in New Issue
Block a user