view dmd/InlineDoState.d @ 191:52188e7e3fb5

Fixed deprecated features, now compiles with DMD2.058 Also changed Array allocation policy: Now doesn't reallocate but malloc's, followed by a memcpy (no free). (this fixes a crash while compiling druntime. Same bug in dmd)
author korDen@korDen-pc
date Sun, 25 Mar 2012 03:11:12 +0400
parents e3afd1303184
children
line wrap: on
line source

module dmd.InlineDoState;

import dmd.common;
import dmd.Array;
import dmd.Dsymbol;
import dmd.VarDeclaration;
import dmd.Expression;
import dmd.ArrayTypes;

import dmd.TObject;

class InlineDoState : TObject
{
    VarDeclaration vthis;
    Array from;		// old Dsymbols
    Array to;		// parallel array of new Dsymbols
    Dsymbol parent;	// new parent
	
	this()
	{
		register();
		from = new Array();
		to = new Array();
	}
}

/******************************
 * Perform doInline() on an array of Expressions.
 */

Expressions arrayExpressiondoInline(Expressions a, InlineDoState ids)
{   
	Expressions newa = null;

    if (a)
    {
		newa = new Expressions();
		newa.setDim(a.dim);

		foreach (size_t i, Expression e; a)
		{   
			if (e)
			{
				e = e.doInline(ids);
				newa[i] = e;
			}
		}
    }
    return newa;
}