Consider this code:
```
typedef struct tagFoo Foo;
struct Bar {
int x;
};
typedef struct tagFoo {
struct Bar bar;
} Foo;
```
This generates an invalid layout for tagFoo:
```
private static final GroupLayout $LAYOUT = MemoryLayout.structLayout(
tagFoo.Bar.$LAYOUT().withName("bar")
).withName("tagFoo");
```
Note how this refers to tagFoo.Bar, which looks like a nested class, but in reality jextract has generated a toplevel Bar.
```
typedef struct tagFoo Foo;
struct Bar {
int x;
};
typedef struct tagFoo {
struct Bar bar;
} Foo;
```
This generates an invalid layout for tagFoo:
```
private static final GroupLayout $LAYOUT = MemoryLayout.structLayout(
tagFoo.Bar.$LAYOUT().withName("bar")
).withName("tagFoo");
```
Note how this refers to tagFoo.Bar, which looks like a nested class, but in reality jextract has generated a toplevel Bar.