Any suggestions on dmd error message formatting?

Chris Piker chris at hoopjump.com
Sat May 15 08:15:19 UTC 2021


On Saturday, 15 May 2021 at 06:12:25 UTC, SealabJaster wrote:
> On Saturday, 15 May 2021 at 04:54:15 UTC, Chris Piker wrote:
>
> T_T My eyes burn.

Good, it's not just me.  If figured the Deities out there 
visually parse these messages even hung over.

> Seems the final `int function` parameter needs to accept a 
> `Tuple!(int, int)`

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?

Hey since you're pretty good at this, can you tell me why how a 
person fixes this error? I've already formatted it, but I haven't 
changed any of the non-whitespace text.

```
das2/range.d(570,39): Error: incompatible types for (dr_fine) : 
(dr_coarse):
```
```d
das2.range.PriorityRange!(
   DasRange!(
     Take!(
       ZipShortest!(
         cast(Flag)false, Result, Generator!(function () @safe => 
uniform(0, 128))
       )
     ),
     int function(Tuple!(int, int)) pure nothrow @nogc @safe,
     int function(Tuple!(int, int)) pure nothrow @nogc @safe,
     Tuple!(int, int),
     int
   ),
   int function() pure nothrow @nogc @safe
)

and

das2.range.PriorityRange!(
   DasRange!(
     Take!(
       ZipShortest!(
         cast(Flag)false, Result, Generator!(function () @safe => 
uniform(0, 128))
       )
     ),
     int function(Tuple!(int, int)) pure nothrow @nogc @safe,
     int function(Tuple!(int, int)) pure nothrow @nogc @safe,
     Tuple!(int, int),
     int
   ),
   int function() pure nothrow @nogc @safe
)

```
To get around the problem I used `.array` for a bit of type 
erasure, so for now this error isn't messing with my unittests, 
but danged if I can spot the problem, even formatted.

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



More information about the Digitalmars-d-learn mailing list