1. 07 Aug, 2017 1 commit
    • Noam Postavsky's avatar
      ; Avoid test failures when running from compiled test files · 95a04fd2
      Noam Postavsky authored
      * test/lisp/dom-tests.el: Require `subr-x' during runtime as well.
      * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record):
      * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
      (eieio-test-23-inheritance-check, eieio-test-25-slot-tests): Mark as
      expected to fail when byte-compiled.
      95a04fd2
  2. 18 Jul, 2017 1 commit
    • Glenn Morris's avatar
      Use a more specific test for running on hydra.nixos.org · 5ab91020
      Glenn Morris authored
      * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
      * test/Makefile.in (WRITE_LOG):
      * test/lisp/filenotify-tests.el:
      * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
      (eieio-test-method-order-list-6):
      * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
      (eieio-test-37-obsolete-name-in-constructor):
      * test/lisp/net/tramp-tests.el: Replace NIX_STORE with EMACS_HYDRA_CI.
      5ab91020
  3. 24 May, 2017 1 commit
  4. 17 Dec, 2015 1 commit
    • Phillip Lord's avatar
      eieio generate autoloads to non-versioned file. · ee856611
      Phillip Lord authored
      * lisp/Makefile.in: eieio-loaddefs add to autogenel.
      * lisp/emacs-lisp/eieio.el,lisp/emacs-lisp/eieio-core.el:
        Remove autoloads.
      * lisp/emacs-lisp/eieio-compat.el,lisp/emacs-lisp/eieio-custom.el,
        lisp/emacs-lisp/eieio-opt.el: Update file local.
      * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: New test.
      ee856611
  5. 24 Nov, 2015 1 commit
    • Phillip Lord's avatar
      Rename all test files to reflect source layout. · 22bbf7ca
      Phillip Lord authored
       * CONTRIBUTE,Makefile.in,configure.ac: Update to reflect
         test directory moves.
       * test/file-organisation.org: New file.
       * test/automated/Makefile.in
         test/automated/data/decompress/foo.gz
         test/automated/data/epg/pubkey.asc
         test/automated/data/epg/seckey.asc
         test/automated/data/files-bug18141.el.gz
         test/automated/data/flymake/test.c
         test/automated/data/flymake/test.pl
         test/automated/data/package/archive-contents
         test/automated/data/package/key.pub
         test/automated/data/package/key.sec
         test/automated/data/package/multi-file-0.2.3.tar
         test/automated/data/package/multi-file-readme.txt
         test/automated/data/package/newer-versions/archive-contents
         test/automated/data/package/newer-versions/new-pkg-1.0.el
         test/automated/data/package/newer-versions/simple-single-1.4.el
         test/automated/data/package/package-test-server.py
         test/automated/data/package/signed/archive-contents
         test/automated/data/package/signed/archive-contents.sig
         test/automated/data/package/signed/signed-bad-1.0.el
         test/automated/data/package/signed/signed-bad-1.0.el.sig
         test/automated/data/package/signed/signed-good-1.0.el
         test/automated/data/package/signed/signed-good-1.0.el.sig
         test/automated/data/package/simple-depend-1.0.el
         test/automated/data/package/simple-single-1.3.el
         test/automated/data/package/simple-single-readme.txt
         test/automated/data/package/simple-two-depend-1.1.el
         test/automated/abbrev-tests.el
         test/automated/auto-revert-tests.el
         test/automated/calc-tests.el
         test/automated/icalendar-tests.el
         test/automated/character-fold-tests.el
         test/automated/comint-testsuite.el
         test/automated/descr-text-test.el
         test/automated/electric-tests.el
         test/automated/cl-generic-tests.el
         test/automated/cl-lib-tests.el
         test/automated/eieio-test-methodinvoke.el
         test/automated/eieio-test-persist.el
         test/automated/eieio-tests.el
         test/automated/ert-tests.el
         test/automated/ert-x-tests.el
         test/automated/generator-tests.el
         test/automated/let-alist.el
         test/automated/map-tests.el
         test/automated/advice-tests.el
         test/automated/package-test.el
         test/automated/pcase-tests.el
         test/automated/regexp-tests.el
         test/automated/seq-tests.el
         test/automated/subr-x-tests.el
         test/automated/tabulated-list-test.el
         test/automated/thunk-tests.el
         test/automated/timer-tests.el
         test/automated/epg-tests.el
         test/automated/eshell.el
         test/automated/faces-tests.el
         test/automated/file-notify-tests.el
         test/automated/auth-source-tests.el
         test/automated/gnus-tests.el
         test/automated/message-mode-tests.el
         test/automated/help-fns.el
         test/automated/imenu-test.el
         test/automated/info-xref.el
         test/automated/mule-util.el
         test/automated/isearch-tests.el
         test/automated/json-tests.el
         test/automated/bytecomp-tests.el
         test/automated/coding-tests.el
         test/automated/core-elisp-tests.el
         test/automated/decoder-tests.el
         test/automated/files.el
         test/automated/font-parse-tests.el
         test/automated/lexbind-tests.el
         test/automated/occur-tests.el
         test/automated/process-tests.el
         test/automated/syntax-tests.el
         test/automated/textprop-tests.el
         test/automated/undo-tests.el
         test/automated/man-tests.el
         test/automated/completion-tests.el
         test/automated/dbus-tests.el
         test/automated/newsticker-tests.el
         test/automated/sasl-scram-rfc-tests.el
         test/automated/tramp-tests.el
         test/automated/obarray-tests.el
         test/automated/compile-tests.el
         test/automated/elisp-mode-tests.el
         test/automated/f90.el
         test/automated/flymake-tests.el
         test/automated/python-tests.el
         test/automated/ruby-mode-tests.el
         test/automated/subword-tests.el
         test/automated/replace-tests.el
         test/automated/simple-test.el
         test/automated/sort-tests.el
         test/automated/subr-tests.el
         test/automated/reftex-tests.el
         test/automated/sgml-mode-tests.el
         test/automated/tildify-tests.el
         test/automated/thingatpt.el
         test/automated/url-future-tests.el
         test/automated/url-util-tests.el
         test/automated/add-log-tests.el
         test/automated/vc-bzr.el
         test/automated/vc-tests.el
         test/automated/xml-parse-tests.el
         test/BidiCharacterTest.txt
         test/biditest.el
         test/cedet/cedet-utests.el
         test/cedet/ede-tests.el
         test/cedet/semantic-ia-utest.el
         test/cedet/semantic-tests.el
         test/cedet/semantic-utest-c.el
         test/cedet/semantic-utest.el
         test/cedet/srecode-tests.el
         test/cedet/tests/test.c
         test/cedet/tests/test.el
         test/cedet/tests/test.make
         test/cedet/tests/testdoublens.cpp
         test/cedet/tests/testdoublens.hpp
         test/cedet/tests/testfriends.cpp
         test/cedet/tests/testjavacomp.java
         test/cedet/tests/testnsp.cpp
         test/cedet/tests/testpolymorph.cpp
         test/cedet/tests/testspp.c
         test/cedet/tests/testsppcomplete.c
         test/cedet/tests/testsppreplace.c
         test/cedet/tests/testsppreplaced.c
         test/cedet/tests/testsubclass.cpp
         test/cedet/tests/testsubclass.hh
         test/cedet/tests/testtypedefs.cpp
         test/cedet/tests/testvarnames.c
         test/etags/CTAGS.good
         test/etags/ETAGS.good_1
         test/etags/ETAGS.good_2
         test/etags/ETAGS.good_3
         test/etags/ETAGS.good_4
         test/etags/ETAGS.good_5
         test/etags/ETAGS.good_6
         test/etags/a-src/empty.zz
         test/etags/a-src/empty.zz.gz
         test/etags/ada-src/2ataspri.adb
         test/etags/ada-src/2ataspri.ads
         test/etags/ada-src/etags-test-for.ada
         test/etags/ada-src/waroquiers.ada
         test/etags/c-src/a/b/b.c
         test/etags/c-src/abbrev.c
         test/etags/c-src/c.c
         test/etags/c-src/dostorture.c
         test/etags/c-src/emacs/src/gmalloc.c
         test/etags/c-src/emacs/src/keyboard.c
         test/etags/c-src/emacs/src/lisp.h
         test/etags/c-src/emacs/src/regex.h
         test/etags/c-src/etags.c
         test/etags/c-src/exit.c
         test/etags/c-src/exit.strange_suffix
         test/etags/c-src/fail.c
         test/etags/c-src/getopt.h
         test/etags/c-src/h.h
         test/etags/c-src/machsyscalls.c
         test/etags/c-src/machsyscalls.h
         test/etags/c-src/sysdep.h
         test/etags/c-src/tab.c
         test/etags/c-src/torture.c
         test/etags/cp-src/MDiagArray2.h
         test/etags/cp-src/Range.h
         test/etags/cp-src/burton.cpp
         test/etags/cp-src/c.C
         test/etags/cp-src/clheir.cpp.gz
         test/etags/cp-src/clheir.hpp
         test/etags/cp-src/conway.cpp
         test/etags/cp-src/conway.hpp
         test/etags/cp-src/fail.C
         test/etags/cp-src/functions.cpp
         test/etags/cp-src/screen.cpp
         test/etags/cp-src/screen.hpp
         test/etags/cp-src/x.cc
         test/etags/el-src/TAGTEST.EL
         test/etags/el-src/emacs/lisp/progmodes/etags.el
         test/etags/erl-src/gs_dialog.erl
         test/etags/f-src/entry.for
         test/etags/f-src/entry.strange.gz
         test/etags/f-src/entry.strange_suffix
         test/etags/forth-src/test-forth.fth
         test/etags/html-src/algrthms.html
         test/etags/html-src/index.shtml
         test/etags/html-src/software.html
         test/etags/html-src/softwarelibero.html
         test/etags/lua-src/allegro.lua
         test/etags/objc-src/PackInsp.h
         test/etags/objc-src/PackInsp.m
         test/etags/objc-src/Subprocess.h
         test/etags/objc-src/Subprocess.m
         test/etags/objcpp-src/SimpleCalc.H
         test/etags/objcpp-src/SimpleCalc.M
         test/etags/pas-src/common.pas
         test/etags/perl-src/htlmify-cystic
         test/etags/perl-src/kai-test.pl
         test/etags/perl-src/yagrip.pl
         test/etags/php-src/lce_functions.php
         test/etags/php-src/ptest.php
         test/etags/php-src/sendmail.php
         test/etags/prol-src/natded.prolog
         test/etags/prol-src/ordsets.prolog
         test/etags/ps-src/rfc1245.ps
         test/etags/pyt-src/server.py
         test/etags/tex-src/gzip.texi
         test/etags/tex-src/nonewline.tex
         test/etags/tex-src/testenv.tex
         test/etags/tex-src/texinfo.tex
         test/etags/y-src/atest.y
         test/etags/y-src/cccp.c
         test/etags/y-src/cccp.y
         test/etags/y-src/parse.c
         test/etags/y-src/parse.y
         test/indent/css-mode.css
         test/indent/js-indent-init-dynamic.js
         test/indent/js-indent-init-t.js
         test/indent/js-jsx.js
         test/indent/js.js
         test/indent/latex-mode.tex
         test/indent/modula2.mod
         test/indent/nxml.xml
         test/indent/octave.m
         test/indent/pascal.pas
         test/indent/perl.perl
         test/indent/prolog.prolog
         test/indent/ps-mode.ps
         test/indent/ruby.rb
         test/indent/scheme.scm
         test/indent/scss-mode.scss
         test/indent/sgml-mode-attribute.html
         test/indent/shell.rc
         test/indent/shell.sh
         test/redisplay-testsuite.el
         test/rmailmm.el
         test/automated/buffer-tests.el
         test/automated/cmds-tests.el
         test/automated/data-tests.el
         test/automated/finalizer-tests.el
         test/automated/fns-tests.el
         test/automated/inotify-test.el
         test/automated/keymap-tests.el
         test/automated/print-tests.el
         test/automated/libxml-tests.el
         test/automated/zlib-tests.el: Files Moved.
      22bbf7ca
  6. 04 Nov, 2015 1 commit
  7. 04 Jul, 2015 1 commit
    • Glenn Morris's avatar
      Update eieio tests for recent eieio-core change. · fc4151f2
      Glenn Morris authored
      * test/automated/eieio-test-persist.el (persist-test-save-and-compare):
      * test/automated/eieio-tests.el
      (eieio-test-32-slot-attribute-override-2):
      Replace the deleted eieio--class-v with cl--find-class.
      fc4151f2
  8. 19 Mar, 2015 1 commit
    • Stefan Monnier's avatar
      EIEIO: Change class's representation to unify instance & class slots · 50c117fe
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio--class): Change field names and order
      to match those of cl--class; use cl--slot for both instance slots and
      class slots.
      (eieio--object-num-slots): Use cl-struct-slot-info.
      (eieio--object-class): Rename from eieio--object-class-object.
      (eieio--object-class-name): Remove.
      (eieio-defclass-internal): Adjust to new slot representation.
      Store doc in class rather than in `variable-documentation'.
      (eieio--perform-slot-validation-for-default): Change API to take
      a slot object.
      (eieio--slot-override): New function.
      (eieio--add-new-slot): Rewrite.
      (eieio-copy-parents-into-subclass): Rewrite.
      (eieio--validate-slot-value, eieio--validate-class-slot-value)
      (eieio-oref-default, eieio-oset-default)
      (eieio--class-slot-name-index, eieio-set-defaults): Adjust to new
      slot representation.
      (eieio--c3-merge-lists): Simplify.
      (eieio--class/struct-parents): New function.
      (eieio--class-precedence-bfs): Use it.
      
      * lisp/emacs-lisp/eieio.el (with-slots): Use macroexp-let2.
      (object-class-fast): Change recommend replacement.
      (eieio-object-class): Rewrite.
      (slot-exists-p): Adjust to new slot representation.
      (initialize-instance): Adjust to new slot representation.
      (object-write): Adjust to new slot representation.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
      Manually map initargs to slot names.
      (eieio-persistent-validate/fix-slot-value): Adjust to new
      slot representation.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-specializers):
      Extract from eieio--generic-static-symbol-generalizer.
      (eieio--generic-static-symbol-generalizer): Use it.
      
      * lisp/emacs-lisp/eieio-custom.el (eieio-object-value-create)
      (eieio-object-value-get): Adjust to new slot representation.
      
      * lisp/emacs-lisp/eieio-datadebug.el (data-debug/eieio-insert-slots):
      Declare to silence warnings.
      (data-debug-insert-object-button): Avoid `object-slots'.
      (data-debug/eieio-insert-slots): Adjust to new slot representation.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio--help-print-slot): New function
      extracted from eieio-help-class-slots.
      (eieio-help-class-slots): Use it.  Adjust to new slot representation.
      
      * test/automated/eieio-test-methodinvoke.el (make-instance): Use new-style
      `subclass' specializer for a change.
      
      * test/automated/eieio-test-persist.el (persist-test-save-and-compare):
      Adjust to new slot representation.
      
      * test/automated/eieio-tests.el (eieio-test-17-virtual-slot): Don't use
      initarg in `oset'.
      (eieio-test-32-slot-attribute-override-2): Adjust to new
      slot representation.
      
      * lisp/emacs-lisp/cl-preloaded.el (cl--class): Fix type of `parents'.
      50c117fe
  9. 31 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      EIEIO: Simplify help hyperlinks; Try and reduce hardcoding in .elc · e0be229d
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-generic.el (cl--generic-search-method): Fix regexp.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--check-type): Remove.
      Use cl-check-type everywhere instead.
      (eieio-class-object): Remove, use find-class instead when needed.
      (class-p): Don't inline.
      (eieio-object-p): Check more thoroughly, so we don't treat cl-structs,
      such as eieio classes, as objects.  Don't inline.
      (object-p): Mark as obsolete.
      (eieio-defclass-autoload, eieio-defclass-internal, eieio-oref)
      (eieio--generic-tagcode): Avoid `class-p'.
      (eieio-make-class-predicate, eieio-make-child-predicate): New functions.
      (eieio-defclass-internal): Use current-load-list rather than
      `class-location'.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class, eieio-help-constructor):
      Use find-lisp-object-file-name, help-fns-short-filename and new calling
      convention for eieio-class-def.
      (eieio-build-class-list): Remove function, unused.
      (eieio-method-def): Remove button type, unused.
      (eieio-class-def): Inherit from help-function-def.
      (eieio--defclass-regexp): New constant.
      (find-function-regexp-alist): Use it.
      (eieio--specializers-apply-to-class-p): Handle eieio--static as well.
      (eieio-help-find-method-definition, eieio-help-find-class-definition):
      Remove functions.
      
      * lisp/emacs-lisp/eieio.el (defclass): Use new eieio-make-class-predicate
      and eieio-make-child-predicate.
      (eieio-class-parents): Use eieio--class-object.
      (slot-boundp, find-class, eieio-override-prin1): Avoid class-p.
      (slot-exists-p): Use find-class.
      
      * test/automated/eieio-tests.el (eieio-test-23-inheritance-check): Simplify.
      e0be229d
  10. 22 Jan, 2015 1 commit
  11. 17 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio.el: Improve `constructor' compatibility. · 4610ce96
      Stefan Monnier authored
      Fixes: debbugs:19620
      
      (eieio-constructor): Handle obsolete object name argument here...
      (defclass): ...instead of in the constructor here.
      
      * test/automated/eieio-tests.el
      (eieio-test-37-obsolete-name-in-constructor): New test.
      4610ce96
    • Stefan Monnier's avatar
      Don't enforce :protection in EIEIO objects any more · d48c98cd
      Stefan Monnier authored
      * doc/misc/eieio.texi (Slot Options): Document :protection as unsupported.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--scoped-class-stack): Remove var.
      (eieio--scoped-class): Remove function.
      (eieio--with-scoped-class): Remove macro.  Replace uses with `progn'.
      (eieio--slot-name-index): Don't check the :protection anymore.
      (eieio-initializing-object): Remove var.
      (eieio-set-defaults): Don't let-bind eieio-initializing-object.
      
      * lisp/emacs-lisp/eieio-generic.el (call-next-method): Don't bother checking
      eieio--scoped-class any more.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
      Use an explicit arg instead of eieio--scoped-class.  Update all callers.
      
      * test/automated/eieio-tests.el (eieio-test-25-slot-tests)
      (eieio-test-26-default-inheritance, eieio-test-28-slot-protection)
      (eieio-test-30-slot-attribute-override)
      (eieio-test-31-slot-attribute-override-class-allocation): Don't check
      that we enforce :protection since we don't any more.
      d48c98cd
  12. 08 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      * emacs-lisp/eieio-generic.el: New file. · 54181569
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el: Move all generic function code to
      eieio-generic.el.
      (eieio--defmethod): Declare.
      * lisp/emacs-lisp/eieio.el: Require eieio-generic.  Move all generic
      function code to eieio-generic.el.
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-generic): Move to
      eieio-generic.el.
      * lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke): Update call
      to eieio--generic-call.
      * lisp/emacs-lisp/eieio-base.el (eieio-instance-inheritor): Don't use
      <class>-child type.
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
      Update reference to eieio--generic-call-key.
      * test/automated/eieio-tests.el (eieio-test-23-inheritance-check): Don't use
      <foo>-child-p.
      54181569
    • Stefan Monnier's avatar
      lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var. · 1599688e
      Stefan Monnier authored
      * lisp/cedet/ede/speedbar.el (ede-speedbar-compile-line)
      (ede-speedbar-get-top-project-for-line):
      * lisp/cedet/ede.el (ede-buffer-belongs-to-target-p)
      (ede-buffer-belongs-to-project-p, ede-build-forms-menu)
      (ede-add-project-to-global-list):
      * lisp/cedet/semantic/db-typecache.el (semanticdb-get-typecache):
      * lisp/cedet/semantic/db-file.el (semanticdb-load-database):
      * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
      * lisp/cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-load-helper):
      * lisp/cedet/ede/project-am.el (project-am-preferred-target-type):
      * lisp/cedet/ede/proj.el (ede-proj-load):
      * lisp/cedet/ede/custom.el (ede-customize-current-target, ede-customize-target):
      * lisp/cedet/semantic/ede-grammar.el ("semantic grammar"):
      * lisp/cedet/semantic/scope.el (semantic-scope-reset-cache)
      (semantic-calculate-scope):
      * lisp/cedet/srecode/map.el (srecode-map-update-map):
      * lisp/cedet/srecode/insert.el (srecode-insert-show-error-report)
      (srecode-insert-method, srecode-insert-include-lookup)
      (srecode-insert-method):
      * lisp/cedet/srecode/fields.el (srecode-active-template-region):
      * lisp/cedet/srecode/compile.el (srecode-flush-active-templates)
      (srecode-compile-inserter): Don't use <class> as a variable.
      Use `oref-default' for class slots.
      
      * lisp/cedet/semantic/grammar.el (semantic-grammar-eldoc-last-data): New var.
      (semantic-grammar-eldoc-get-macro-docstring): Use it instead of
      eldoc-last-data.
      * lisp/cedet/semantic/fw.el (semantic-exit-on-input): Use `declare'.
      (semantic-throw-on-input): Use `with-current-buffer'.
      * lisp/cedet/semantic/db.el (semanticdb-abstract-table-list): Define if not
      pre-defined.
      * lisp/cedet/semantic/db-find.el (semanticdb-find-tags-collector):
      Use save-current-buffer.
      (semanticdb-find-tags-collector): Don't use <class> as a variable.
      * lisp/cedet/semantic/complete.el (semantic-complete-active-default)
      (semantic-complete-current-matched-tag): Declare.
      (semantic-complete-inline-custom-type): Don't use <class> as a variable.
      * lisp/cedet/semantic/bovine/make.el (semantic-analyze-possible-completions):
      Use with-current-buffer.
      * lisp/cedet/semantic.el (semantic-parser-warnings): Declare.
      * lisp/cedet/ede/base.el (ede-target-list): Define if not pre-defined.
      (ede-with-projectfile): Prefer find-file-noselect over
      save-window-excursion.
      
      * lisp/emacs-lisp/chart.el (chart-add-sequence, chart-bar-quickie):
      Don't use <class> as a variable.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
      Improve error messages.
      (eieio-persistent-slot-type-is-class-p): Handle `list-of' types, as
      well as user-defined types.  Emit errors for legacy types like
      <class>-child and <class>-list, if not eieio-backward-compatibility.
      
      * lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var.
      (eieio-defclass-autoload): Obey it.
      (eieio--class-object): Improve error behavior.
      (eieio-class-children-fast, same-class-fast-p): Remove.  Inline at
      every use site.
      (eieio--defgeneric-form-primary-only): Rename from
      eieio-defgeneric-form-primary-only; update all callers.
      (eieio--defgeneric-form-primary-only-one): Rename from
      eieio-defgeneric-form-primary-only-one; update all callers.
      (eieio-defgeneric-reset-generic-form)
      (eieio-defgeneric-reset-generic-form-primary-only)
      (eieio-defgeneric-reset-generic-form-primary-only-one): Remove.
      (eieio--method-optimize-primary): New function to replace them.
      (eieio--defmethod, eieio-defmethod): Use it.
      (eieio--perform-slot-validation): Rename from
      eieio-perform-slot-validation; update all callers.
      (eieio--validate-slot-value): Rename from eieio-validate-slot-value.
      Change `class' to be a class object.  Update all callers.
      (eieio--validate-class-slot-value): Rename from
      eieio-validate-class-slot-value.  Change `class' to be a class object.
      Update all callers.
      (eieio-oset-default): Accept class object as well.
      (eieio--generic-call-primary-only): Rename from
      eieio-generic-call-primary-only.  Update all callers.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio-read-generic-p): Remove.
      (eieio-read-generic): Use `generic-p' instead.
      
      * lisp/emacs-lisp/eieio.el (same-class-p): Accept class object as well.
      (call-next-method): Simplify.
      (clone): Obey eieio-backward-compatibility.
      
      * lisp/gnus/registry.el: Don't use <class> as a variable.
      
      * test/automated/eieio-test-methodinvoke.el
      (eieio-test-method-order-list-4):
      Don't use <class> as a variable.
      
      * test/automated/eieio-test-persist.el (persistent-with-objs-list-slot):
      Don't use <class>-list type.
      
      * test/automated/eieio-tests.el: Use cl-lib.  Don't use <class> as a variable.
      Don't use <class>-list types and <class>-list-p predicates.
      1599688e
  13. 05 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Use class objects in `parent' field. · cb4db863
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-class-object): New function.
      (eieio-class-parents-fast): Remove macro.
      (eieio--class-option-assoc): Rename from class-option-assoc.
      Update all callers.
      (eieio--class-option): Rename from class-option.  Change `class' arg to
      be a class object.  Update all callers.
      (eieio--class-method-invocation-order): Rename from
      class-method-invocation-order.  Change `class' arg to be a class
      object.  Update all callers.
      (eieio-defclass-autoload, eieio-defclass): Set the `parent' field to
      a list of class objects rather than names.
      (eieio-defclass): Remove redundant quotes.  Use `eieio-oref-default'
      for accessors to class allocated slots.
      (eieio--perform-slot-validation-for-default): Rename from
      eieio-perform-slot-validation-for-default.  Update all callers.
      (eieio--add-new-slot): Rename from eieio-add-new-slot.
      Update all callers.  Use push.
      (eieio-copy-parents-into-subclass): Adjust to new content of
      `parent' field.  Use dolist.
      (eieio-oref): Remove support for providing a class rather than
      an object.
      (eieio-oref-default): Prefer class objects over class names.
      (eieio--slot-originating-class-p): Rename from
      eieio-slot-originating-class-p.  Update all callers.  Use `or'.
      (eieio--slot-name-index): Turn check into assertion.
      (eieio--class-slot-name-index): Rename from
      eieio-class-slot-name-index.  Change `class' arg to be a class object.
      Update all callers.
      (eieio-attribute-to-initarg): Move to eieio-test-persist.el.
      (eieio--c3-candidate): Rename from eieio-c3-candidate.
      Update all callers.
      (eieio--c3-merge-lists): Rename from eieio-c3-merge-lists.
      Update all callers.
      (eieio--class-precedence-c3): Rename from eieio-class-precedence-c3.
      Update all callers.
      (eieio--class-precedence-dfs): Rename from eieio-class-precedence-dfs.
      Update all callers.
      (eieio--class-precedence-bfs): Rename from eieio-class-precedence-bfs.
      Update all callers.  Adjust to new `parent' content.
      (eieio--class-precedence-list): Rename from -class-precedence-list.
      Update all callers.
      (eieio-generic-call): Use autoloadp and autoload-do-load.
      Slight simplification.
      (eieio-generic-call, eieio-generic-call-primary-only): Adjust to new
      return value of `eieio-generic-form'.
      (eieiomt-add): Index the hashtable with class objects rather than
      class names.
      (eieio-generic-form): Accept class objects as well.
      
      * lisp/emacs-lisp/eieio.el (eieio-class-parents): Accept class objects.
      (eieio--class-slot-initarg): Rename from class-slot-initarg.
      Change `class' arg to be a class object.  Update all callers.
      (call-next-method): Adjust to new return value of `eieio-generic-form'.
      (eieio-default-superclass): Set var to the class object.
      (eieio-edebug-prin1-to-string): Fix recursive call for lists.
      Change print behavior to affect class objects rather than
      class symbols.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
      Adjust to new convention for eieio-persistent-validate/fix-slot-value.
      (eieio-persistent-validate/fix-slot-value):
      Change `class' arg to be a class object.  Update all callers.
      
      * test/automated/eieio-test-persist.el (eieio--attribute-to-initarg):
      Move from eieio-core.el.  Rename from eieio-attribute-to-initarg.
      Change arg to be a class object.  Update all callers.
      
      * test/automated/eieio-tests.el (eieio-test-04-static-method)
      (eieio-test-05-static-method-2): Use oref-default to access
      class slots.
      (eieio-test-23-inheritance-check): Don't assume that
      eieio-class-parents returns class names, or that a class can only have
      a single name.
      cb4db863
  14. 01 Jan, 2015 2 commits
  15. 23 Dec, 2014 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Remove "name" field of objects · ee93d7ad
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-base.el (clone) <eieio-instance-inheritor>:
      Use call-next-method.
      (eieio-constructor): Rename from `constructor'.
      (eieio-persistent-convert-list-to-object): Drop objname.
      (eieio-persistent-validate/fix-slot-value): Don't hardcode
      eieio--object-num-slots.
      (eieio-named): Use a normal slot.
      (slot-missing) <eieio-named>: Remove.
      (eieio-object-name-string, eieio-object-set-name-string, clone)
      <eieio-named>: New methods.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--defalias): Follow aliases.
      (eieio--object): Remove `name' field.
      (eieio-defclass): Adjust to new convention where constructors don't
      take an "object name" any more.
      (eieio--defgeneric-init-form, eieio--defmethod): Follow aliases.
      (eieio-validate-slot-value, eieio-oset-default)
      (eieio-slot-name-index): Don't hardcode eieio--object-num-slots.
      (eieio-generic-call-primary-only): Simplify.
      
      * lisp/emacs-lisp/eieio-custom.el (eieio-widget-test): Remove dummy arg.
      (eieio-object-value-get): Use eieio-object-set-name-string.
      
      * lisp/emacs-lisp/eieio.el (make-instance): Simplify by not adding an object
      name argument.
      (eieio-object-name): Use eieio-object-name-string.
      (eieio--object-names): New const.
      (eieio-object-name-string, eieio-object-set-name-string): Re-implement
      using a hashtable rather than a built-in slot.
      (eieio-constructor): Rename from `constructor'.  Remove `newname' arg.
      (clone): Don't mess with the object's "name".
      
      * test/automated/eieio-test-persist.el (persistent-with-objs-slot-subs):
      The type FOO-child is the same as FOO.
      
      * test/automated/eieio-tests.el: Remove dummy object names.
      ee93d7ad
  16. 22 Dec, 2014 1 commit
  17. 26 Jun, 2014 1 commit
  18. 01 Jan, 2014 1 commit
  19. 05 Nov, 2013 1 commit
    • Glenn Morris's avatar
      * test/automated/eieio-tests.el (eieio-test-37-persistent-classes): · b5d402d6
      Glenn Morris authored
      Remove test that makes no sense.
      It simply loads a file that contains some tests.
      Loading the file does not run the tests, and the test are already
      being run independently (which obviously involves loading the file),
      since every .el file in this directory is automatically used in that way.
      b5d402d6
  20. 27 Aug, 2013 1 commit
  21. 21 Aug, 2013 1 commit
  22. 10 Sep, 2013 1 commit