From 200697ef596dbe689443834aaf5aa0303971ca5d Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Tue, 4 Apr 2017 11:24:48 +0200 Subject: Fix incomprehensible dialyzer warning This: diameter_tcp.erl:241: Record construction #transport{parent::'false',ssl::boolean() | maybe_improper_list(),frag::<<>>,tref::'false',flush::'false',pending::0,reset::{1 | 4,0 | 2},throttled::boolean(),q::{0,queue:queue(_)},monitor::'undefined' | pid()} violates the declared type of field parent::pid() The problem isn't #transport.pid at all, it's #monitor.pid, and the only relation is that the pid that's assigned to the latter is also (later) assigned to the former. There is no record construction that assigns false to #transport.parent. Introduced in commit 33a535e4. --- lib/diameter/src/transport/diameter_tcp.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/diameter/src/transport/diameter_tcp.erl b/lib/diameter/src/transport/diameter_tcp.erl index c81701b624..8f2e9027fc 100644 --- a/lib/diameter/src/transport/diameter_tcp.erl +++ b/lib/diameter/src/transport/diameter_tcp.erl @@ -80,7 +80,7 @@ %% Monitor process state. The name monitor predates its role as sender. -record(monitor, - {parent :: reference() | false, + {parent :: reference() | false | pid(), transport = self() :: pid(), socket :: inet:socket() | ssl:sslsocket() | undefined, module :: module() | undefined}). -- cgit v1.2.3