WIP: Get containers to return when you have no parent
parent
6171d2d17e
commit
a770f5f5c9
|
@ -51,6 +51,7 @@ void beginCompilation(string[] sourceFiles)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TypeChecker typeChecker = new TypeChecker(modulle);
|
TypeChecker typeChecker = new TypeChecker(modulle);
|
||||||
|
typeChecker.beginCheck();
|
||||||
}
|
}
|
||||||
// catch(CollidingNameException e)
|
// catch(CollidingNameException e)
|
||||||
// {
|
// {
|
||||||
|
|
|
@ -35,12 +35,12 @@ public final class TypeChecker
|
||||||
resolver = new Resolver(this);
|
resolver = new Resolver(this);
|
||||||
|
|
||||||
|
|
||||||
beginCheck();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void beginCheck()
|
public void beginCheck()
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Make sure there are no name collisions anywhere
|
* Make sure there are no name collisions anywhere
|
||||||
|
@ -491,14 +491,22 @@ unittest
|
||||||
Parser parser = new Parser(currentLexer.getTokens());
|
Parser parser = new Parser(currentLexer.getTokens());
|
||||||
Module modulle = parser.parse();
|
Module modulle = parser.parse();
|
||||||
|
|
||||||
gprintln("Type checking and symbol resolution...");
|
TypeChecker typeChecker = new TypeChecker(modulle);
|
||||||
|
|
||||||
|
Entity container = typeChecker.getResolver().resolveBest(typeChecker.getModule, "y");
|
||||||
|
gprintln(container); /* TODO: fix this, resolve container at top */
|
||||||
|
Entity colliderMember = typeChecker.getResolver().resolveBest(typeChecker.getModule, "y.p");
|
||||||
|
gprintln(colliderMember); /* TODO: fix this, resolve container at top */
|
||||||
|
parser.expect("d");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TypeChecker typeChecker = new TypeChecker(modulle);
|
typeChecker.beginCheck();
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
catch(CollidingNameException e)
|
catch(CollidingNameException e)
|
||||||
{
|
{
|
||||||
|
/* TODO: Check */
|
||||||
assert(true);
|
assert(true);
|
||||||
//gprintln("Stack trace:\n"~to!(string)(e.info));
|
//gprintln("Stack trace:\n"~to!(string)(e.info));
|
||||||
}
|
}
|
||||||
|
@ -557,6 +565,7 @@ unittest
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TypeChecker typeChecker = new TypeChecker(modulle);
|
TypeChecker typeChecker = new TypeChecker(modulle);
|
||||||
|
|
||||||
}
|
}
|
||||||
// catch(CollidingNameException e)
|
// catch(CollidingNameException e)
|
||||||
// {
|
// {
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
module x;
|
module y;
|
||||||
|
|
||||||
int x;
|
int p;
|
Loading…
Reference in New Issue