[JuliaLowering] Many declaration/assignment tests, minor bugfixes (#61213)
Mainly an attempt to do some serious testing:
- Test a large number of `const`/`global`/`local` and `=` forms
- Test the difference between `=` and `kw` in forms `kw` may appear
- Many new `@test_broken`s to fix (some already filed as issues, others
TODO)
- New test helpers
- Move `@testset` to make auto-formatting easier
Also include some small AST validator tweaks from testing and robot
fuzzing:
- Fix import, using, local, global being accepted with 0 or more args
instead of
1 or more
- export, public with 0 args are seemingly accepted by Core.eval
- Fix `-->` taking any number of args
- Fix the validator side of
https://github.com/JuliaLang/JuliaLowering.jl/issues/151 and
https://github.com/JuliaLang/JuliaLowering.jl/issues/149 (will still
need
desugaring support)
- Detect disallowed assignments
- Some basic tests. Most invalid forms should (but don't) already have a
LoweringError test, all valid ones should (but don't) have a real test.