But we also have this confusing dynamic:|scope |no attribute| shared |static | |--------|------------|--------|-----------| |module |TLS |global |TLS (no-op)| |function|local |local! |TLS | |class |instance |global |TLS |
There is a typo in your array, a shared field is per-instance, not global.
class A { shared int c; // Each A has its own c }