長い間悩んでたバグの原因がこれか
こんなのってないよ…

[最小コード]
import std.stdio;
void main(){
 File[string] tx;
 tx["filename"] = File();
}

[実行結果]
object.Error: Access Violation
----------------
0x004086D7 in void std.stdio.File.detach()
0x0040B2C0 in extern (C) int rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).void runMain()
0x0040B2FB in extern (C) int rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).void runAll()
0x0040AEF9 in _d_run_main
0x0040849C in main
0x76DB33AA in BaseThreadInitThunk
0x77949EF2 in RtlInitializeExceptionChain
0x77949EC5 in RtlInitializeExceptionChain
----------------

連想配列を絡めるとopAssign, postblitが破綻するような感じでした
このせいで参照カウンタを持った構造体を連想配列に突っ込むことが出来ないんですが、
どう回避すればいいんでしょう…