A *self method called directly on arr[i] (or a deref place) fell through to an alloca+store-of-value, so the callee mutated a throwaway copy and the live slot was never written. fixupMethodReceiver now takes the real address of .index_expr/.deref_expr receivers via lowerExprAsPtr (normalized to *T), mirroring the explicit-argument path. A comptime-pack index (xs[i] where xs is a pack) is excluded -- a pack has no runtime storage to address -- so it keeps flowing through the general copy path. Regression: examples/0188-types-method-array-index-receiver.sx
2 lines
2 B
Plaintext
2 lines
2 B
Plaintext
0
|