File tree Expand file tree Collapse file tree 3 files changed +4
-10
lines changed Expand file tree Collapse file tree 3 files changed +4
-10
lines changed Original file line number Diff line number Diff line change @@ -5672,7 +5672,6 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
5672
5672
s = "__funcliteral";
5673
5673
5674
5674
DsymbolTable symtab;
5675
- string parentMangle;
5676
5675
if (FuncDeclaration func = sc.parent.isFuncDeclaration())
5677
5676
{
5678
5677
if (func.localsymtab is null)
@@ -5682,7 +5681,6 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
5682
5681
func.localsymtab = new DsymbolTable();
5683
5682
}
5684
5683
symtab = func.localsymtab;
5685
- parentMangle = cast(string) mangleExact(func).toDString();
5686
5684
}
5687
5685
else
5688
5686
{
@@ -5695,13 +5693,9 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
5695
5693
sds.symtab = new DsymbolTable();
5696
5694
}
5697
5695
symtab = sds.symtab;
5698
-
5699
- OutBuffer buf;
5700
- mangleToBuffer(sds, buf);
5701
- parentMangle = buf.extractSlice();
5702
5696
}
5703
5697
assert(symtab);
5704
- Identifier id = Identifier.generateIdWithLoc(s, exp.loc, parentMangle );
5698
+ Identifier id = Identifier.generateIdWithLoc(s, exp.loc, cast(const void*) sc.parent );
5705
5699
exp.fd.ident = id;
5706
5700
if (exp.td)
5707
5701
exp.td.ident = id;
Original file line number Diff line number Diff line change @@ -221,7 +221,7 @@ nothrow:
221
221
* Identifier (inside Identifier.idPool) with deterministic name based
222
222
* on the source location.
223
223
*/
224
- extern (D ) static Identifier generateIdWithLoc(string prefix, Loc loc, string parent = null )
224
+ extern (D ) static Identifier generateIdWithLoc(string prefix, Loc loc, const void * parent = null )
225
225
{
226
226
// generate `<prefix>_L<line>_C<col>`
227
227
auto sl = SourceLoc(loc);
@@ -248,7 +248,7 @@ nothrow:
248
248
* directly, but that would unnecessary lengthen symbols names. See issue:
249
249
* https://issues.dlang.org/show_bug.cgi?id=23722
250
250
*/
251
- static struct Key { string locKey; string prefix; string parent; }
251
+ static struct Key { string locKey; string prefix; const ( void ) * parent; }
252
252
__gshared uint [Key] counters;
253
253
254
254
const locKey = cast (string ) (sl.filename ~ idBuf[]);
Original file line number Diff line number Diff line change @@ -7330,7 +7330,7 @@ Type substWildTo(Type type, uint mod)
7330
7330
t = t.addMod(MODFlags.shared_);
7331
7331
7332
7332
// printf("-Type.substWildTo t = %s\n", t.toChars());
7333
- return t;
7333
+ return t.merge() ;
7334
7334
}
7335
7335
7336
7336
if (! tf.iswild && ! (tf.mod & MODFlags.wild))
You can’t perform that action at this time.
0 commit comments