Auguste Rame
Auguste Rame
[AstGen](https://github.com/ziglang/zig/blob/master/src/AstGen.zig) generates the fancy ZIR untyped stage2 intermediate representation format that is a nice bit of padding between AST and analysis. We can't use AIR (the *typed* stage2 intermediate representation...
- [x] Diagnostics - [ ] Scope population - [x] Declarations - [ ] Fields - [ ] Params - [ ] Captures - [ ] Enums, errors - [...
Zig has a fantastic build feature called `emit_analysis` which well... emits analysis type data from the compiler proper. We do not use `emit_analysis` data in zls because it only appears...
When AST *is* valid, we can also use Sema to get really useful diagnostics! This is something for further down the line and it depends on #551.
The title is pretty self-explanatory: global variables/constructs must go! - [ ] `main.zig` - [ ] `actual_log_level` - [x] `stdout`, which is actually a BufferedWriter to stdout - [x] `allocator`...
Global variables are generally shunned in Zig land, so adding an option that shows global variable diagnostics might be cool. This would be especially useful for me right now as...
85% of our ArrayLists and HashMaps are needlessly managed; I'm not going to list them all out here but it's... pretty bad.
Examples: ```zig var amo = "gus"; _ = .{.amo = 123}; ``` ```zig var amo = "gus"; a.amo.b = ...; // Same applies to params ``` Now `amo` is "used"...
This was suggested by somebody in the Zig Discord. Examples would include: * "Name not defined" errors * "Name redefined" errors etc..
@mattnite suggested that we add fuzzing to zls to help catch rarer errors before they even affect users. Any implementation detail ideas?