Open mkuratczyk opened 5 months ago
@mkuratczyk Thanks for reporting! While we work on a fix, you can prepend the problematic line with something like:
% elp:ignore L1500 W0020 - false positive (see https://github.com/WhatsApp/erlang-language-platform/issues/30)
Which will silent the linter (so you can run it from CLI periodically or in CI)
@alanz L1500
was the old error code for the diagnostic. It looks like we still report both.
L1500
is long gone, make sure you are using a recent version of ELP
ELP generally assumes header files are self-contained - this is violated in the 2nd case you describe since rabbit_peer_discovery_consul.hrl
can't be included independently.
The "proper" fix from the view point of ELP and self-contained headers would be to move -include_lib("rabbitmq_peer_discovery_common/include/rabbit_peer_discovery.hrl").
into the header that defines the macro using the records from there, notably rabbit_peer_discovery_consul.hrl
. The include_lib
can be later removed from modules including rabbit_peer_discovery_consul.hrl
.
yeah, that makes sense. we can solve the second case on our side
Describe the bug
I tried to use
elp
to remove unused imports across RabbitMQ codebase. However, there are two imports that I need to restore afterwards, for RabbitMQ to start.To Reproduce**
The imports that are incorrectly removed are here:
https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/src/rabbit_amqp_util.erl#L9 Here the problem I think is related to the fact that
amqp10_framing.hrl
is a generated file.rabbit_amqp_util.erl
includesrabbit_amqp.hrl
which in turn includesamqp10_common/include/amqp10_framing.hrl
but this file doesn't exist if you start from a fresh repo. If you runmake start-cluster
first and then run the sameelp
command,rabbit_amqp_uti.erl
is not modified byelp
.https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbitmq_peer_discovery_consul/src/rabbitmq_peer_discovery_consul_health_check_helper.erl#L18 In this case, the need for the removed include file is "hidden" by a macro -
?CONFIG_MAPPING
expands to code that uses thepeer_discovery_config_entry_meta
record.Context
elp version
):elp 1.1.0+build-2024-05-17
Thank you!