This commit is contained in:
Tristan B. Kildaire 2021-08-12 14:19:53 +02:00
parent b1219c20d5
commit 1596bedc35
3 changed files with 61 additions and 2 deletions

View File

@ -14,7 +14,7 @@ import compiler.symbols.typing.core;
import compiler.symbols.typing.builtins;
import compiler.typecheck.dependency;
public final class ExpressionDNode : DNode
public class ExpressionDNode : DNode
{
private Expression expression;
@ -30,4 +30,33 @@ public final class ExpressionDNode : DNode
{
name = "[expression]";
}
}
/**
* AccessNode
*
* An AccessNode represents a accessor call
* This can be as simple as `a` or `a.a`
*/
public class AccessDNode : DNode
{
/**
* Construct a new AccessNode given the `entity`
* being accessed
*/
this(DNodeGenerator dnodegen, Entity entity)
{
super(dnodegen, entity);
// this.entity = entity;
initName();
}
private void initName()
{
name = resolver.generateName(cast(Container)dnodegen.root.getEntity(), cast(Entity)entity);
name = "[AccessNode] (Name: "~name~")";
}
}

View File

@ -12,6 +12,6 @@ public class TError : Exception
//super(messageBytes);
super("");
super(message);
}
}

View File

@ -0,0 +1,30 @@
module typeChecking2;
A aInstance;
B bInstance;
int j = k;
int k = j;
class A
{
static int pStatic;
static B bInstanceStatic;
static A aInstanceStaticMoi;
int poes;
}
class B
{
static int jStatic;
static A aInstanceStatic;
}
class C
{
static int j=k;
static int k;
int p;
}