From 5ae9661dca352f16576860dad7eaaad45290312c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 30 Nov 2018 18:57:21 +0100 Subject: Fix Dialyzer when a project has and uses parse transforms --- plugins/dialyzer.mk | 4 +++- test/core_app.mk | 3 --- test/plugin_dialyzer.mk | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/plugins/dialyzer.mk b/plugins/dialyzer.mk index 3978bc8..4c2c81d 100644 --- a/plugins/dialyzer.mk +++ b/plugins/dialyzer.mk @@ -58,4 +58,6 @@ dialyze: else dialyze: $(DIALYZER_PLT) endif - $(verbose) dialyzer --no_native `$(ERL) -eval "$(subst $(newline),,$(call escape_dquotes,$(call filter_opts.erl)))" -extra $(ERLC_OPTS)` $(DIALYZER_DIRS) $(DIALYZER_OPTS) + $(verbose) dialyzer --no_native `$(ERL) \ + -eval "$(subst $(newline),,$(call escape_dquotes,$(call filter_opts.erl)))" \ + -extra $(ERLC_OPTS)` $(DIALYZER_DIRS) $(DIALYZER_OPTS) $(if $(wildcard ebin/),-pa ebin/) diff --git a/test/core_app.mk b/test/core_app.mk index 953603b..4c32178 100644 --- a/test/core_app.mk +++ b/test/core_app.mk @@ -1198,9 +1198,6 @@ core-app-pt: build clean "-module(my_user)." \ "-compile({parse_transform, my_pt})." > $(APP)/src/my_user.erl - $i "Compile my_pt first" - $t echo "COMPILE_FIRST += my_pt" >> $(APP)/Makefile - $i "Build the application; confirm the parse_transform is used" $t $(MAKE) -C $(APP) | grep "Running my_pt parse_transform." diff --git a/test/plugin_dialyzer.mk b/test/plugin_dialyzer.mk index 60dce34..c0229eb 100644 --- a/test/plugin_dialyzer.mk +++ b/test/plugin_dialyzer.mk @@ -303,3 +303,26 @@ dialyzer-plt-swallow-warnings: build clean $i "Create the PLT file" $t $(DIALYZER_MUTEX) $(MAKE) -C $(APP) plt $v + +dialyzer-pt: build clean + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Generate a parse_transform module" + $t printf "%s\n" \ + "-module(my_pt)." \ + "-export([parse_transform/2])." \ + "parse_transform(Forms, _) ->" \ + " io:format(\"# Running my_pt parse_transform.~n\")," \ + " Forms." > $(APP)/src/my_pt.erl + + $i "Generate a .erl file that uses the my_pt parse_transform" + $t printf "%s\n" \ + "-module(my_user)." \ + "-compile({parse_transform, my_pt})." > $(APP)/src/my_user.erl + + $i "Run Dialyzer" + $t $(DIALYZER_MUTEX) $(MAKE) -C $(APP) dialyze $v -- cgit v1.2.3