https://issues.dlang.org/show_bug.cgi?id=23638
--- Comment #4 from RazvanN <[email protected]> --- (In reply to Jack Stouffer from comment #2) > (In reply to RazvanN from comment #1) > > Unfortunately, the problem comes from the fact that the hook uses typeid > > internally. `dup` is just a normal template so the compiler does not give it > > any special treatment. The source of this is that dup uses internally typeid > > to pass a Typeinfo to the newarray hook (which currently is not > > templatized). Once newarray is templatized and Typeinfo is not needed > > anymore, the problem will disappear. > > > > So, I guess, the real solution in this case is to templatize the > > _d_new_array hook. > > Sounds like the actual root cause is that use of typeid in betterC mode > doesn't result in a trace. People have been trying to template-ize druntime > for like seven years so fixing the typeid problem is more likely to bear > fruit. Also, the typeid problem is just at the surface, the underlying issue is that a function that receives a Typeinfo object is called (and typeid is used to get the underling Typeinfo). We can get around this only by templating that function (which is a compiler hook). --
