aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-11-30 18:57:21 +0100
committerLoïc Hoguin <[email protected]>2018-11-30 18:57:21 +0100
commit5ae9661dca352f16576860dad7eaaad45290312c (patch)
tree423f61456030a71f86202293942b2c1b11750696
parentf53fd8b42729937213a813622f6d4b54ebc09f4e (diff)
downloaderlang.mk-5ae9661dca352f16576860dad7eaaad45290312c.tar.gz
erlang.mk-5ae9661dca352f16576860dad7eaaad45290312c.tar.bz2
erlang.mk-5ae9661dca352f16576860dad7eaaad45290312c.zip
Fix Dialyzer when a project has and uses parse transforms
-rw-r--r--plugins/dialyzer.mk4
-rw-r--r--test/core_app.mk3
-rw-r--r--test/plugin_dialyzer.mk23
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