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

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to