www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [SAoC2022] Replace libdparse with dmd-as-a-library in D-Scanner

reply Lucian Danescu <lucidanescu28 yahoo.com> writes:
Hello!

Since the last update I implemented the following visitors:
- 
[auto_ref_assignment](https://github.com/Dlang-UPB/D-scanner/pull/51)
- 
[assert_without_msg](https://github.com/Dlang-UPB/D-scanner/pull/50)

Also finished the work on 
[explicitly_annotated_unittests](https://github.com/Dlang-UPB/D-scanner/pull/44),
did one more iteration for 
[constructor_check](https://github.com/Dlang-UPB/D-scanner/pull/43) as it
was in need of a redesign and spent a good amount of time on
[same_name_check](https://github.com/Dlang-UPB/D-scanner/pull/41). 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](https://github.com/dlang/dmd/pull/14646)
in dmd adding some lacking methods in `ASTBase`

Thank you!
Nov 19 2022
parent Basile.B <b2.temp gmx.com> writes:
On Saturday, 19 November 2022 at 20:39:14 UTC, Lucian Danescu 
wrote:
 Hello!

 Since the last update I implemented the following visitors:
 [...]
 Also created a small 
 [pr](https://github.com/dlang/dmd/pull/14646)
 in dmd adding some lacking methods in `ASTBase`

 Thank you!
keep on the good work
Nov 21 2022