view dmd/InlineCostState.d @ 165:25ede4f66bda

Temporarily disabled GC (again) because phobos fails to compile with it (looks like some ObjSymbols are being falsely collected, see Library.d:666) Getting rid of global state (i.e global and static variables) to allow running concurrent compilation
author korDen
date Thu, 30 Sep 2010 10:04:32 +0400
parents e28b18c23469
children
line wrap: on
line source

module dmd.InlineCostState;

import dmd.common;
import dmd.FuncDeclaration;
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, Expressions arguments)
{
	int cost = 0;

    if (arguments)
    {
		foreach (e; arguments)
		{   
			if (e)
				cost += e.inlineCost(ics);
		}
    }
    return cost;
}