Actually I'm not sure what's at fault here but at least I have a test case on R-T vs C-T behavior. Reduced from FReD static regex codegen, so the test case is rather convulted. Summarizing it: during CTFE I built an array of structs containing string. Somehow at CTFE I manage to get string at index 0 with same content as at index 1. At run-time they are of course different. Maybe it has something to do with to!string. Tested on 2.055 and 2.056head running on linux 64, results are the same.
Created attachment 1029 [details] failing test
Reduced test case: struct CtState { string code; } CtState bug6749() { CtState[] pieces; CtState r = CtState("correct"); pieces ~= r; r = CtState("clobbered"); return pieces[0]; } static assert(bug6749().code == "correct"); Looks like a problem with appending structs.
https://github.com/D-Programming-Language/dmd/commit/f680025e30b5423e2d2759e5c2f004cafb53e5ea https://github.com/D-Programming-Language/dmd/commit/36d5b056a318698d392cc84db92282368092a533
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル