* 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;
end end
else 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 if is_main then
begin begin
mainsource:=hs; mainsource:=hs;

View File

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