@@ -91,16 +91,24 @@ defmodule Kernel.QuoteTest do
91
91
assert nested_quote_in_macro ( ) == 1
92
92
end
93
93
94
- Enum . each ( [ foo: 1 , bar: 2 , baz: 3 ] , fn { k , v } ->
95
- def unquote ( k ) ( arg ) do
96
- unquote ( v ) + arg
94
+ defmodule Dyn do
95
+ for { k , v } <- [ foo: 1 , bar: 2 , baz: 3 ] do
96
+ # Local call unquote
97
+ def unquote ( k ) ( ) , do: unquote ( v )
98
+
99
+ # Remote call unquote
100
+ def unquote ( k ) ( arg ) , do: __MODULE__ . unquote ( k ) ( ) + arg
97
101
end
98
- end )
102
+ end
99
103
100
104
test "dynamic definition with unquote" do
101
- assert foo ( 1 ) == 2
102
- assert bar ( 2 ) == 4
103
- assert baz ( 3 ) == 6
105
+ assert Dyn . foo ( ) == 1
106
+ assert Dyn . bar ( ) == 2
107
+ assert Dyn . baz ( ) == 3
108
+
109
+ assert Dyn . foo ( 1 ) == 2
110
+ assert Dyn . bar ( 2 ) == 4
111
+ assert Dyn . baz ( 3 ) == 6
104
112
end
105
113
106
114
test "splice on root" do
@@ -287,7 +295,7 @@ defmodule Kernel.QuoteTest.ErrorsTest do
287
295
RuntimeError ->
288
296
mod = Kernel.QuoteTest.ErrorsTest
289
297
file = __ENV__ . file |> Path . relative_to_cwd ( ) |> String . to_charlist ( )
290
- assert [ { ^ mod , :will_raise , 2 , [ file: ^ file , line: 267 ] } | _ ] = __STACKTRACE__
298
+ assert [ { ^ mod , :will_raise , 2 , [ file: ^ file , line: 275 ] } | _ ] = __STACKTRACE__
291
299
else
292
300
_ -> flunk ( "expected failure" )
293
301
end
@@ -300,7 +308,7 @@ defmodule Kernel.QuoteTest.ErrorsTest do
300
308
RuntimeError ->
301
309
mod = Kernel.QuoteTest.ErrorsTest
302
310
file = __ENV__ . file |> Path . relative_to_cwd ( ) |> String . to_charlist ( )
303
- assert [ { ^ mod , _ , _ , [ file: ^ file , line: 298 ] } | _ ] = __STACKTRACE__
311
+ assert [ { ^ mod , _ , _ , [ file: ^ file , line: 306 ] } | _ ] = __STACKTRACE__
304
312
else
305
313
_ -> flunk ( "expected failure" )
306
314
end
0 commit comments