From 120760b543159d36d88f1feb204ff84c74306515 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Wed, 7 Feb 2018 15:16:15 +0100 Subject: dialyzer: Fix a crash --- lib/dialyzer/test/small_SUITE_data/results/record_match | 3 +++ lib/dialyzer/test/small_SUITE_data/src/record_match.erl | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 lib/dialyzer/test/small_SUITE_data/results/record_match create mode 100644 lib/dialyzer/test/small_SUITE_data/src/record_match.erl (limited to 'lib/dialyzer/test') diff --git a/lib/dialyzer/test/small_SUITE_data/results/record_match b/lib/dialyzer/test/small_SUITE_data/results/record_match new file mode 100644 index 0000000000..a0dd6f560a --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/results/record_match @@ -0,0 +1,3 @@ + +record_match.erl:16: Function select/0 has no local return +record_match.erl:17: Matching of pattern {'b_literal', 'undefined'} tagged with a record name violates the declared type of #b_local{} | #b_remote{} diff --git a/lib/dialyzer/test/small_SUITE_data/src/record_match.erl b/lib/dialyzer/test/small_SUITE_data/src/record_match.erl new file mode 100644 index 0000000000..8e9b91937f --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/record_match.erl @@ -0,0 +1,17 @@ +-module(record_match). + +-export([select/0]). + +-record(b_literal, {val}). +-record(b_remote, {mod,name,arity}). +-record(b_local, {name,arity}). + +-type b_remote() :: #b_remote{}. +-type b_local() :: #b_local{}. + +-type argument() :: b_remote() | b_local(). + +-record(b_set, {args=[] :: [argument()]}). + +select() -> + #b_set{args=[#b_remote{},#b_literal{}]}. -- cgit v1.2.3