[Issue 12951] New: Not all failures to compile opDispatch should be regarded as "field not found"
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Jun 19 14:50:21 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=12951
Issue ID: 12951
Summary: Not all failures to compile opDispatch should be
regarded as "field not found"
Product: D
Version: D2
Hardware: x86
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: hsteoh at quickfur.ath.cx
CODE:
------
struct S {
int x, y, z;
}
struct T {
S impl;
auto opDispatch(string field)() {
return __traits(getMember, impl, feild); // N.B. this is a typo
}
}
void main() {
T t;
auto x = t.x;
}
------
Compiler output:
------
test.d(13): Error: no property 'x' for type 'T'
------
Changing "feild" to "field" fixes the problem. This is not good, because the
diagnostic is completely unhelpful -- there is no indication that the compile
error is caused by a typo in the implementation of opDispatch.
I understand that sometimes it's useful for failure to compile opDispatch to be
taken as declining field dispatch (if field=="w" then the above error message
would be appropriate), but this makes it nigh impossible to debug opDispatch,
since the real error message has been gagged.
Is there a way to gag only "no property..." errors, but leave the other errors
in opDispatch ungagged?
--
More information about the Digitalmars-d-bugs
mailing list