This triggers the behaviour shown in bugzilla #1947; but that's incidental. Here, it's the error message which is the problem. It works OK on D1, and also works on D2 if you use ~ instead of ~=. The problem could be related to #1768, but the workaround there (explicitly initialising the variable) doesn't work here. ------ bug.d(10): Error: cannot evaluate func(";") at compile time bug.d(10): Error: argument to mixin must be a string, not (func(";")) Statement::blockExit(009989DC) mixin(func(";")); Assertion failure: '0' on line 123 in file 'statement.c' abnormal program termination ----------- --- char [] func(invariant char [] s) { char [] u = "".dup; u ~= s; // ICE u = u ~ s; // OK return u; } void main() { mixin(func(";")); }
Fixed dmd 1.031 and 2.015
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル