https://issues.dlang.org/show_bug.cgi?id=23989
Issue ID: 23989
Summary: Regression in rdmd when running an empty eval
Product: D
Version: D2
Hardware: All
URL: http://dlang.org/
OS: All
Status: NEW
Severity: regression
Priority: P3
Component: tools
Assignee: [email protected]
Reporter: [email protected]
We run unit tests for modules in the following way:
rdmd -m64 -Isrc -w -debug -g -unittest -i --extra-file=src/d/object.d
--eval="/* Do nothing */"
With an extra-file per file. These command are generated automatically by the
build and this used to work great.
With the latest rdmd, we have the following error message:
/tmp/.rdmd-1001/eval.73D1BDC8D7573E2DF9EF23CD86830110.d(18): Error: use `{ }`
for an empty statement, not `;`
Failed: ["/usr/bin/dmd", "-m64", "-Isrc", "-w", "-debug", "-g", "-unittest",
"-i", "-d", "-v", "-o-",
"/tmp/.rdmd-1001/eval.73D1BDC8D7573E2DF9EF23CD86830110.d", "-I/tmp/.rdmd-1001"]
make: *** [src/libd.mak:33: check-libd-d] Error 1
This is because the generated file is as follow:
module temporary;
import std.stdio, std.algorithm, std.array, std.ascii, std.base64,
std.bigint, std.bitmanip,
std.compiler, std.complex, std.concurrency, std.container, std.conv,
std.csv,
std.datetime, std.demangle, std.digest.md, std.encoding, std.exception,
std.file,
std.format, std.functional, std.getopt, std.json,
std.math, std.mathspecial, std.mmfile,
std.numeric, std.outbuffer, std.parallelism, std.path, std.process,
std.random, std.range, std.regex, std.signals, std.socket,
std.stdint, std.stdio,
std.string, std.windows.syserror, std.system, std.traits, std.typecons,
std.typetuple, std.uni, std.uri, std.utf, std.variant, std.zip,
std.zlib;
void main(char[][] args) {
/* Do nothing */;
}
--