From 33f6f1376a1b2c1109997fd324e3a6072929d950 Mon Sep 17 00:00:00 2001 From: Stavros Aronis Date: Tue, 4 Oct 2011 17:18:23 +0200 Subject: Fix false warning about closure application Whenever a variable that could hold one of two or more possible closures was used in a particular application, the application was assumed to fail if ONE of the closures would fail in this application. This has been corrected to infer failing application if ALL possible closures would fail in the particular application. --- .../small_SUITE_data/src/higher_order_discrepancy_2.erl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lib/dialyzer/test/small_SUITE_data/src/higher_order_discrepancy_2.erl (limited to 'lib/dialyzer/test/small_SUITE_data/src/higher_order_discrepancy_2.erl') diff --git a/lib/dialyzer/test/small_SUITE_data/src/higher_order_discrepancy_2.erl b/lib/dialyzer/test/small_SUITE_data/src/higher_order_discrepancy_2.erl new file mode 100644 index 0000000000..4b0d4f6b45 --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/higher_order_discrepancy_2.erl @@ -0,0 +1,14 @@ +-module(higher_order_discrepancy_2). + +-export([test/1]). + +test(X) -> + F = + case X of + 1 -> fun f/1; + 2 -> fun g/1 + end, + F(foo). + +f(bar) -> ok. +g(baz) -> ok. -- cgit v1.2.3