Skip to content

Commit bb248bd

Browse files
committed
todt.d: transition to eSink
1 parent 1906158 commit bb248bd

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

compiler/src/dmd/glue/todt.d

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,14 @@ import dmd.denum;
3535
import dmd.dstruct;
3636
import dmd.dsymbol;
3737
import dmd.dtemplate;
38-
import dmd.errors;
38+
import dmd.errors : fatal;
39+
import dmd.errorsink;
3940
import dmd.expression;
4041
import dmd.id;
4142
import dmd.expressionsem : toBool, toInteger;
4243
import dmd.func;
4344
import dmd.globals;
45+
import dmd.hdrgen : toErrMsg;
4446
import dmd.init;
4547
import dmd.location;
4648
import dmd.mtype;
@@ -72,6 +74,8 @@ alias Dts = Array!(dt_t*);
7274

7375
void Initializer_toDt(Initializer init, ref DtBuilder dtb, bool isCfile)
7476
{
77+
auto eSink = global.errorSink;
78+
7579
void visitError(ErrorInitializer)
7680
{
7781
assert(0);
@@ -125,7 +129,7 @@ void Initializer_toDt(Initializer init, ref DtBuilder dtb, bool isCfile)
125129
auto dtb = DtBuilder(0);
126130
Initializer_toDt(ai.value[i], dtb, isCfile);
127131
if (dts[length] && !ai.isCarray)
128-
error(ai.loc, "duplicate initializations for index `%d`", length);
132+
eSink.error(ai.loc, "duplicate initializations for index `%d`", length);
129133
dts[length] = dtb.finish();
130134
length++;
131135
}
@@ -182,7 +186,7 @@ void Initializer_toDt(Initializer init, ref DtBuilder dtb, bool isCfile)
182186
}
183187
else if (ai.dim > tadim)
184188
{
185-
error(ai.loc, "too many initializers, %u, for array[%llu]", ai.dim, cast(ulong) tadim);
189+
eSink.error(ai.loc, "too many initializers, %u, for array[%llu]", ai.dim, cast(ulong) tadim);
186190
}
187191
dtb.cat(dtbarray);
188192
break;
@@ -235,6 +239,8 @@ void Initializer_toDt(Initializer init, ref DtBuilder dtb, bool isCfile)
235239

236240
void Expression_toDt(Expression e, ref DtBuilder dtb)
237241
{
242+
auto eSink = global.errorSink;
243+
238244
dtb.checkInitialized();
239245

240246
void nonConstExpError(Expression e)
@@ -243,7 +249,7 @@ void Expression_toDt(Expression e, ref DtBuilder dtb)
243249
{
244250
printf("Expression.toDt() op = %d e = %s \n", e.op, e.toChars());
245251
}
246-
error(e.loc, "non-constant expression `%s`", e.toErrMsg());
252+
eSink.error(e.loc, "non-constant expression `%s`", e.toErrMsg());
247253
dtb.nzeros(1);
248254
}
249255

@@ -526,7 +532,7 @@ void Expression_toDt(Expression e, ref DtBuilder dtb)
526532
{
527533
if (!e.loweringCtfe)
528534
{
529-
error(e.loc, "internal compiler error: failed to detect static initialization of associative array");
535+
eSink.error(e.loc, "internal compiler error: failed to detect static initialization of associative array");
530536
assert(0);
531537
}
532538
Expression_toDt(e.loweringCtfe, dtb);
@@ -561,7 +567,7 @@ void Expression_toDt(Expression e, ref DtBuilder dtb)
561567
if ((v.isConst() || v.isImmutable()) &&
562568
e.type.toBasetype().ty != Tsarray && v._init)
563569
{
564-
error(e.loc, "recursive reference `%s`", e.toErrMsg());
570+
eSink.error(e.loc, "recursive reference `%s`", e.toErrMsg());
565571
return;
566572
}
567573
v.inuse++;
@@ -1243,9 +1249,10 @@ private extern (C++) class TypeInfoDtVisitor : Visitor
12431249
printf("expected = x%x, %s.structsize = x%x\n", cast(uint)expected,
12441250
typeclass.toChars(), cast(uint)typeclass.structsize);
12451251
}
1246-
error(typeclass.loc, "`%s`: mismatch between compiler (%d bytes) and object.d or object.di (%d bytes) found",
1252+
auto eSink = global.errorSink;
1253+
eSink.error(typeclass.loc, "`%s`: mismatch between compiler (%d bytes) and object.d or object.di (%d bytes) found",
12471254
typeclass.toErrMsg(), cast(uint)expected, cast(uint)typeclass.structsize);
1248-
errorSupplemental(typeclass.loc, "check installation and import paths with `-v` compiler switch");
1255+
eSink.errorSupplemental(typeclass.loc, "check installation and import paths with `-v` compiler switch");
12491256
fatal();
12501257
}
12511258
}

0 commit comments

Comments
 (0)