Incomprehensible error message

Russel Winder russel at winder.org.uk
Mon Mar 19 18:48:04 UTC 2018


On Mon, 2018-03-19 at 10:54 -0700, H. S. Teoh via Digitalmars-d-learn
wrote:
> […]
> 
> 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.
> 

Prompted by this and Adam's emails, which gave me the moral support to
getting stuck in to doing something rather than just moaning :-)

I think the problem is with the instance of dvb_entry *.

The call is actually in a loop:

for (auto entry = ptr.c_ptr().first_entry; entry != null; entry = entry.next) {
	if (entry.channel is null) { continue; }  //  TODO Shouldn't need this, but it seems needed, why?
	frontendParameters.logfunc(LOG_INFO, "\nChannel: %s", entry.channel);
	try {
		auto scanHandler = ScanHandler_Ptr(frontendParameters.c_ptr(), entry, dmx_fd.value(), &checkFrontend, other_nit, timeout_multiplier);

I tried replacing the auto with dvb_entry* and we have the answer:

../../Repositories/Git/Masters/DVBTune/source/channels.d(157): Error: cannot implicitly convert expression `(*this.ptr.c_ptr()).first_entry` of type `libdvbv5_d.dvb_file.dvb_entry*` to `libdvbv5_d.dvb_scan.dvb_entry*`

This is most likely an unintended consequence of using DStep: the
dvb_entry type is being defined in two distinct modules. Now everything
is clear and I just need to find a solution to why two definitions.


The error message is still incomprehensible as is though.


-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20180319/b57a89b2/attachment-0001.sig>


More information about the Digitalmars-d-learn mailing list