What was missing, and resulting in a segmentation fault, was the result of a mismatched codequeue/codestack. This was fixed by adding the missing handling code for `ArrayIndex` inside the `expressionPass(, Context)` method. Now the corretc dependency tree is generated and we can continue working on the type checking and code generation which traverses the linearized/DFS'd dependency graph/tree.

So far so good, it seems to be progressing.

Reply to this note

Please Login to reply.

Discussion

We have also had to check the type of the array being accessed such that we can copy accross the correct type to he resultant `ArrayIndexInstruction`:

```

/* Array type `[]` */

if(cast(Pointer)indexToType)

{

gprintln("ArrayIndex: Pointer access");

Pointer pointer = cast(Pointer)indexToType;

accessType = pointer.getReferredType();

}

/* Stack-array type `[]` */

else if(cast(StackArray)indexToType)

{

gprintln("ArrayIndex: Stack-array access");

// TODO: Set `accessType` here

}

else

{

// TODO: Throw an error here

// throw new TypeMismatchException()

gprintln("Indexing to an entity other than a stack array or pointer!", DebugType.ERROR);

assert(false);

}

```

This seemed to work :), we have now progressed to dependency processing of ArrayAssignment's now... this is next on the chopping block

This weekend I shall continue on this work

Well, that was a lie - let's say this WEEK

MIght not be this week, I need to finish up some other libraries of mine which have been on the backburner.

This will probably be a slower month for #tlang as I have to catch up some other work, however I hope that by the end of march (or sooner!) things pick up again as I will ahve more free time seeing that I will be done working on these othe rprojects of mine (for now - they needed some TLC)