diff --git a/compiler/nld.pas b/compiler/nld.pas index eb4f313e87..2140b4cfa9 100644 --- a/compiler/nld.pas +++ b/compiler/nld.pas @@ -108,6 +108,8 @@ interface tarrayconstructorrangenodeclass = class of tarrayconstructorrangenode; tarrayconstructornode = class(tbinarynode) + private + function has_range_node:boolean; protected procedure wrapmanagedvarrec(var n: tnode);virtual;abstract; public @@ -987,6 +989,24 @@ implementation end; + function tarrayconstructornode.has_range_node:boolean; + var + n : tarrayconstructornode; + begin + result:=false; + n:=self; + while assigned(n) do + begin + if assigned(n.left) and (n.left.nodetype=arrayconstructorrangen) then + begin + result:=true; + break; + end; + n:=tarrayconstructornode(n.right); + end; + end; + + function tarrayconstructornode.pass_typecheck:tnode; var hdef : tdef;