Mercurial > projects > ddmd
view dmd/InlineCostState.d @ 32:81796b717a39
A few bad cast fixed. TODO: either get rid of dyncast(), or derive all objects from intermediate supertype.
author | korDen |
---|---|
date | Tue, 18 May 2010 17:51:46 +0400 |
parents | 10317f0c89a5 |
children | be2ab491772e |
line wrap: on
line source
module dmd.InlineCostState; import dmd.FuncDeclaration; import dmd.Array; import dmd.Expression; struct InlineCostState { int nested; int hasthis; int hdrscan; // !=0 if inline scan for 'header' content FuncDeclaration fd; } const int COST_MAX = 250; int arrayInlineCost(InlineCostState* ics, Array arguments) { int cost = 0; if (arguments) { for (int i = 0; i < arguments.dim; i++) { Expression e = cast(Expression)arguments.data[i]; if (e) cost += e.inlineCost(ics); } } return cost; }