Bug 15029 – [Reg 2.069.0-devel] _postblitRecurse invokes opDispatch with __xpostblit (breaks emplace)

Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P1
Component
druntime
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-09-08T13:31:00Z
Last change time
2015-09-11T18:57:54Z
Assigned to
nobody
Creator
code

Comments

Comment #0 by code — 2015-09-08T13:31:05Z
See https://github.com/D-Programming-Language/dub/issues/667. ~/dub$ ./build.sh Generating version file... Running dmd... /home/sun/INSTALL/dmd/include/d2/object.d(2329): Error: argument s.opDispatch!"__xpostblit" has no parent /home/sun/INSTALL/dmd/include/d2/std/conv.d(4054): Error: template instance object._postblitRecurse!(Json) error instantiating /home/sun/INSTALL/dmd/include/d2/std/conv.d(3917): instantiated from here: emplaceImpl!(Json) /home/sun/INSTALL/dmd/include/d2/std/array.d(2829): instantiated from here: emplaceRef!(Json, Json) /home/sun/INSTALL/dmd/include/d2/std/array.d(135): instantiated from here: put!(Json) source/dub/generators/sublimetext.d(39): instantiated from here: array!(MapResult!(targetFolderJson, Result)) source/dub/generators/sublimetext.d(61): Error: template instance std.array.array!(MapResult!(Json, string[])) error instantiating source/dub/generators/sublimetext.d(95): Error: template instance std.array.array!(Json[]) error instantiating source/dub/generators/sublimetext.d(99): Error: template instance std.array.array!(MapResult!(makeBuildSystem, string[])) error instantiating source/dub/internal/sdlang/lexer.d-mixin-1260(1260): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec. source/dub/internal/sdlang/lexer.d-mixin-1268(1268): Deprecation: constructor std.datetime.SysTime.this is deprecated - Please use the overload which takes a Duration instead of a FracSec. It fails over `s.opDispatch!"__xpostblit" has no parent` but `__traits(hasMember, S, "__xpostblit")` should have instantiated opDispatch anyhow.
Comment #1 by code — 2015-09-08T13:34:21Z
(In reply to Martin Nowak from comment #0) > but `__traits(hasMember, S, "__xpostblit")` should have instantiated opDispatch > anyhow. `__traits(hasMember, S, "__xpostblit")` should NOT instantiate opDispatch and return false.
Comment #2 by code — 2015-09-11T18:57:54Z
*** This issue has been marked as a duplicate of issue 15016 ***