Doing a M-x eval-buffer on a file containing this:

(funcall
 (let ((a 0))
   (lambda ()
     a)))

;; Local Variables:
;; lexical-binding: t
;; End:

Will result in an error:

funcall: Symbol's value as variable is void: a

But a file containing this:

;; -*- lexical-binding: t -*-

(funcall
 (let ((a 0))
   (lambda ()
     a)))

Will work as expected. No problem.

I was expecting these these to be equivalent. I checked the manual, "Specifying File Variables" and that seems to say that using either the first line or variable list should have the same effect.

Seems related to #15070 and #20139.

(I'm not sure about the exact version of Emacs. It's probably old, I'm on Ubuntu 14.04 at the moment. Dpkg reports 24.3+1-2ubuntu1.)

-- Tim