Brian Schott:

DScanner is a tool for analyzing D source code. It has the following features:
...
https://github.com/Hackerpilot/Dscanner

I have just compiled it on Windows32 and tried it.

The compilation using the given bat has failed to link:

OPTLINK (R) for Win32  Release 8.00.15
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
dscanner.obj(dscanner)
Error 42: Symbol Undefined _D8analysis10ifelsesame15IfElseSameCheck6__ctorMFAyaZC8analysis10ifelsesame15IfElseSameCheck
dscanner.obj(dscanner)
Error 42: Symbol Undefined _D8analysis12constructors16ConstructorCheck7__ClassZ
dscanner.obj(dscanner)
Error 42: Symbol Undefined _D8analysis12constructors16ConstructorCheck6__ctorMFAyaZC8analysis12constructors16ConstructorCheck
dscanner.obj(dscanner)
Error 42: Symbol Undefined _D8analysis10ifelsesame15IfElseSameCheck7__ClassZ
--- errorlevel 4


But I have built the DScanner successfully using the old "bud" tool.

I have seen that this basic usage is not supported:
dscanner -s *.d

I have seen it doesn't support source code with unicode identifiers or chars.

How do you enable/disable specific tests when you use -s?

This code gives four problems to Dscanner:

void main() {
    auto x = float(5);
    auto r = 1. + 2;
    int items[5];
    import std.stdio;
    int.max.writeln;
}


In about 25_000 CLOC lines of my code DScanner has found several usages of the old-style alias syntax, that I will fix. Plus it has found three usages of the implicit string concatenation, and two of them are (the same) bug! Andrei Alexandrescu was very wrong to think that implicit string concatenation is a speck of dust. I am not going to close down that enhancement request.

Bye,
bearophile

Reply via email to