@@ -1677,11 +1677,11 @@ defmodule Module do
1677
1677
1678
1678
case :ets . lookup ( set , key ) do
1679
1679
[ { _ , _ , :accumulate , traces } ] ->
1680
- trace_attribute ( true , module , traces , set , key , [ ] )
1680
+ trace_attribute ( true , module , traces , set , key , nil , [ ] )
1681
1681
reverse_values ( :ets . take ( bag , { :accumulate , key } ) , [ ] )
1682
1682
1683
1683
[ { _ , value , _ , traces } ] ->
1684
- trace_attribute ( module , traces )
1684
+ trace_attribute ( module , key , nil , traces )
1685
1685
:ets . delete ( set , key )
1686
1686
value
1687
1687
@@ -1998,15 +1998,15 @@ defmodule Module do
1998
1998
default
1999
1999
2000
2000
[ { _ , _ , :accumulate , traces } ] ->
2001
- trace_attribute ( trace? , module , traces , set , key , [ ] )
2001
+ trace_attribute ( trace? , module , traces , set , key , caller_line , [ ] )
2002
2002
lookup_accumulate_attribute ( bag , key , default , last_accumulated? )
2003
2003
2004
2004
[ { _ , value , warn_line , traces } ] when is_integer ( warn_line ) ->
2005
- trace_attribute ( trace? , module , traces , set , key , [ { 3 , :used } ] )
2005
+ trace_attribute ( trace? , module , traces , set , key , caller_line , [ { 3 , :used } ] )
2006
2006
value
2007
2007
2008
2008
[ { _ , value , _ , traces } ] ->
2009
- trace_attribute ( trace? , module , traces , set , key , [ ] )
2009
+ trace_attribute ( trace? , module , traces , set , key , caller_line , [ ] )
2010
2010
value
2011
2011
2012
2012
[ ] when is_integer ( caller_line ) ->
@@ -2034,12 +2034,15 @@ defmodule Module do
2034
2034
end
2035
2035
end
2036
2036
2037
- defp trace_attribute ( module , traces ) do
2037
+ defp trace_attribute ( module , key , caller_line , traces ) do
2038
2038
:lists . foreach (
2039
2039
fn { line , lexical_tracker , tracers , aliases } ->
2040
+ line = caller_line || line
2041
+
2040
2042
env = % {
2041
2043
Macro.Env . __struct__ ( )
2042
2044
| line: line ,
2045
+ file: "@#{ key } " ,
2043
2046
lexical_tracker: lexical_tracker ,
2044
2047
module: module ,
2045
2048
tracers: tracers
@@ -2056,10 +2059,10 @@ defmodule Module do
2056
2059
)
2057
2060
end
2058
2061
2059
- defp trace_attribute ( trace? , module , traces , set , key , updates ) do
2062
+ defp trace_attribute ( trace? , module , traces , set , key , caller_line , updates ) do
2060
2063
updates =
2061
2064
if trace? and traces != [ ] do
2062
- trace_attribute ( module , traces )
2065
+ trace_attribute ( module , key , caller_line , traces )
2063
2066
updates ++ [ { 4 , [ ] } ]
2064
2067
else
2065
2068
updates
0 commit comments