Pkg.jl
Pkg.jl copied to clipboard
`]compat` REPL menu throws when pressing backspace one too many times
Conjectured problem: When editing compat entries, the UI lets me press backspace one to many times, deleting the entire string and one additional character. This causes a bounds error when I type a new character.
Keystrokes:
]compat[enter][enter][backspace][backspace][space]
Result:
Chairmarks) pkg> compat
Compat `~/.julia/dev/Chairmarks/Project.toml`
Select an entry to edit:
> julia 1
[de0858da] Printf <0.0.1, 1
[9e88b42a] Serialization 1.11.0
Edit compat entry for julia:ERROR: BoundsError: attempt to access empty String at index [0:0]
Stacktrace:
[1] checkbounds
@ ./strings/basic.jl:216 [inlined]
[2] getindex(s::String, r::UnitRange{Int64})
@ Base ./strings/string.jl:468
[3] compat(ctx::Pkg.Types.Context; io::Nothing)
@ Pkg.API ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:2065
[4] compat
@ ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:1986 [inlined]
[5] compat()
@ Pkg.API ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:2109
[6] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
@ Pkg.REPLMode ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:409
[7] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
@ Pkg.REPLMode ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:390
[8] do_cmd
@ ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:380 [inlined]
[9] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ Pkg.REPLMode ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:557
[10] #invokelatest#2
@ ./essentials.jl:892 [inlined]
[11] invokelatest
@ ./essentials.jl:889 [inlined]
[12] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2656
[13] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1312
[14] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
@ REPL ~/.julia/juliaup/julia-1.10.2+0.aarch64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:386
Present in 1.10.2 and 1.11.0-alpha0