Skip to content

Dialyzer does not pick up changes involving remote types #502

@lukaszsamson

Description

@lukaszsamson

Environment

  • Elixir & Erlang versions (elixir --version): 1.11, 23.2
  • Editor Plugin/LSP Client name: current master

To reproduce

  1. create Module1 that defines a public type my_type and Module2 uses Module1.my_type e.g. in callback or spec.
  2. introduce a type error involving Module1.my_type
  3. fix the error by changing my_type definition in Module1

Result:

Dialyzer diagnostic persists regardless of error being fixed.

Troubleshooting

The diagnostic goes away after forcing recompilation of Module2

Unfortunately this is due to elixir compiler design choices - remote types do not introduce compile-time dependancy (and since 1.12 runtime dependancy, see elixir-lang/elixir#10406)

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions