@@ -83,12 +83,6 @@ defmodule ExUnit.DocTest do
83
83
run.
84
84
"""
85
85
86
- defexception CompileError , error: nil , expression: nil do
87
- def message ( __MODULE__ [ error : error , expression: expr ] ) do
88
- "#{ inspect elem ( error , 0 ) } : #{ error . message } while parsing expression `#{ expr } `"
89
- end
90
- end
91
-
92
86
defrecord Test , fun_arity: nil , line: nil , expr: nil , expected: nil
93
87
94
88
@ doc """
@@ -166,8 +160,8 @@ defmodule ExUnit.DocTest do
166
160
location = [ line: line , file: Path . relative_to ( file , System . cwd! ) ]
167
161
stack = Macro . escape [ { module , :__MODULE__ , 0 , location } ]
168
162
169
- expr_ast = string_to_ast ( line , file , test . expr )
170
- expected_ast = string_to_ast ( line , file , expected )
163
+ expr_ast = string_to_ast ( module , line , file , test . expr )
164
+ expected_ast = string_to_ast ( module , line , file , expected )
171
165
172
166
quoted =
173
167
quote do
@@ -212,7 +206,7 @@ defmodule ExUnit.DocTest do
212
206
location = [ line: line , file: Path . relative_to ( file , System . cwd! ) ]
213
207
stack = Macro . escape [ { module , :__MODULE__ , 0 , location } ]
214
208
215
- expr_ast = string_to_ast ( line , file , test . expr )
209
+ expr_ast = string_to_ast ( module , line , file , test . expr )
216
210
217
211
quoted =
218
212
quote do
@@ -256,11 +250,21 @@ defmodule ExUnit.DocTest do
256
250
quoted
257
251
end
258
252
259
- defp string_to_ast ( line , file , expr ) do
253
+ defp string_to_ast ( module , line , file , expr ) do
254
+ location = [ line: line , file: Path . relative_to ( file , System . cwd! ) ]
255
+ stack = Macro . escape [ { module , :__MODULE__ , 0 , location } ]
260
256
try do
261
257
Code . string_to_ast! ( expr , line: line , file: file )
262
258
rescue e ->
263
- raise CompileError , error: e , expression: expr
259
+ quote do
260
+ raise ExUnit.ExpectationError ,
261
+ [ prelude: "Expected doctest's expression" ,
262
+ expected: unquote ( expr ) ,
263
+ actual: "successfully" ,
264
+ reason: "compile" ,
265
+ instead: unquote ( Macro . escape e ) ] ,
266
+ unquote ( stack )
267
+ end
264
268
end
265
269
end
266
270
0 commit comments