pexpr.pas, factor.factor_read_id:

* handle specializations after a type symbol

git-svn-id: trunk@32387 -
This commit is contained in:
svenbarth 2015-11-21 10:52:19 +00:00
parent 9aa3c23b18
commit 0471db5bb6

View File

@ -2984,6 +2984,35 @@ implementation
begin
again:=false;
end
else
begin
if (m_delphi in current_settings.modeswitches) and
(sp_generic_dummy in srsym.symoptions) and
(token in [_LT,_LSHARPBRACKET]) then
begin
if block_type in [bt_type,bt_const_type,bt_var_type] then
begin
if not handle_specialize_inline_specialization(srsym,srsymtable,spezcontext) or (srsym.typ=procsym) then
begin
spezcontext.free;
p1:=cerrornode.create;
if try_to_consume(_LKLAMMER) then
begin
parse_paras(false,false,_RKLAMMER);
consume(_RKLAMMER);
end;
end
else
begin
if srsym.typ<>typesym then
internalerror(2015071705);
hdef:=ttypesym(srsym).typedef;
p1:=handle_factor_typenode(hdef,getaddr,again,srsym,ef_type_only in flags);
end;
end
else
p1:=cspecializenode.create(nil,getaddr,srsym)
end
else
begin
{ We need to know if this unit uses Variants }
@ -2993,6 +3022,7 @@ implementation
p1:=handle_factor_typenode(hdef,getaddr,again,srsym,ef_type_only in flags);
end;
end;
end;
enumsym :
begin