Handle references to nested types and tails
References to nested types are not handled properly. Additionally, references to tails are not handled properly. E.g. given:
```ttcn3
type record outer {
union {
integer inner,
nestedInner nestedInnerRef,
record {
integer finner,
integer finnerExtra
} furtherNested
} choice,
record {
union {
integer inner
} innerChoice
} middle
}
type record nestedInner {
integer nInner,
integer nInnerExtra,
record {
integer rnI,
integer rnIextra
} refNestedInner
}
type record referencedNestedInner {
union {
integer rnInner
} rnChoice,
integer rInt,
record {
integer rnfInner,
integer rnfInnerExtra
} refNested
}
```
It should be possible to specify:
```ttcn3
template outer.choice c1 := {
inner :=1, //one or the other -> separate warning, new feature
nestedInnerRef := {nInner := 1}
}
template outer.choice.furtherNested c1i := {
finner := 1 //warning expected
}
template outer.choice.nestedInnerRef.refNestedInner c1irn := {
rnI := 1 //warning expected
}
template outer.choice.nestedInnerRef c1ir := {
nInner := 1
}
template outer c1o := { //warning expected
// nInner := 1
}
template outer.middle.innerChoice c1m := { //warning expected
// nInner := 1
}
```
task