diff --git a/Compiler/PCU/PCUReader.cs b/Compiler/PCU/PCUReader.cs index f0f02df80..9d5928b60 100644 --- a/Compiler/PCU/PCUReader.cs +++ b/Compiler/PCU/PCUReader.cs @@ -82,7 +82,10 @@ namespace PascalABCCompiler.PCU internal void AddVarToOrderList(var_definition_node vdn, int ind) { - interf_var_list.Add(ind,vdn); + if (!interf_var_list.ContainsKey(ind)) + interf_var_list.Add(ind, vdn); + else + interf_var_list[ind] = vdn; } internal void AddTypeToOrderList(common_type_node ctn, int ind) diff --git a/TestSuite/units/u_samename.pas b/TestSuite/units/u_samename.pas new file mode 100644 index 000000000..c865d93dd --- /dev/null +++ b/TestSuite/units/u_samename.pas @@ -0,0 +1,5 @@ +unit u_samename; + +var val_a := new System.IntPtr(0); + +end. \ No newline at end of file diff --git a/TestSuite/usesunits/use_samename.pas b/TestSuite/usesunits/use_samename.pas new file mode 100644 index 000000000..50e377234 --- /dev/null +++ b/TestSuite/usesunits/use_samename.pas @@ -0,0 +1,7 @@ +uses u_samename; + +function val_a := u_samename.val_a; + +begin + assert(val_a() = System.IntPtr(0)); +end. \ No newline at end of file