diff options
Diffstat (limited to 'compiler/pexpr.pas')
-rw-r--r-- | compiler/pexpr.pas | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas index 1558e38263..47801234a3 100644 --- a/compiler/pexpr.pas +++ b/compiler/pexpr.pas @@ -3558,17 +3558,18 @@ implementation (block_type=bt_body) and (token in [_LT,_LSHARPBRACKET]) then begin - if p1.nodetype=typen then - idstr:=ttypenode(p1).typesym.name - else - if (p1.nodetype=loadvmtaddrn) and - (tloadvmtaddrnode(p1).left.nodetype=typen) then - idstr:=ttypenode(tloadvmtaddrnode(p1).left).typesym.name + idstr:=''; + case p1.nodetype of + typen: + idstr:=ttypenode(p1).typesym.name; + loadvmtaddrn: + if tloadvmtaddrnode(p1).left.nodetype=typen then + idstr:=ttypenode(tloadvmtaddrnode(p1).left).typesym.name; + loadn: + idstr:=tloadnode(p1).symtableentry.name; else - if (p1.nodetype=loadn) then - idstr:=tloadnode(p1).symtableentry.name - else - idstr:=''; + ; + end; { if this is the case then the postfix handling is done in sub_expr if necessary } dopostfix:=not could_be_generic(idstr); |