@@ -27,16 +27,16 @@ defmodule Kernel.TracersTest do
2727 Foo
2828 """ )
2929
30- assert_receive { :start , % { lexical_tracker: pid } } when is_pid ( pid )
31- assert_receive { :stop , % { lexical_tracker: pid } } when is_pid ( pid )
30+ assert_received { :start , % { lexical_tracker: pid } } when is_pid ( pid )
31+ assert_received { :stop , % { lexical_tracker: pid } } when is_pid ( pid )
3232 end
3333
3434 test "traces alias references" do
3535 compile_string ( """
3636 Foo
3737 """ )
3838
39- assert_receive { { :alias_reference , meta , Foo } , _ }
39+ assert_received { { :alias_reference , meta , Foo } , _ }
4040 assert meta [ :line ] == 1
4141 assert meta [ :column ] == 1
4242 end
@@ -50,17 +50,17 @@ defmodule Kernel.TracersTest do
5050 Bar
5151 """ )
5252
53- assert_receive { { :alias , meta , Hello.World , World , [ ] } , _ }
53+ assert_received { { :alias , meta , Hello.World , World , [ ] } , _ }
5454 assert meta [ :line ] == 1
5555 assert meta [ :column ] == 1
56- assert_receive { { :alias_expansion , meta , World , Hello.World } , _ }
56+ assert_received { { :alias_expansion , meta , World , Hello.World } , _ }
5757 assert meta [ :line ] == 2
5858 assert meta [ :column ] == 1
5959
60- assert_receive { { :alias , meta , Foo , Bar , [ as: Bar , warn: true ] } , _ }
60+ assert_received { { :alias , meta , Foo , Bar , [ as: Bar , warn: true ] } , _ }
6161 assert meta [ :line ] == 4
6262 assert meta [ :column ] == 1
63- assert_receive { { :alias_expansion , meta , Bar , Foo } , _ }
63+ assert_received { { :alias_expansion , meta , Bar , Foo } , _ }
6464 assert meta [ :line ] == 5
6565 assert meta [ :column ] == 1
6666 end
@@ -72,15 +72,19 @@ defmodule Kernel.TracersTest do
7272 {1, ""} = parse("1")
7373 """ )
7474
75- assert_receive { { :import , meta , Integer , only: [ is_odd: 1 , parse: 1 ] } , _ }
75+ assert_received { { :import , meta , Integer , only: [ is_odd: 1 , parse: 1 ] } , _ }
7676 assert meta [ :line ] == 1
7777 assert meta [ :column ] == 1
7878
79- assert_receive { { :imported_macro , meta , Integer , :is_odd , 1 } , _ }
79+ assert_received { { :imported_macro , meta , Integer , :is_odd , 1 } , _ }
8080 assert meta [ :line ] == 2
8181 assert meta [ :column ] == 8
8282
83- assert_receive { { :imported_function , meta , Integer , :parse , 1 } , _ }
83+ assert_received { { :imported_function , meta , Integer , :parse , 1 } , _ }
84+ assert meta [ :line ] == 3
85+ assert meta [ :column ] == 11
86+
87+ assert_received { { :remote_function , meta , Integer , :parse , 1 } , _ }
8488 assert meta [ :line ] == 3
8589 assert meta [ :column ] == 11
8690 end
@@ -92,15 +96,15 @@ defmodule Kernel.TracersTest do
9296 &parse/1
9397 """ )
9498
95- assert_receive { { :import , meta , Integer , only: [ is_odd: 1 , parse: 1 ] } , _ }
99+ assert_received { { :import , meta , Integer , only: [ is_odd: 1 , parse: 1 ] } , _ }
96100 assert meta [ :line ] == 1
97101 assert meta [ :column ] == 1
98102
99- assert_receive { { :imported_macro , meta , Integer , :is_odd , 1 } , _ }
103+ assert_received { { :imported_macro , meta , Integer , :is_odd , 1 } , _ }
100104 assert meta [ :line ] == 2
101105 assert meta [ :column ] == 2
102106
103- assert_receive { { :imported_function , meta , Integer , :parse , 1 } , _ }
107+ assert_received { { :imported_function , meta , Integer , :parse , 1 } , _ }
104108 assert meta [ :line ] == 3
105109 assert meta [ :column ] == 2
106110 end
@@ -110,7 +114,7 @@ defmodule Kernel.TracersTest do
110114 %URI{path: "/"}
111115 """ )
112116
113- assert_receive { { :struct_expansion , meta , URI , [ :path ] } , _ }
117+ assert_received { { :struct_expansion , meta , URI , [ :path ] } , _ }
114118 assert meta [ :line ] == 1
115119 assert meta [ :column ] == 1
116120 end
@@ -123,15 +127,15 @@ defmodule Kernel.TracersTest do
123127 "foo" = Atom.to_string(:foo)
124128 """ )
125129
126- assert_receive { { :remote_macro , meta , Integer , :is_odd , 1 } , _ }
130+ assert_received { { :remote_macro , meta , Integer , :is_odd , 1 } , _ }
127131 assert meta [ :line ] == 2
128132 assert meta [ :column ] == 16
129133
130- assert_receive { { :remote_function , meta , Integer , :parse , 1 } , _ }
134+ assert_received { { :remote_function , meta , Integer , :parse , 1 } , _ }
131135 assert meta [ :line ] == 3
132136 assert meta [ :column ] == 19
133137
134- assert_receive { { :remote_function , meta , Atom , :to_string , 1 } , _ }
138+ assert_received { { :remote_function , meta , Atom , :to_string , 1 } , _ }
135139 assert meta [ :line ] == 4
136140 assert meta [ :column ] == 14
137141 end
@@ -143,11 +147,11 @@ defmodule Kernel.TracersTest do
143147 &Integer.parse/1
144148 """ )
145149
146- assert_receive { { :remote_macro , meta , Integer , :is_odd , 1 } , _ }
150+ assert_received { { :remote_macro , meta , Integer , :is_odd , 1 } , _ }
147151 assert meta [ :line ] == 2
148152 assert meta [ :column ] == 10
149153
150- assert_receive { { :remote_function , meta , Integer , :parse , 1 } , _ }
154+ assert_received { { :remote_function , meta , Integer , :parse , 1 } , _ }
151155 assert meta [ :line ] == 3
152156 assert meta [ :column ] == 10
153157 end
@@ -161,11 +165,11 @@ defmodule Kernel.TracersTest do
161165 end
162166 """ )
163167
164- assert_receive { { :local_macro , meta , :foo , 1 } , _ }
168+ assert_received { { :local_macro , meta , :foo , 1 } , _ }
165169 assert meta [ :line ] == 4
166170 assert meta [ :column ] == 21
167171
168- assert_receive { { :local_function , meta , :bar , 1 } , _ }
172+ assert_received { { :local_function , meta , :bar , 1 } , _ }
169173 assert meta [ :line ] == 4
170174 assert meta [ :column ] == 32
171175 after
@@ -182,11 +186,11 @@ defmodule Kernel.TracersTest do
182186 end
183187 """ )
184188
185- assert_receive { { :local_macro , meta , :foo , 1 } , _ }
189+ assert_received { { :local_macro , meta , :foo , 1 } , _ }
186190 assert meta [ :line ] == 4
187191 assert meta [ :column ] == 21
188192
189- assert_receive { { :local_function , meta , :bar , 1 } , _ }
193+ assert_received { { :local_function , meta , :bar , 1 } , _ }
190194 assert meta [ :line ] == 4
191195 assert meta [ :column ] == 29
192196 after
@@ -201,8 +205,8 @@ defmodule Kernel.TracersTest do
201205 end
202206 """ )
203207
204- assert_receive { :defmodule , % { module: Sample , function: nil } }
205- assert_receive { { :on_module , << _ :: binary >> , :none } , % { module: Sample , function: nil } }
208+ assert_received { :defmodule , % { module: Sample , function: nil } }
209+ assert_received { { :on_module , << _ :: binary >> , :none } , % { module: Sample , function: nil } }
206210 after
207211 :code . purge ( Sample )
208212 :code . delete ( Sample )
@@ -213,8 +217,8 @@ defmodule Kernel.TracersTest do
213217 Module.create(Sample, :ok, __ENV__)
214218 """ )
215219
216- assert_receive { :defmodule , % { module: Sample , function: nil } }
217- assert_receive { { :on_module , << _ :: binary >> , :none } , % { module: Sample , function: nil } }
220+ assert_received { :defmodule , % { module: Sample , function: nil } }
221+ assert_received { { :on_module , << _ :: binary >> , :none } , % { module: Sample , function: nil } }
218222 after
219223 :code . purge ( Sample )
220224 :code . delete ( Sample )
@@ -226,7 +230,7 @@ defmodule Kernel.TracersTest do
226230 "foo\# {arg}"
227231 """ )
228232
229- assert_receive { { :remote_macro , meta , Kernel , :to_string , 1 } , _env }
233+ assert_received { { :remote_macro , meta , Kernel , :to_string , 1 } , _env }
230234 assert meta [ :from_interpolation ]
231235 end
232236
@@ -236,7 +240,7 @@ defmodule Kernel.TracersTest do
236240 foo[:bar]
237241 """ )
238242
239- assert_receive { { :remote_function , meta , Access , :get , 2 } , _env }
243+ assert_received { { :remote_function , meta , Access , :get , 2 } , _env }
240244 assert meta [ :from_brackets ]
241245
242246 compile_string ( """
@@ -248,17 +252,37 @@ defmodule Kernel.TracersTest do
248252 end
249253 """ )
250254
251- assert_receive { { :remote_function , meta , Access , :get , 2 } , _env }
255+ assert_received { { :remote_function , meta , Access , :get , 2 } , _env }
252256 assert meta [ :from_brackets ]
253257
254258 compile_string ( """
255259 %{bar: 3}[:bar]
256260 """ )
257261
258- assert_receive { { :remote_function , meta , Access , :get , 2 } , _env }
262+ assert_received { { :remote_function , meta , Access , :get , 2 } , _env }
259263 assert meta [ :from_brackets ]
260264 end
261265
266+ test "does not trace bind quoted twice" do
267+ compile_string ( """
268+ quote bind_quoted: [foo: List.flatten([])] do
269+ foo
270+ end
271+ """ )
272+
273+ assert_received { { :remote_function , _ , List , :flatten , 1 } , _ }
274+ refute_received { { :remote_function , _ , List , :flatten , 1 } , _ }
275+ end
276+
277+ test "does not trace captures twice" do
278+ compile_string ( """
279+ &List.flatten/1
280+ """ )
281+
282+ assert_received { { :remote_function , _ , List , :flatten , 1 } , _ }
283+ refute_received { { :remote_function , _ , List , :flatten , 1 } , _ }
284+ end
285+
262286 """
263287 # Make sure this module is compiled with column information
264288 defmodule MacroWithColumn do
@@ -278,7 +302,7 @@ defmodule Kernel.TracersTest do
278302 MacroWithColumn.some_macro(["hello", "world", "!"])
279303 """ )
280304
281- assert_receive { { :alias_reference , meta , Enum } , _env }
305+ assert_received { { :alias_reference , meta , Enum } , _env }
282306 refute meta [ :column ]
283307 end
284308end
0 commit comments