[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lazy-completion-table's args are evaluated too late
From: |
Stefan Monnier |
Subject: |
lazy-completion-table's args are evaluated too late |
Date: |
Sun, 18 Dec 2005 21:12:52 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
The `args' arguments to lazy-completion-table are only evaluated when we
actually compute the completion table. So they basically can only use
global variables, which is very limiting.
It's pretty clear to me that the intention was to evaluate those args
immediately, so that they are evaluated in the local environment.
As it currently stands
(lazy-completion-table var fun arg1 arg2)
behaves just like
(lazy-completion-table var (lambda () (fun arg1 arg2)))
so it's not very useful as it stands. I don't have a patch handy.
The cleanest way to solve the problem uses lexical-let, but I'm reluctant to
use a CL macro in subr.el.
Stefan
- lazy-completion-table's args are evaluated too late,
Stefan Monnier <=