--- Comment #2 from Andrej Mitrovic <> 2012-10-25 
16:24:25 PDT ---
(In reply to comment #1)
> It seems errors are gagged at this point in "Expression *Type::getProperty(Loc
> loc, Identifier *ident)" in file mtype.c:

The gagging starts in `DotIdExp::semantic(Scope *sc, int flag)` with a nice

/* This would be much better if we added a "hasProperty" method to types,
 * i.e. the gagging is a bad way.

// ..

Type *t1 = e1->type;
unsigned errors = global.startGagging();
e = t1->dotExp(sc, e1, ident);
if (global.endGagging(errors))  // if failed to find the property
    e1->type = t1;              // kludge to restore type
    e = resolveUFCSProperties(sc, this);
e = e->semantic(sc);
return e;

So it seems UFCS really is to blame. Type properties are checked first, then
UFCS is checked, however if neither of them have a match then we should print
out the property error rather than the UFCS error.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to