Hello!
Since the last update I implemented the following visitors:
Also finished the work on explicitly_annotated_unittests,
did one more iteration for constructor_check as it
was in need of a redesign and spent a good amount of time on
same_name_check. This visitor is not 100% correct in the
actual D-Scanner
. A small example would be this:
static if(true)
int a;
else
{
int a;
int a; // should throw a warning but doesn't
}
static if(true)
int a = 2;
static if(true)
int a = 2; // throws warning
static if(true)
enum a = 2;
static if(true)
enum a = 2; // does not throw warning
Things can get a bit tricky here with conditional declarations, because
they don't introduce a new scope, and you can't really always evaluate them,
meaning we can have situations like:
version(windows)
int a;
version(something_not_windows)
int a; // will incorrectly throw a warning
I decided with my mentors to go ahead and mimic the actual implementation,
even if it's not 100% correct, and I will probably get back to it at a later
point.
Also created a small pr
in dmd adding some lacking methods in ASTBase
Thank you!