Bug 8249 – Spurious error message with templates and alias this
Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-06-15T13:09:00Z
Last change time
2012-06-20T12:29:04Z
Keywords
diagnostic
Assigned to
nobody
Creator
clugdbug
Comments
Comment #0 by clugdbug — 2012-06-15T13:09:28Z
Seems like a lookup is not attempted if an error has previously occurred in the module. This example comes from template9.d, and was based on bug 7580.
--------
void deliberateError() { int someError = "abc"; }
void fred()(int value) {}
struct YY
{
int val;
@property int get()() { return val; }
alias get this;
}
void test()
{
YY y;
fred(y);
}
bug.d(1): Error: cannot implicitly convert expression ("abc") of type string to int
bug.d(3): Error: template junk.fred() cannot deduce template function from argument types !()(YY)
The second error disappears if the first line is commented out.
Comment #1 by github-bugzilla — 2012-06-20T12:24:20Z