2026-03-19
·
233 commits
to release
since this release
- Commit:
ea73622 - Diff:
4280097...ea73622 - Installation:
julia -e 'using Pkg; Pkg.Apps.add(; url="https://github.com/aviatesk/JETLS.jl", rev="2026-03-19")'
Added
-
Added
@mainfunction support across LSP features (document-symbol, document-highlight, references, rename, completions, diagnostic). -
Added
lowering/unused-assignmentdiagnostic that detects assignments whose values are never read (dead stores).
This complements the existinglowering/unused-localdiagnostic:lowering/unused-localreports variables that are never used at all, whilelowering/unused-assignmentreports specific assignments to variables that are used elsewhere.
For example:function f(x::Bool) if x z = "Hi" println(z) # z is used, so no `unused-local` end if x z = "Hey" # but this value is never read → `unused-assignment` end end
Changed
lowering/undef-local-varnow reports a diagnostic for each use site on an undef path individually, rather than only reporting the first one.lowering/undef-local-var@isdefinedpropagation now recognizes@isdefined(var)within&&chains (e.g.,if cond && @isdefined(y)), suppressing false positive diagnostics in the guarded branch.- Updated JuliaSyntax.jl and JuliaLowering.jl dependency versions to latest
Fixed
- Fixed false positive
lowering/unused-bindingwarning for keyword arguments that are only used in computing other keyword arguments' default values (Closed #592). - Fixed false positive
lowering/unused-importwarning for imports used inside quoted expressions in macro bodies or helper functions (Closed #594). - Fixed
lowering/undef-local-vardiagnostic being reported at the wrong location:
when a variable had both defined and potentially-undefined uses, the diagnostic pointed to the first use in source order rather than the use that is actually on the undef path. - Fixed signature-help error when displaying signatures for operator-like methods (e.g.
Base.:(==)). - Fixed "Delete assignment" code action removing the opening delimiter of string literals (e.g.,
z = "Hey"becameHey"instead of"Hey").