elves / elvish

Powerful scripting language & versatile interactive shell

Home Page:https://elv.sh/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`edit:complete-filename` call without arguments crashes elvish

il-k opened this issue · comments

commented

What happened, and what did you expect to happen?

Stack trace:

~> edit:complete-filename

goroutine 1 [running]:
src.elv.sh/pkg/sys.DumpStack()
        src.elv.sh/pkg/sys/dumpstack.go:10 +0x64
src.elv.sh/pkg/shell.handlePanic()
        src.elv.sh/pkg/shell/interact.go:137 +0x44
panic({0x102b30740?, 0x140000e01b0?})
        runtime/panic.go:914 +0x218
src.elv.sh/pkg/edit/complete.GenerateFileNames({0x102dcc7a0?, 0x1027ba9dc?, 0x6?})
        src.elv.sh/pkg/edit/complete/generators.go:25 +0x54
src.elv.sh/pkg/edit.initCompletion.wrapArgGenerator.func12(0x14000274838?, {0x102dcc7a0?, 0x1?, 0x1?})
        src.elv.sh/pkg/edit/completion.go:201 +0x3c
reflect.Value.call({0x102ae40a0?, 0x140001da8e0?, 0x14000274f68?}, {0x1029e1562, 0x4}, {0x1400000f458, 0x1, 0x1026ec448?})
        reflect/value.go:596 +0x994
reflect.Value.Call({0x102ae40a0?, 0x140001da8e0?, 0x14000192f0a?}, {0x1400000f458?, 0x102b4be40?, 0x102ab54e0?})
        reflect/value.go:380 +0x94
src.elv.sh/pkg/eval.(*goFn).Call(0x140001e5030, 0x14000190180, {0x0, 0x0, 0x7?}, 0x14000580cf0)
        src.elv.sh/pkg/eval/go_fn.go:247 +0xa4c
src.elv.sh/pkg/eval.(*formOp).exec(0x140002f8420, 0x14000190180)
        src.elv.sh/pkg/eval/compile_effect.go:370 +0x498
src.elv.sh/pkg/eval.(*pipelineOp).exec.func1({0x102b51260?, 0x140002f8420?}, 0x14000192fa0)
        src.elv.sh/pkg/eval/compile_effect.go:121 +0x54
src.elv.sh/pkg/eval.(*pipelineOp).exec(0x1400058cac0, 0x14000190100)
        src.elv.sh/pkg/eval/compile_effect.go:135 +0x8e4
src.elv.sh/pkg/eval.chunkOp.exec({{0x0, 0x16}, {0x14000192d00, 0x1, 0x1}}, 0x14000190100)
        src.elv.sh/pkg/eval/compile_effect.go:33 +0x7c
src.elv.sh/pkg/eval.nsOp.prepare.func1()
        src.elv.sh/pkg/eval/compiler.go:77 +0x2c
src.elv.sh/pkg/eval.(*Evaler).Eval(0x14000182200, {{0x14000320910, 0x7}, {0x1400007a0c0, 0x16}, 0x0}, {{0x102b53d10, 0x140002ac320}, {0x1400000f368, 0x3, ...}, ...})
        src.elv.sh/pkg/eval/eval.go:355 +0x3f8
src.elv.sh/pkg/shell.evalInTTY({0x14000054028, 0x14000054030, 0x14000054038}, 0x1?, {0x102b520a8, 0x140001bfb90}, {{0x14000320910, 0x7}, {0x1400007a0c0, 0x16}, ...})
        src.elv.sh/pkg/shell/shell.go:173 +0x148
src.elv.sh/pkg/shell.interact(0x14000182200, {0x14000054028, 0x14000054030, 0x14000054038}, 0x140001afc90)
        src.elv.sh/pkg/shell/interact.go:124 +0xaa8
src.elv.sh/pkg/shell.(*Program).Run(0x14000093f50, {0x14000054028, 0x14000054030, 0x14000054038}, {0x140000200d0, 0x0, 0x0})
        src.elv.sh/pkg/shell/shell.go:88 +0x1e4
src.elv.sh/pkg/prog.composite.Run({0x1400007d640?, 0x4, 0x10280787c?}, {0x14000054028, 0x14000054030, 0x14000054038}, {0x140000200d0, 0x0, 0x0})
        src.elv.sh/pkg/prog/prog.go:117 +0xfc
src.elv.sh/pkg/prog.Run({0x14000054028, 0x14000054030, 0x14000054038}, {0x140000200d0, 0x1, 0x1}, {0x102b51ea0, 0x1400000e438})
        src.elv.sh/pkg/prog/prog.go:84 +0x41c
main.main()
        src.elv.sh/cmd/elvish/main.go:18 +0x18c

goroutine 6 [chan receive]:
src.elv.sh/pkg/eval.getBlackholeChan.func1()
        src.elv.sh/pkg/eval/port.go:96 +0x38
created by src.elv.sh/pkg/eval.getBlackholeChan in goroutine 1
        src.elv.sh/pkg/eval/port.go:95 +0x6c

goroutine 7 [syscall]:
os/signal.signal_recv()
        runtime/sigqueue.go:149 +0x2c
os/signal.loop()
        os/signal/signal_unix.go:23 +0x1c
created by os/signal.Notify.func1.1 in goroutine 1
        os/signal/signal.go:151 +0x28

goroutine 9 [chan receive]:
src.elv.sh/pkg/shell.initSignal.func1()
        src.elv.sh/pkg/shell/shell.go:154 +0x78
created by src.elv.sh/pkg/shell.initSignal in goroutine 1
        src.elv.sh/pkg/shell/shell.go:153 +0x8c

goroutine 10 [IO wait]:
internal/poll.runtime_pollWait(0x129c1d2c8, 0x72)
        runtime/netpoll.go:343 +0xa0
internal/poll.(*pollDesc).wait(0x140000d6d00?, 0x140001d7000?, 0x0)
        internal/poll/fd_poll_runtime.go:84 +0x28
internal/poll.(*pollDesc).waitRead(...)
        internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0x140000d6d00, {0x140001d7000, 0x1000, 0x1000})
        internal/poll/fd_unix.go:164 +0x200
net.(*netFD).Read(0x140000d6d00, {0x140001d7000?, 0x140000b1c58?, 0x102878f4c?})
        net/fd_posix.go:55 +0x28
net.(*conn).Read(0x14000054520, {0x140001d7000?, 0x0?, 0x0?})
        net/net.go:179 +0x34
bufio.(*Reader).Read(0x1400007e540, {0x14000011cb0, 0x1, 0x1026e5100?})
        bufio/bufio.go:244 +0x1b4
io.ReadAtLeast({0x102b50360, 0x1400007e540}, {0x14000011cb0, 0x1, 0x9}, 0x1)
        io/io.go:335 +0xa0
io.ReadFull(...)
        io/io.go:354
encoding/gob.decodeUintReader({0x102b50360, 0x1400007e540}, {0x14000011cb0, 0x9, 0x9})
        encoding/gob/decode.go:116 +0x4c
encoding/gob.(*Decoder).recvMessage(0x140000d6f00)
        encoding/gob/decoder.go:82 +0x38
encoding/gob.(*Decoder).decodeTypeSequence(0x140000d6f00, 0x0)
        encoding/gob/decoder.go:148 +0x50
encoding/gob.(*Decoder).DecodeValue(0x140000d6f00, {0x102aa7d00?, 0x1400019a000?, 0x10288d39c?})
        encoding/gob/decoder.go:227 +0x178
encoding/gob.(*Decoder).Decode(0x140000d6f00, {0x102aa7d00?, 0x1400019a000?})
        encoding/gob/decoder.go:204 +0x128
src.elv.sh/pkg/rpc.(*gobClientCodec).ReadResponseHeader(0x102adf380?, 0x102aa7300?)
        src.elv.sh/pkg/rpc/client.go:227 +0x2c
src.elv.sh/pkg/rpc.(*Client).input(0x1400007e600)
        src.elv.sh/pkg/rpc/client.go:108 +0x98
created by src.elv.sh/pkg/rpc.NewClientWithCodec in goroutine 1
        src.elv.sh/pkg/rpc/client.go:205 +0xb8

goroutine 11 [chan receive]:
src.elv.sh/pkg/cli/prompt.(*Prompt).loop(0x140001bff80)
        src.elv.sh/pkg/cli/prompt/prompt.go:77 +0x98
created by src.elv.sh/pkg/cli/prompt.New in goroutine 1
        src.elv.sh/pkg/cli/prompt/prompt.go:70 +0x1a0

goroutine 12 [chan receive]:
src.elv.sh/pkg/cli/prompt.(*Prompt).loop(0x140001e4070)
        src.elv.sh/pkg/cli/prompt/prompt.go:77 +0x98
created by src.elv.sh/pkg/cli/prompt.New in goroutine 1
        src.elv.sh/pkg/cli/prompt/prompt.go:70 +0x1a0

goroutine 229 [select]:
src.elv.sh/pkg/eval.ListenInterrupts.func1()
        src.elv.sh/pkg/eval/interrupts.go:24 +0x68
created by src.elv.sh/pkg/eval.ListenInterrupts in goroutine 1
        src.elv.sh/pkg/eval/interrupts.go:23 +0x108

runtime error: index out of range [-1]

Execing recovery shell /bin/sh

Output of "elvish -version"

0.20.1

Code of Conduct

Thanks for reporting!