Rainer Schuetze
Rainer Schuetze
Optimized slightly further by avoiding more wrapper calls and some bounds-checks: | options | dmd-2.111.0 | dmd-PR | | ------------------- | ----------- | -------- | | -O -inline -release |...
> I take it this is no longer a draft? Indeed, I have removed that from the title.
> @rainers Do you have any TODO's left for this PR that I could help with? Thanks for the offer. I think this is more or less done. After a...
> One issue that might be considered a regression is that mutable keys are now ok to use in some expressions, because the key type is currently always modified to...
Thanks for the analysis. I think extracting the array lowering and explicitly calling it looks good. I copied that from your commit. Instead of gagging the output, I think excluding...
> It seems stock dmd 2.111 accepts mutable keys, too: I noticed that dmd 2.111 checks for mutable dynamic arrays as keys when inserting, I restored that check now and...
> I just realize that the lowerings might not preserve left-to-right evaluation order of sub-expressions (InExp, AA-literal). I'll add some tests to verify... It's worse than expected for current dmd:...
Fixed the InExp evaluation order, but I noticed another change: ```D class C { int x; } void testlvalue() { int[int] aa = [0:1]; int[] da = new int[1]; C...
> Probably should keep the same behavior. Restored the error message for IndexExp. This allowed reverting most of the changes to fail6795.d ( https://github.com/dlang/dmd/pull/21066/commits/641cd7d32b83841b999c979261efbfa2335a61e7#diff-5e1147b82268376a89e4a40fac3bf56a4f5a9057a6b6b02bc12895d797b7c889 ), but for taking the address...
I updated these for VS 17.10 and 17.11 just a couple of days ago, I'll create a new rc later...