aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/dmd/parse.d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2022-06-24 19:41:41 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2022-06-24 20:49:58 +0200
commitd97f3bca6eec50ac4ec007d731d345db3e560c52 (patch)
treeb96c7e4a976986b4a8d755479a808db9bbb8b80c /gcc/d/dmd/parse.d
parentc0ad48527c314a1e9354b7c26718b56ed4abc92c (diff)
downloadgcc-d97f3bca6eec50ac4ec007d731d345db3e560c52.zip
gcc-d97f3bca6eec50ac4ec007d731d345db3e560c52.tar.gz
gcc-d97f3bca6eec50ac4ec007d731d345db3e560c52.tar.bz2
d: Merge upstream dmd 529110f66, druntime 148608b7.
D front-end changes: - Import latest bug fixes to mainline. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd 529110f66. * decl.cc (DeclVisitor::visit (TupleDeclaration *)): Update for new front-end interface. * types.cc (layout_aggregate_members): Likewise. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime 148608b7.
Diffstat (limited to 'gcc/d/dmd/parse.d')
-rw-r--r--gcc/d/dmd/parse.d11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/d/dmd/parse.d b/gcc/d/dmd/parse.d
index eb5e694..4e3fd53 100644
--- a/gcc/d/dmd/parse.d
+++ b/gcc/d/dmd/parse.d
@@ -5877,7 +5877,8 @@ LagainStc:
{
if (isDeclaration(&token, NeedDeclaratorId.mustIfDstyle, TOK.reserved, null))
goto Ldeclaration;
- if (peekNext() == TOK.leftParenthesis)
+ const tv = peekNext();
+ if (tv == TOK.leftParenthesis)
{
// mixin(string)
AST.Expression e = parseAssignExp();
@@ -5893,6 +5894,14 @@ LagainStc:
}
break;
}
+ else if (tv == TOK.template_)
+ {
+ // mixin template
+ nextToken();
+ AST.Dsymbol d = parseTemplateDeclaration(true);
+ s = new AST.ExpStatement(loc, d);
+ break;
+ }
AST.Dsymbol d = parseMixin();
s = new AST.ExpStatement(loc, d);
if (flags & ParseStatementFlags.scope_)