[Issue 17177] New: AutoImplement fails on function overload sets with "cannot infer type from overloaded function symbol"
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Feb 12 05:31:30 PST 2017
https://issues.dlang.org/show_bug.cgi?id=17177
Issue ID: 17177
Summary: AutoImplement fails on function overload sets with
"cannot infer type from overloaded function symbol"
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: alexandru.ermicioi at gmail.com
Given following code:
import std.meta;
import std.typecons;
import std.traits;
class ProxyablePerson {
private {
string surname_;
}
public {
int surname(string surname) {
return 0;
}
int surname() {
return 0;
}
}
}
string how(C, alias fun)() {
string stmt;
static if (!is(ReturnType!fun == void)) {
stmt ~= "
return parent(args);
";
} else {
stmt ~= "
parent(args);
";
}
return stmt;
}
alias Proxy = AutoImplement!(ProxyablePerson, how,
templateNot!isFinalFunction);
void main() {
}
AutoImplement fails on surname overload set with following error:
/usr/include/dmd/phobos/std/typecons.d-mixin-3579(3584,15): Error: cannot infer
type from overloaded function symbol &super.surname
/usr/include/dmd/phobos/std/typecons.d-mixin-3579(3592,15): Error: cannot infer
type from overloaded function symbol &super.surname
src/app.d(36,15): Error: template instance
std.typecons.AutoImplement!(ProxyablePerson, how, templateNot) error
instantiating
Note: leaving one function from overload set (so no surname overload set is
present), will compile ok without any error.
--
More information about the Digitalmars-d-bugs
mailing list