Skip to content

Dialyzer warning on Repo.transaction with Ecto.Multi #1882

@danielberkompas

Description

@danielberkompas

Environment

  • Elixir version (elixir -v): 1.4.0-rc.1 (16a14c1)
  • Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.): (PostgreSQL) 9.6.1
  • Ecto version (mix deps): 2.1.1 (fa8bdb14)
  • Database adapter and version (mix deps): postgrex 0.13.0 (e101ab47)
  • Operating system: macOS Sierra (10.12.2)

Current behavior

This code produces a dialyzer warning:

defmodule MyApp.Test do
  alias MyApp.Repo

  def test do
    Repo.transaction(Ecto.Multi.new)
  end
end

Warning:

The call 'Elixir.MyApp.Repo':transaction('Elixir.Ecto.Multi':t()) contains an opaque term as 1st argument when a structured term of type fun(() -> any()) | #{'__struct__':='Elixir.Ecto.Multi', 'names':=_, 'operations':=_, _=>_} is expected

Expected behavior

This code should not raise a dialyzer warning.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions