view dmd/Loc.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.Loc;

import dmd.common;
import dmd.Module;
import dmd.OutBuffer;

struct Loc
{
    string filename;
    uint linnum;

    this(int x)
    {
		linnum = x;
		filename = null;
    }

    this(Module mod, uint linnum)
	{
		this.linnum = linnum;
		this.filename = mod ? mod.srcfile.toChars() : null;
	}

    string toChars()
	{
		scope OutBuffer buf = new OutBuffer();

		if (filename !is null) {
			buf.printf("%s", filename);
		}

		if (linnum) {
			buf.printf("(%d)", linnum);
			buf.writeByte(0);
		}

		return buf.extractString();
	}

    bool equals(ref const(Loc) loc)
	{
		assert(false);
	}
}