   Returns Elixir manifests.
   """
   def manifests, do: [manifest()]
-  defp manifest, do: Path.join(Mix.Project.manifest_path, @manifest)
+  defp manifest, do: Path.join(Mix.Project.manifest_path(), @manifest)
 
   @doc """
   Cleans up compilation artifacts.
   """
   def clean do
-    dest = Mix.Project.compile_path
+    dest = Mix.Project.compile_path()
     Mix.Compilers.Elixir.clean(manifest(), dest)
   end
 end

  def run(args) do
    {opts, _, _} = OptionParser.parse(args, switches: @switches)

    project = Mix.Project.config
    dest = Mix.Project.compile_path(project)
    srcs = project[:elixirc_paths]

    unless is_list(srcs) do
      Mix.raise ":elixirc_paths should be a list of paths, got: #{inspect(srcs)}"
    end

    manifest = manifest()
    configs  = Mix.Project.config_files ++ Mix.Tasks.Compile.Erlang.manifests
    force    = opts[:force] || Mix.Utils.stale?(configs, [manifest])

    opts = Keyword.merge(project[:elixirc_options] || [], opts)
    Mix.Compilers.Elixir.compile(manifest, srcs, dest, [:ex], force, opts)


  """

  @switches [
    force: :boolean,
    docs: :boolean,
    warnings_as_errors: :boolean,
    ignore_module_conflict: :boolean,
    debug_info: :boolean,
    verbose: :boolean,
    long_compilation_threshold: :integer,
    all_warnings: :boolean
  ]

  @doc """
  Runs this task.
