Skip to content

Commit f48476d

Browse files
committed
Fix Issue 21753 - Struct literal with function literal member not allowed as template value argument
1 parent 98ec2d4 commit f48476d

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/dmd/dmangle.d

+8
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,14 @@ public:
12671267
}
12681268
}
12691269

1270+
override void visit(FuncExp e)
1271+
{
1272+
if (e.td)
1273+
mangleSymbol(e.td);
1274+
else
1275+
mangleSymbol(e.fd);
1276+
}
1277+
12701278
////////////////////////////////////////////////////////////////////////////
12711279

12721280
override void visit(Parameter p)

test/runnable/mangle.d

+6
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,12 @@ static assert(funcd.mangleof == "_D6mangle5funcdFPFZNnZi");
618618

619619
/***************************************************/
620620

621+
struct S21753 { void function() f1; }
622+
void fun21753(S21753 v)() {}
623+
alias fl21753 = (){};
624+
static assert((fun21753!(S21753(fl21753))).mangleof == "_D6mangle__T8fun21753VSQv6S21753S1_DQBi10" ~ fl21753.stringof ~ "MFNaNbNiNfZvZQCaQp");
625+
626+
/***************************************************/
621627
void main()
622628
{
623629
test10077h();

0 commit comments

Comments
 (0)