     end
   end
 
+  @spec expr_with_imports(Macro.t(), {atom, list}) :: Macro.t()
   defp expr_with_imports(expr, {view, modules}) do
     quote do
       import Phoenix.View

    end
  end

  defp partial_path(view, partial_name) do
    templates_path(view) <> partial_name <> Drab.Config.drab_extension()
  end

  defp templates_path(view) do
    {path, _, _} = view.__templates__()
    path <> "/"
  end

  defp raise_assign_not_found(assign, current_keys) do
    raise ArgumentError,
      message: """

      iex> assigns(socket, "user.html")
      [:name, :age, :email]
  """
  @spec assigns(Phoenix.Socket.t(), String.t() | nil) :: list
  def assigns(socket, partial) do
    assigns(socket, nil, partial)
  end
