REPL semantics
Luís Marques
luis at luismarques.eu
Thu Jul 12 22:35:15 UTC 2018
On Thursday, 12 July 2018 at 19:07:15 UTC, Luís Marques wrote:
> Consider a D REPL session like this:
Unlike cling, drepl doesn't seem to support overloading:
Welcome to D REPL.
D> import std.stdio;
std
D> void bar(long) { writeln("long"); }
bar
D> void bar(int) { writeln("int"); }
bar
D> bar(42)
`_mod2.bar` at /tmp/drepl.adse9Q/_mod2.d(3) conflicts with
`_mod1.bar` at /tmp/drepl.adse9Q/_mod1.d(3)
template `std.stdio.write` cannot deduce function from argument
types `!()(void)`, candidates are:
/usr/include/dmd/phobos/std/stdio.d(3669):
`std.stdio.write(T...)(T args) if (!is(T[0] : File))`
It can envision the implementation that produces that result, and
in terms of that implementation it makes sense, but ouch, that's
not user friendly or in-line with regular D semantics.
More information about the Digitalmars-d
mailing list