view dmd/TypeReference.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
line wrap: on
line source

module dmd.TypeReference;

import dmd.common;
import dmd.Type;
import dmd.MOD;
import dmd.TypeNext;
import dmd.OutBuffer;
import dmd.Loc;
import dmd.Scope;
import dmd.HdrGenState;
import dmd.Expression;
import dmd.Identifier;
import dmd.NullExp;
import dmd.CppMangleState;
import dmd.TY;

import dmd.DDMDExtensions;

class TypeReference : TypeNext
{
	mixin insertMemberExtension!(typeof(this));

    this(Type t)
	{
		register();
		super(TY.init, null);
		assert(false);
	}
	
    override Type syntaxCopy()
	{
		assert(false);
	}
	
    override Type semantic(Loc loc, Scope sc)
	{
		assert(false);
	}
	
    override ulong size(Loc loc)
	{
		assert(false);
	}
	
    override void toCBuffer2(OutBuffer buf, HdrGenState* hgs, MOD mod)
	{
		assert(false);
	}
	
    override Expression dotExp(Scope sc, Expression e, Identifier ident)
	{
		assert(false);
	}
	
    override Expression defaultInit(Loc loc)
	{
version(LOGDEFAULTINIT) {
    printf("TypeReference::defaultInit() '%s'\n", toChars());
}
		return new NullExp(loc, this);
	}
	
    override bool isZeroInit(Loc loc)
	{
		assert(false);
	}
	
version (CPP_MANGLE) {
    void toCppMangle(OutBuffer buf, CppMangleState* cms)
	{
		assert(false);
	}
}
}