@@ -128,6 +128,7 @@ class Parser
128128 */
129129 ExpressionNode parseAddExpression ()
130130 {
131+ pragma (inline, true );
131132 mixin (traceEnterAndExit! (__FUNCTION__ ));
132133 return parseLeftAssocBinaryExpression! (AddExpression, MulExpression,
133134 tok! " +" , tok! " -" , tok! " ~" )();
@@ -178,7 +179,8 @@ class Parser
178179 if (currentIs(tok! " (" ))
179180 {
180181 mixin (parseNodeQ! (` node.parameters` , ` Parameters` ));
181- StackBuffer memberFunctionAttributes;
182+ alias memberFunctionAttributes = storageClasses;
183+ memberFunctionAttributes.clear();
182184 while (moreTokens() && currentIsMemberFunctionAttribute())
183185 if (! memberFunctionAttributes.put(parseMemberFunctionAttribute()))
184186 return null ;
@@ -264,7 +266,8 @@ class Parser
264266 if (currentIs(tok! " (" ))
265267 {
266268 mixin (parseNodeQ! (` node.parameters` , ` Parameters` ));
267- StackBuffer memberFunctionAttributes;
269+ alias memberFunctionAttributes = storageClasses;
270+ memberFunctionAttributes.clear();
268271 while (moreTokens() && currentIsMemberFunctionAttribute())
269272 if (! memberFunctionAttributes.put(parseMemberFunctionAttribute()))
270273 return null ;
@@ -326,6 +329,7 @@ class Parser
326329 */
327330 ExpressionNode parseAndAndExpression ()
328331 {
332+ pragma (inline, true );
329333 mixin (traceEnterAndExit! (__FUNCTION__ ));
330334 return parseLeftAssocBinaryExpression! (AndAndExpression, OrExpression,
331335 tok! " &&" )();
@@ -341,6 +345,7 @@ class Parser
341345 */
342346 ExpressionNode parseAndExpression ()
343347 {
348+ pragma (inline, true );
344349 mixin (traceEnterAndExit! (__FUNCTION__ ));
345350 return parseLeftAssocBinaryExpression! (AndExpression, CmpExpression,
346351 tok! " &" )();
@@ -509,6 +514,7 @@ class Parser
509514 */
510515 ExpressionNode parseAsmAddExp ()
511516 {
517+ pragma (inline, true );
512518 mixin (traceEnterAndExit! (__FUNCTION__ ));
513519 return parseLeftAssocBinaryExpression! (AsmAddExp, AsmMulExp,
514520 tok! " +" , tok! " -" )();
@@ -524,6 +530,7 @@ class Parser
524530 */
525531 ExpressionNode parseAsmAndExp ()
526532 {
533+ pragma (inline, true );
527534 mixin (traceEnterAndExit! (__FUNCTION__ ));
528535 return parseLeftAssocBinaryExpression! (AsmAndExp, AsmEqualExp, tok! " &" );
529536 }
@@ -587,6 +594,7 @@ class Parser
587594 */
588595 ExpressionNode parseAsmEqualExp ()
589596 {
597+ pragma (inline, true );
590598 mixin (traceEnterAndExit! (__FUNCTION__ ));
591599 return parseLeftAssocBinaryExpression! (AsmEqualExp, AsmRelExp, tok! " ==" , tok! " !=" )();
592600 }
@@ -699,6 +707,7 @@ class Parser
699707 */
700708 ExpressionNode parseAsmLogAndExp ()
701709 {
710+ pragma (inline, true );
702711 mixin (traceEnterAndExit! (__FUNCTION__ ));
703712 return parseLeftAssocBinaryExpression! (AsmLogAndExp, AsmOrExp, tok! " &&" );
704713 }
@@ -713,6 +722,7 @@ class Parser
713722 */
714723 ExpressionNode parseAsmLogOrExp ()
715724 {
725+ pragma (inline, true );
716726 mixin (traceEnterAndExit! (__FUNCTION__ ));
717727 return parseLeftAssocBinaryExpression! (AsmLogOrExp, AsmLogAndExp, tok! " ||" )();
718728 }
@@ -727,6 +737,7 @@ class Parser
727737 */
728738 ExpressionNode parseAsmMulExp ()
729739 {
740+ pragma (inline, true );
730741 mixin (traceEnterAndExit! (__FUNCTION__ ));
731742 return parseLeftAssocBinaryExpression! (AsmMulExp, AsmBrExp, tok! " *" , tok! " /" , tok! " %" )();
732743 }
@@ -741,6 +752,7 @@ class Parser
741752 */
742753 ExpressionNode parseAsmOrExp ()
743754 {
755+ pragma (inline, true );
744756 mixin (traceEnterAndExit! (__FUNCTION__ ));
745757 return parseLeftAssocBinaryExpression! (AsmOrExp, AsmXorExp, tok! " |" )();
746758 }
@@ -806,6 +818,7 @@ class Parser
806818 */
807819 ExpressionNode parseAsmRelExp ()
808820 {
821+ pragma (inline, true );
809822 mixin (traceEnterAndExit! (__FUNCTION__ ));
810823 return parseLeftAssocBinaryExpression! (AsmRelExp, AsmShiftExp, tok! " <" ,
811824 tok! " <=" , tok! " >" , tok! " >=" )();
@@ -821,6 +834,7 @@ class Parser
821834 */
822835 ExpressionNode parseAsmShiftExp ()
823836 {
837+ pragma (inline, true );
824838 mixin (traceEnterAndExit! (__FUNCTION__ ));
825839 return parseLeftAssocBinaryExpression! (AsmShiftExp, AsmAddExp, tok! " <<" ,
826840 tok! " >>" , tok! " >>>" );
@@ -857,7 +871,8 @@ class Parser
857871 const instrStart = allocator.setCheckpoint();
858872 const instrStartIdx = index;
859873
860- StackBuffer instructions;
874+ alias instructions = functionAttributes;
875+ instructions.clear();
861876
862877 while (moreTokens() && ! currentIs(tok! " }" ))
863878 {
@@ -1029,6 +1044,7 @@ class Parser
10291044 */
10301045 ExpressionNode parseAsmXorExp ()
10311046 {
1047+ pragma (inline, true );
10321048 mixin (traceEnterAndExit! (__FUNCTION__ ));
10331049 return parseLeftAssocBinaryExpression! (AsmXorExp, AsmAndExp, tok! " ^" )();
10341050 }
@@ -1340,7 +1356,9 @@ class Parser
13401356 if (! storageClasses.put(parseStorageClass()))
13411357 return null ;
13421358 ownArray(node.storageClasses, storageClasses);
1343- StackBuffer parts;
1359+
1360+ alias parts = storageClasses;
1361+ parts.clear();
13441362 do
13451363 {
13461364 if (! parts.put(parseAutoDeclarationPart()))
@@ -1478,6 +1496,7 @@ class Parser
14781496 */
14791497 BaseClassList parseBaseClassList ()
14801498 {
1499+ pragma (inline, true );
14811500 mixin (traceEnterAndExit! (__FUNCTION__ ));
14821501 return parseCommaSeparatedRule! (BaseClassList, BaseClass)();
14831502 }
@@ -1879,7 +1898,9 @@ class Parser
18791898 return node;
18801899 }
18811900
1882- StackBuffer falseDeclarations;
1901+ trueDeclarations.clear();
1902+ alias falseDeclarations = trueDeclarations;
1903+
18831904 if (currentIs(tok! " :" ) || currentIs(tok! " {" ))
18841905 {
18851906 immutable bool brace = currentIs(tok! " {" );
@@ -2223,7 +2244,8 @@ class Parser
22232244 return null ;
22242245 }
22252246 advance();
2226- StackBuffer declarations;
2247+ alias declarations = attributes;
2248+ declarations.clear();
22272249 while (moreTokens() && ! currentIs(tok! " }" ))
22282250 {
22292251 auto c = allocator.setCheckpoint();
@@ -3090,6 +3112,7 @@ class Parser
30903112 */
30913113 Expression parseExpression ()
30923114 {
3115+ pragma (inline, true );
30933116 mixin (traceEnterAndExit! (__FUNCTION__ ));
30943117 if (suppressedErrorCount > MAX_ERRORS )
30953118 return null ;
@@ -3389,6 +3412,7 @@ class Parser
33893412 */
33903413 ForeachTypeList parseForeachTypeList ()
33913414 {
3415+ pragma (inline, true );
33923416 mixin (traceEnterAndExit! (__FUNCTION__ ));
33933417 return parseCommaSeparatedRule! (ForeachTypeList, ForeachType)();
33943418 }
@@ -3790,6 +3814,7 @@ class Parser
37903814 */
37913815 GccAsmOperandList parseGccAsmOperandList ()
37923816 {
3817+ pragma (inline, true );
37933818 mixin (traceEnterAndExit! (__FUNCTION__ ));
37943819 return parseCommaSeparatedRule! (GccAsmOperandList, GccAsmOperand)();
37953820 }
@@ -4992,6 +5017,7 @@ class Parser
49925017 */
49935018 ExpressionNode parseMulExpression ()
49945019 {
5020+ pragma (inline, true );
49955021 mixin (traceEnterAndExit! (__FUNCTION__ ));
49965022 return parseLeftAssocBinaryExpression! (MulExpression, PowExpression,
49975023 tok! " *" , tok! " /" , tok! " %" )();
@@ -5006,6 +5032,7 @@ class Parser
50065032 */
50075033 NamespaceList parseNamespaceList ()
50085034 {
5035+ pragma (inline, true );
50095036 mixin (traceEnterAndExit! (__FUNCTION__ ));
50105037 return parseCommaSeparatedRule! (NamespaceList, TernaryExpression)(true );
50115038 }
@@ -5179,6 +5206,7 @@ class Parser
51795206 */
51805207 ExpressionNode parseOrExpression ()
51815208 {
5209+ pragma (inline, true );
51825210 mixin (traceEnterAndExit! (__FUNCTION__ ));
51835211 return parseLeftAssocBinaryExpression! (OrExpression, XorExpression,
51845212 tok! " |" )();
@@ -5194,6 +5222,7 @@ class Parser
51945222 */
51955223 ExpressionNode parseOrOrExpression ()
51965224 {
5225+ pragma (inline, true );
51975226 mixin (traceEnterAndExit! (__FUNCTION__ ));
51985227 return parseLeftAssocBinaryExpression! (OrOrExpression, AndAndExpression,
51995228 tok! " ||" )();
@@ -5303,7 +5332,8 @@ class Parser
53035332 }
53045333 else if (currentIs(tok! " [" ))
53055334 {
5306- StackBuffer typeSuffixes;
5335+ alias typeSuffixes = parameterAttributes;
5336+ typeSuffixes.clear();
53075337 while (moreTokens() && currentIs(tok! " [" ))
53085338 if (! typeSuffixes.put(parseTypeSuffix()))
53095339 return null ;
@@ -5551,6 +5581,7 @@ class Parser
55515581 */
55525582 ExpressionNode parsePowExpression ()
55535583 {
5584+ pragma (inline, true );
55545585 mixin (traceEnterAndExit! (__FUNCTION__ ));
55555586 return parseLeftAssocBinaryExpression! (PowExpression, UnaryExpression,
55565587 tok! " ^^" )();
@@ -5867,6 +5898,7 @@ class Parser
58675898 */
58685899 ExpressionNode parseRelExpression (ExpressionNode shift)
58695900 {
5901+ pragma (inline, true );
58705902 mixin (traceEnterAndExit! (__FUNCTION__ ));
58715903 return parseLeftAssocBinaryExpression! (RelExpression, ShiftExpression,
58725904 tok! " <" , tok! " <=" , tok! " >" , tok! " >=" , tok! " !<>=" , tok! " !<>" ,
@@ -5968,6 +6000,7 @@ class Parser
59686000 */
59696001 ExpressionNode parseShiftExpression ()
59706002 {
6003+ pragma (inline, true );
59716004 mixin (traceEnterAndExit! (__FUNCTION__ ));
59726005 return parseLeftAssocBinaryExpression! (ShiftExpression, AddExpression,
59736006 tok! " <<" , tok! " >>" , tok! " >>>" )();
@@ -6783,6 +6816,7 @@ class Parser
67836816 */
67846817 TemplateArgumentList parseTemplateArgumentList ()
67856818 {
6819+ pragma (inline, true );
67866820 mixin (traceEnterAndExit! (__FUNCTION__ ));
67876821 return parseCommaSeparatedRule! (TemplateArgumentList, TemplateArgument)(true );
67886822 }
@@ -6950,6 +6984,7 @@ class Parser
69506984 */
69516985 TemplateParameterList parseTemplateParameterList ()
69526986 {
6987+ pragma (inline, true );
69536988 mixin (traceEnterAndExit! (__FUNCTION__ ));
69546989 return parseCommaSeparatedRule! (TemplateParameterList, TemplateParameter)(true );
69556990 }
@@ -7171,6 +7206,8 @@ class Parser
71717206 */
71727207 ExpressionNode parseTernaryExpression ()
71737208 {
7209+ pragma (inline, true );
7210+
71747211 mixin (traceEnterAndExit! (__FUNCTION__ ));
71757212 auto startIndex = index;
71767213
@@ -7913,7 +7950,8 @@ class Parser
79137950 node.comment = comment;
79147951 comment = null ;
79157952
7916- StackBuffer declarators;
7953+ alias declarators = storageClasses;
7954+ declarators.clear();
79177955 Declarator last;
79187956 while (true )
79197957 {
@@ -8095,6 +8133,7 @@ class Parser
80958133 */
80968134 ExpressionNode parseXorExpression ()
80978135 {
8136+ pragma (inline, true );
80988137 mixin (traceEnterAndExit! (__FUNCTION__ ));
80998138 return parseLeftAssocBinaryExpression! (XorExpression, AndExpression,
81008139 tok! " ^" )();
0 commit comments