The new scanner is coming along well. Still a bit to go, but already its design has pointed out several bugs in our older code.
We have also built in a lot more logging. One example is the scanner map. At various stages the scanner might be scanning too much, or too little. At other times it scans new code that requires new plugs. Tracing the code is one way to find out these issues, but its very tedious.
Because of this I have implemented an optional log feature which outputs a scanner map. Below is a small excerpt, and note that the map is not emitted in order.
Currently it is scanning code for Int64, which causes issues because currently we do not have 64 bit support. However somehow the old scanner functioned, so this means we are scanning too much, plugs are not being properly resolved, or some other issue. Using this scanner map we can trace it though. We can see that the scanner found Int64 as a parameter to the Double.Int64BitsToDouble(Int64) method. Which also should not be scanned. So we can then search again and see where Double was picked up, and so on. Until we find a method or type that was accidentally scanned, or a plug that was missed.
I've now updated it to emit HTML with hyperlinks. To find where any source was linked in, you can merely click on the item and it will take you to the entry where it was linked. This makes following up links very fast!