Translate _d_newitem{U,T,iT} to a template#14664
Conversation
|
Thanks for your pull request, @teodutu! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#14664" |
|
tests seem to be failing. |
97942db to
2d9def4
Compare
|
Yeah @UplinkCoder, |
2d9def4 to
934d4a3
Compare
|
|
934d4a3 to
c175c64
Compare
|
I managed to avoid https://issues.dlang.org/show_bug.cgi?id=23650 by avoiding the lowering altogether inside |
d3f3c67 to
1d245f5
Compare
|
@teodutu please rebase |
1d245f5 to
eea4973
Compare
eea4973 to
8ccce9e
Compare
|
Done @PetarKirov. I'll look into the traceGC errors later this week. |
206e85b to
5400302
Compare
5400302 to
fedf8e5
Compare
|
cc @dkorpel @PetarKirov this seems to be green now. |
fedf8e5 to
7077de1
Compare
|
Done @dkorpel. Take another look when you can. |
207c374 to
1e21a7c
Compare
This makes the following changes:
- Replace `_d_newitem{U,T,iT}` with a template `_d_newitemT` that
allocates memory for the new `struct` and performs the required
initialisation
- Move lowering call to `_d_newitemT` from e2ir.d to expressionsem.d
- Add `lowering` field to `NewExp` that contains the lowered call and
use it in e2ir.d
- Remove `_d_newitem{,i}T` from rt.lifetime
Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>
1e21a7c to
960326c
Compare
dkorpel
left a comment
There was a problem hiding this comment.
I thought you were going to forward Unqual!T in druntime, but unqualifying in the compiler works too.
…EMIT, TRACENEWITEMT and TRACENEWITEMIT
* Remove RTLSYM for Translation PR #15819: Removed NEWARRAYMITX, NEWARRAYMITX, TRACENEWARRAYMTX and TRACENEWARRAYMITX * Remove RTLSYM for Translation PR #15299: Removed NEWARRAYT, NEWARRAYIT, TRACENEWARRAYT and TRACENEWARRAYIT * Remove RTLSYM for Translation PR #14837: Removed NEWCLASS, TRACENEWCLASS * Remove RTLSYM for Translation PR #14664: Removed NEWITEMT, NEWITEMIT, TRACENEWITEMT and TRACENEWITEMIT * Remove RTLSYM for Translation PR #14550: Removed ARRAYCATNTX, ARRAYCATT, TRACEARRAYCATNTX and TRACEARRAYCATT * Remove RTLSYM for Translation PR #14382: Removed ARRAYSETASSIGN * Remove RTLSYM for Translation PR #14310: Removed ARRAYASSIGN * Remove RTLSYM for Translation PR #13495: Removed ARRAYAPPENDT, ARRAYAPPENDCTX, TRACEARRAYAPPENDT and TRACEARRAYAPPENDCTX
This contributes to dlang/project-ideas#25 and makes the following changes:
_d_newitem{U,T,iT}with a template_d_newitemTthat allocates memory for the newstructand performs the required initialisation_d_newitemTfrom e2ir.d to expressionsem.dloweringfield toNewExpthat contains the lowered call and use it in e2ir.d_d_newitem{,i}Tfrom rt.lifetime.d