Incomprehensible error message
H. S. Teoh
hsteoh at quickfur.ath.cx
Mon Mar 19 17:54:44 UTC 2018
On Mon, Mar 19, 2018 at 04:33:28PM +0000, Russel Winder via Digitalmars-d-learn wrote:
[...]
> I have been staring at this message so long, I have clearly stopped
> actually reading it, hence outside assistance needed.
>
> Can someone please explain to me (probably in words of one syllable
> since I am clearly being very unintelligent) how any code can deliver
> an error message such as:
[...]
Here's my reformatting of the error, that hopefully might be of
assistance:
> source/channels.d(161): Error: constructor
> libdvbv5.ScanHandler_Ptr.this (
> dvb_v5_fe_parms* frontendParameters,
> dvb_entry* entry,
> const(int) dmx_fd,
> extern (C) int function(void* args, dvb_v5_fe_parms* parms) check_frontend,
> const(uint) other_nit,
> const(uint) timeout_multiplier)
> is not callable using argument types (
> dvb_v5_fe_parms*,
> dvb_entry*,
> const(int),
> extern (C) int function(void* _arguments, dvb_v5_fe_parms* frontendParameters),
> const(uint),
> const(uint))
[...]
Or, boiled down to the bare basics with extraneous identifiers removed:
> source/channels.d(161): Error: constructor
> libdvbv5.ScanHandler_Ptr.this (
> dvb_v5_fe_parms*,
> dvb_entry*,
> const(int),
> extern (C) int function(void*, dvb_v5_fe_parms*),
> const(uint),
> const(uint))
> is not callable using argument types (
> dvb_v5_fe_parms*,
> dvb_entry*,
> const(int),
> extern (C) int function(void*, dvb_v5_fe_parms*),
> const(uint),
> const(uint))
[...]
Which is rather odd, since the parameter types correspond to each other
exactly. So why the compiler would reject the code, I honestly have no
idea.
One wild guess is if some of the symbols come from different modules,
such that you might have modA.dvb_entry vs. modB.dvb_entry, for example,
which would be a type mismatch. Or if one symbol was declared in D
linkage but the other in C linkage, which is perhaps a more likely
cause. But since the compiler doesn't tell us the FQN of the
identifiers, it's anybody's guess whether this is actually the problem,
or which are the offending identifiers.
T
--
Prosperity breeds contempt, and poverty breeds consent. -- Suck.com
More information about the Digitalmars-d-learn
mailing list