The problem is in some lacuna in the type descriptor format which does not allow to get in some contexts the correct type information for elements of the array of a GROUP. This was one of reasons to design another format of the stored type information.
The attached program demonstrates the work around for this problem. The commented line must raise the same compile time errors if to remove the comment sign. test.clw (539 Bytes)
“Internal compiler error” means that some exception occurred during compiler’s work. First reported number is the address of instruction caused exception, second one - the address of the COMPILE function exported from compilers’ DLLs. Reasons for exceptions can be different. It’s need to have a test program allowing to reproduce the exception to cure it.
I changed your subject “Question, I can compile this” to one that tries summarize your question “DIM GROUP Array does not allow Dot syntax to reference inner GROUP”. You can edit this.
Your post contents are very nicely done with all the details needed to answer your questions including CODE that hep a lot here. Please take the time to make your Subject line as good. A good Subject attracts people that can answer your question. More important is in the future when searching these posts a good Subject makes it easy to pick the topics in the search results that are most desirable.
Can you post your fixed code?
Based on the @also Test CLW it seems the workaround is to create the same GROUP without the DIM and use a &Reference assignment to the DIM Group like below?
emba_REF &= emba[i] !Reference &= Assign Array [i] to non-array of same GROUP Type
emba_REF.Dat.REmb = emb:Record !was: emba[i].Dat.REmb = emb:Record
! AG.GRef.F = 0 !original code that would not compile
GGRef &= AG !Reference Assign Arrayed Group to Simple Group
GGref.Gref.F = 0 !Use Simple Group for dot syntax assigment