view dmd/OverExp.d @ 187:b0d41ff5e0df

Added expandability scheme outlined in http://www.dsource.org/forums/viewtopic.php?t=5659&sid=6f2150ff5b0bffcd47512a6a7608d218
author Abscissa
date Tue, 07 Jun 2011 23:37:34 -0400
parents e3afd1303184
children 52188e7e3fb5
line wrap: on
line source

module dmd.OverExp;

import dmd.common;
import dmd.Expression;
import dmd.OverloadSet;
import dmd.Scope;
import dmd.Loc;
import dmd.TOK;
import dmd.Type;

import dmd.DDMDExtensions;

//! overload set
version(DMDV2)
class OverExp : Expression
{
	mixin insertMemberExtension!(typeof(this));

	OverloadSet vars;

	this(OverloadSet s)
	{
		register();
		super(loc, TOKoverloadset, OverExp.sizeof);
		//printf("OverExp(this = %p, '%s')\n", this, var.toChars());
		vars = s;
		type = Type.tvoid;
	}

	override int isLvalue()
	{
		return true;
	}

	override Expression toLvalue(Scope sc, Expression e)
	{
		return this;
	}
}