DScanner is ready for use

bearophile via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue Apr 22 19:08:19 PDT 2014


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


More information about the Digitalmars-d-announce mailing list