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
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/c811c9a699892605f7267dc96e52e5aa144232f7 Fix issue 8249 Spurious error message with templates and alias this Lookup should be blocked only by errors in this template instance, not by any global error. https://github.com/D-Programming-Language/dmd/commit/0e2c6421ff333d74acc294c2958f4ae90fa76098 Merge pull request #1015 from donc/spurious8249templatealiasthis Fix issue 8249 Spurious error message with templates and alias this