Pointed out on the forum: https://forum.dlang.org/post/lssjxaqshkvytbeeyoic@forum.dlang.org ``` void main() { auto a = new BigInt[](100); a[] = BigInt(1); // works fine a[] += BigInt(1); // Error: `@nogc` function `core.internal.array.operations.arrayOp! // (BigInt[], BigInt, "+=").arrayOp` cannot call non-@nogc function // `std.bigint.BigInt.opOpAssign!("+", BigInt).opOpAssign` } ``` arrayOp is a template, so function attributes should be inferred.
@dkorpel created dlang/dmd pull request #15890 "Fix 24272 - operations.arrayOp is forced @nogc nothrow pure" fixing this issue: - Fix 24272 - operations.arrayOp is forced @nogc nothrow pure https://github.com/dlang/dmd/pull/15890
dlang/dmd pull request #15890 "Fix 24272 - operations.arrayOp is forced @nogc nothrow pure" was merged into master: - 9e39e6916f5f13fd08bc929839c0a9ba9f4ee3e1 by Dennis Korpel: Fix 24272 - operations.arrayOp is forced @nogc nothrow pure https://github.com/dlang/dmd/pull/15890