I'm building a library that uses vibe-core as an indirect dependency.
Specifically, I'm testing the library with dub test.
A very odd thing happens as I'm picking off compiler errors one at a
time. After all the errors that I created are listed, I get this list:
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1546,16):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("+=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "+=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1548,28):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("-=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "-=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(327,10):
Error: template instance vibe.core.sync.TaskMutexImpl!false error
instantiating
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1546,16):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("+=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "+=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1548,28):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("-=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "-=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(426,10):
Error: template instance vibe.core.sync.TaskMutexImpl!true error
instantiating
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1607,16):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("+=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "+=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1609,28):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("-=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "-=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(467,10):
Error: template instance vibe.core.sync.RecursiveTaskMutexImpl!false
error instantiating
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1607,16):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("+=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "+=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-core-1.9.0/vibe-core/source/vibe/core/sync.d(1609,28):
Error: template core.atomic.atomicOp cannot deduce function from
argument types !("-=")(shared(uint), int), candidates are:
/home/steves/.dvm/compilers/dmd-2.091.0/linux/bin/../../src/druntime/import/core/atomic.d(543,14):
atomicOp(string op, T, V1)(ref shared T val, V1 mod)
with op = "-=",
T = uint,
V1 = int
must satisfy the following constraint:
__traits(compiles, mixin("*cast(T*)&val" ~ op ~ "mod"))
../../../.dub/packages/vibe-co