* write better hint message about the first occurence of an identifuer in case of a duplicate identifier error

git-svn-id: trunk@29400 -
This commit is contained in:
florian 2015-01-04 21:23:26 +00:00
parent d407b668d1
commit 9a9bf4be91
2 changed files with 15 additions and 2 deletions

View File

@ -836,7 +836,13 @@ var
end;
end
else
temp:=' not available';
begin
{ still register the source module for proper error messages
since source_avail for the module is still false, this should not hurt }
sourcefiles.register_file(tdosinputfile.create(hs));
temp:=' not available';
end;
if is_main then
begin
mainsource:=hs;

View File

@ -2043,6 +2043,7 @@ implementation
procedure duplicatesym(var hashedid:THashedIDString;dupsym,origsym:TSymEntry);
var
st : TSymtable;
filename : TIDString;
begin
Message1(sym_e_duplicate_id,tsym(origsym).realname);
{ Write hint where the original symbol was found }
@ -2054,7 +2055,13 @@ implementation
st.iscurrentunit then
Message2(sym_h_duplicate_id_where,current_module.sourcefiles.get_file_name(fileindex),tostr(line))
else if assigned(st.name) then
Message2(sym_h_duplicate_id_where,'unit '+st.name^,tostr(line));
begin
filename:=find_module_from_symtable(st).sourcefiles.get_file_name(fileindex);
if filename<>'' then
Message2(sym_h_duplicate_id_where,'unit '+st.name^+': '+filename,tostr(line))
else
Message2(sym_h_duplicate_id_where,'unit '+st.name^,tostr(line))
end;
end;
{ Rename duplicate sym to an unreachable name, but it can be
inserted in the symtable without errors }