Subject: bug#20141: 24.4.91; Helm is broken after last changes in eieio

From: Tassilo Horn <[email-masked]>
Date: Thu, 19 Mar 2015 07:55:21 +0100

Hi all,

Helm is not the only package that's broken by the latest eieio changes.
Another one is yasnippet.  Here I get this error:

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  yas--populate-template([cl-struct-yas--template nil nil nil nil nil nil nil nil nil nil nil nil] :table [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)] :key "new" :content "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" :name "newtype" :group nil :condition (= (length "new") (current-column)) :expand-env nil :file "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" :keybinding nil :uuid "newtype")
  yas--define-snippets-1(("new" "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" "newtype" (= (length "new") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" nil nil) [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)])
  yas-define-snippets(haskell-mode (("new" "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" "newtype" (= (length "new") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" nil nil) ("mod" "module ${1:`(if (not buffer-file-name) \"Module\"\n                (let ((name (file-name-sans-extension (buffer-file-name))))\n                     (if (search \"src/\" name)\n                         (replace-regexp-in-string \"/\" \".\" (car (last (split-string name \"src/\"))))\n                         (file-name-nondirectory name))))`}\n    ( ${3:export}\n    ${4:, ${5:export}}\n    ) where\n\n$0" "exports module" (= (length "mod") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/module.exports" nil nil) ("mod" "module ${1:`(if (not buffer-file-name) \"Module\"\n                (let ((name (file-name-sans-extension (buffer-file-name))))\n                     (if (search \"src/\" name)\n                         (replace-regexp-in-string \"/\" \".\" (car (last (split-string name \"src/\"))))\n                         (file-name-nondirectory name))))`} where\n\n$0" "simple module" (= (length "mod") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/module" nil nil) ("main" "module Main where\n\nmain :: IO ()\nmain = do\n  ${1:undefined}$0\n  return ()" "main module" (= (length "main") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/main" nil nil) ("let" "let ${1:x} = ${2:undefined}$0" "let" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/let" nil nil) ("lang" "{-# LANGUAGE `(progn (require 'haskell-yas) (haskell-yas-complete \"Extension: \" haskell-yas-ghc-language-pragmas))` #-}" "language pragma" (= (length "lang") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/lang-pragma" nil nil) ("\\" "\\\\${1:x} -> ${2:undefined}$0" "lambda" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/lambda" nil nil) ("inst" "instance ${1:Class} ${2:Data} where\n    ${3:f} = ${4:undefined}$0" "instance" (= (length "inst") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/instance" nil nil) ("imp" "import qualified ${1:Module} as ${2:${1:$(let ((name (car (last (split-string yas-text \"\\\\\\.\")))))\n                                              (if (= 0 (length name)) \"\"\n                                                  (subseq name 0 1)))}}$0" "qualified import" (= (length "imp") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/import.qualified" nil nil) ("imp" "import           ${1:Module} ${2:(${3:f})}" "simple import" (= (length "imp") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/import" nil nil) ("if" "if ${1:condition} then ${2:undefined} else ${3:undefined}$0" "inline if" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/if.inline" nil nil) ("if" "if ${1:condition}\n    then ${2:undefined}\n    else ${3:undefined}$0" "block if" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/if.block" nil nil) ("<-" "${1:x} <- ${2:undefined}$0" "monadic get" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/get" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:x}\n    | ${6:conditional} = ${8:undefined}\n    | ${7:conditional} = ${9:undefined}$0" "guarded function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn.guarded" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:pattern} = ${7:undefined}\n$1 ${6:pattern} = ${8:undefined}$0" "clause function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn.clause" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:x} = ${6:undefined}$0" "simple function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn" nil nil) ("data" "data ${1:Type} = $1\n    { ${2:field} :: ${3:Type}\n    , ${4:field} :: ${5:Type}$0\n    } ${6:deriving (${7:Show, Eq})}" "record data" (= (length "data") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/data.record" nil nil) ("data" "data ${1:Type} = ${2:Data}$0 ${3:deriving (${4:Show, Eq})}" "inline data" (= (length "data") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/data.inline" nil nil) ("=>" "(${1:Class} ${2:m}) => $0" "Type constraint" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/constraint" nil nil) ("{-" "{- $0 -}" "block comment" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/comment.block" nil nil) ("case" "case ${1:x} of\n    ${2:Data} -> ${4:undefined}\n    ${3:Data} -> ${5:undefined}$0" "case" nil nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/case" nil nil)))
  yas--load-directory-2("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode" haskell-mode)
  yas--load-directory-1("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode" haskell-mode)
  (lambda nil (yas--load-directory-1 (quote "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode") (quote haskell-mode)))()
  yas-load-directory("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets")
  haskell-snippets-initialize()
  (lambda nil (haskell-snippets-initialize))()
  eval-after-load(yasnippet (lambda nil (haskell-snippets-initialize)))
  eval-buffer(#<buffer  *load*-512321> nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" nil t)  ; Reading at buffer position 2269
  load-with-code-conversion("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" nil t)
  (haskell-snippets-initialize)
  (lambda nil (haskell-snippets-initialize))()
  #:eval-after-load-helper("/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  run-hook-with-args(#:eval-after-load-helper "/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  do-after-load-evaluation("/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  require(yasnippet)
  eval-buffer(#<buffer  *load*> nil "/home/horn/.emacs" nil t)  ; Reading at buffer position 33559
  load-with-code-conversion("/home/horn/.emacs" "/home/horn/.emacs" t t)
  load("~/.emacs" t t)
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo