Skip to content

Buffer freezes on (def ^{:macro}) #612

Closed
@borkdude

Description

@borkdude

Expected behavior

When I have (def ^{:macro}) in my buffer (as the only code), I should see no freezing of emacs.

Actual behavior

Emacs with clojure-mode freezes.

Steps to reproduce the problem

Put (def ^{:macro}) as the sole code in a clojure buffer. Try to move the cursor a bit back and forth.

When Emacs freezes, send:

pkill -USR2 Emacs

and then see something like:

Debugger entered--entering a function:
* #f(compiled-function () #<bytecode 0x1fe4d41470e9>)()
  imenu--generic-function(((nil clojure-match-next-def 0)))
  imenu-default-create-index-function()
  imenu--make-index-alist(t)
  which-function()
  which-func-update-1(#<window 3 on foo.clj>)
  which-func-update()
  apply(which-func-update nil)
  timer-event-handler([t 0 0 500000 t which-func-update nil idle 0])
  recursive-edit()
  debug(lambda)
* thing-at-point--end-of-sexp()
  bounds-of-thing-at-point(sexp)
  clojure-match-next-def()
  imenu--generic-function(((nil clojure-match-next-def 0)))
  imenu-default-create-index-function()
  imenu--make-index-alist(t)
  which-function()
  which-func-update-1(#<window 3 on foo.clj>)
  which-func-update()
  apply(which-func-update nil)
  timer-event-handler([t 0 0 500000 t which-func-update nil idle 0])

@vemv hinted that this looked suspicious:

(while (not found?)

Environment & Version information

clojure-mode version

clojure-mode (version 5.13.10)

Emacs version

27.2

Operating system

macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions