diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2022-06-24 19:41:41 +0200 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2022-06-24 20:49:58 +0200 |
commit | d97f3bca6eec50ac4ec007d731d345db3e560c52 (patch) | |
tree | b96c7e4a976986b4a8d755479a808db9bbb8b80c /gcc/d/dmd/parse.d | |
parent | c0ad48527c314a1e9354b7c26718b56ed4abc92c (diff) | |
download | gcc-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.d | 11 |
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_) |