On Saturday, 15 May 2021 at 08:15:19 UTC, Chris Piker wrote:
I did much the same as you and reformatted the error message to find the bug. As to the larger question of how to automatically process compiler output... got any ideas?

Hope someone who knows how to modify DMD bothers to:

1. Implement some kind of ability for that to work.
2. Convinces Walter to let it through.

I can't do either, so just have to hope this issue is finally tackled at some point in the future.

My guess is that the `Result` item is a hint. `Result` probably never equals another `Result` no matter what.

Yea, I can't see what's wrong just from that either.

My best guess is `Result` might be embedded within another templated thing, which might be different than the `Result` that the function is expecting. Place a couple of `pragma(msg, Result.stringof); // Might need to use typeof(Result).stringof, or even __traits(identifier, Result)` wherever it might be relevant, and see if that shows anything fun.

I also really can't see where else there'd be a type mismatch, especially if a `.array` is what fixes things.

e.g. `RangeThatReturns!OtherRange.Result != RangeThatReturns!(int[]).Result`

But other than that, I can't tell just from that error snippet.

Reply via email to