I am debugging a case where operator overloading seems to break when I define the opBinary templates in a mixin template. On my own simple test-case it worked fine, so I'm trying to reduce my current code with dustmite.

The file tree is simply:

myproject/
  q16.d

And the command I run is:
```
$ dustmite myproject 'dmd -color=off -unittest q16.d 2>&1 | grep "Error: template \`util.q16.Q16_16.opBinary\` does not match any template declaration"' --no-redirect
```

It complains that the 'Initial test fails'. However, when I 'cd myproject' and run the command myself I get:
```
q16.d(167): Error: template `util.q16.Q16_16.opBinary` does not match any template declaration

$ echo $?
0
```

So for me it works. When I reduce the grep string to "util.q16.Q16_16.opBinary" it works on dustmite too, but it reduces too much since that condition is not precise enough. It seems that the backticks of `util.q16.Q16_16.opBinary` are the problem. I noticed that the back-ticks aren't there when the output is colorised, but adding -color=off didn't seem to make a difference. Removing them from the search or double-escaping them (like \\\`) also don't work.

Does anybody know what the problem is? I'm using Windows 10 and Git Bash.

Reply via email to