   end
 
   test "invalid fn args" do
-    assert_compile_fail TokenMissingError,
+    assert_eval_raise TokenMissingError,
       "nofile:1: missing terminator: end (for \"fn\" starting at line 1)",
       'fn 1'
   end
 
   test "invalid escape" do
-    assert_compile_fail TokenMissingError,
+    assert_eval_raise TokenMissingError,
       "nofile:1: invalid escape \\ at end of file",
       '1 \\'
   end
 
   test "function local conflict" do
-    assert_compile_fail CompileError,
+    assert_eval_raise CompileError,
       "nofile:3: imported Kernel.&&/2 conflicts with local function",
       '''
       defmodule Kernel.ErrorsTest.FunctionLocalConflict do

  test "syntax error before sigil" do
    msg = fn x -> "nofile:1: syntax error before: sigil ~s starting with content '#{x}'" end

    assert_compile_fail SyntaxError, msg.("bar baz"), '~s(foo) ~s(bar baz)'
    assert_compile_fail SyntaxError, msg.(""), '~s(foo) ~s()'
    assert_compile_fail SyntaxError, msg.("bar "), '~s(foo) ~s(bar \#{:baz})'
    assert_compile_fail SyntaxError, msg.(""), '~s(foo) ~s(\#{:bar} baz)'
  end

  test "op ambiguity" do

  end

  test "undefined non-local function" do
    assert_eval_raise CompileError,
      "nofile:1: undefined function call/2",
      'call foo, do: :foo'
  end
