emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 55300e6: Add tests for several byte-compiler warnings


From: Stefan Kangas
Subject: master 55300e6: Add tests for several byte-compiler warnings
Date: Thu, 3 Dec 2020 11:09:05 -0500 (EST)

branch: master
commit 55300e6cdc9b33b52cf17fe64a8ffbb6dce7ae8f
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Add tests for several byte-compiler warnings
    
    * test/lisp/emacs-lisp/bytecomp-tests.el
    (bytecomp/warn-autoload-not-on-top-level\.el)
    (bytecomp/warn-callargs\.el)
    (bytecomp/warn-defcustom-nogroup\.el)
    (bytecomp/warn-defcustom-notype\.el)
    (bytecomp/warn-defvar-lacks-prefix\.el)
    (bytecomp/warn-format\.el)
    (bytecomp/warn-lambda-malformed-interactive-spec\.el)
    (bytecomp/warn-make-variable-buffer-local\.el)
    (bytecomp/warn-redefine-defun-as-macro\.el)
    (bytecomp/warn-redefine-defun\.el)
    (bytecomp/warn-redefine-macro-as-defun\.el)
    (bytecomp/warn-save-excursion\.el)
    (bytecomp/warn-variable-let-bind-constant\.el)
    (bytecomp/warn-variable-let-bind-nonvariable\.el)
    (bytecomp/warn-variable-set-constant\.el)
    (bytecomp/warn-variable-set-nonvariable\.el): New tests.
    * test/lisp/emacs-lisp/bytecomp-resources/warn-autoload-not-on-top-level.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-callargs.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-nogroup.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-notype.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-defvar-lacks-prefix.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-format.el:
    * 
test/lisp/emacs-lisp/bytecomp-resources/warn-lambda-malformed-interactive-spec.el:
    * 
test/lisp/emacs-lisp/bytecomp-resources/warn-make-variable-buffer-local.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun-as-macro.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-macro-as-defun.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-save-excursion.el:
    * 
test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-constant.el:
    * 
test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-nonvariable.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-constant.el:
    * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el:
    * test/lisp/emacs-lisp/bytecomp-tests.el: New files.
---
 .../warn-autoload-not-on-top-level.el              |  3 ++
 .../emacs-lisp/bytecomp-resources/warn-callargs.el |  5 +++
 .../bytecomp-resources/warn-defcustom-nogroup.el   |  3 ++
 .../bytecomp-resources/warn-defcustom-notype.el    |  3 ++
 .../bytecomp-resources/warn-defvar-lacks-prefix.el |  2 +
 .../emacs-lisp/bytecomp-resources/warn-format.el   |  2 +
 .../warn-lambda-malformed-interactive-spec.el      |  4 ++
 .../warn-make-variable-buffer-local.el             |  4 ++
 .../warn-redefine-defun-as-macro.el                |  3 ++
 .../bytecomp-resources/warn-redefine-defun.el      |  3 ++
 .../warn-redefine-macro-as-defun.el                |  3 ++
 .../bytecomp-resources/warn-save-excursion.el      |  5 +++
 .../warn-variable-let-bind-constant.el             |  3 ++
 .../warn-variable-let-bind-nonvariable.el          |  3 ++
 .../warn-variable-set-constant.el                  |  3 ++
 .../warn-variable-set-nonvariable.el               |  3 ++
 test/lisp/emacs-lisp/bytecomp-tests.el             | 52 +++++++++++++++++++++-
 17 files changed, 102 insertions(+), 2 deletions(-)

diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-autoload-not-on-top-level.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-autoload-not-on-top-level.el
new file mode 100644
index 0000000..f193130
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-autoload-not-on-top-level.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (autoload 'bar "baz" nil nil 'macro))
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-callargs.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-callargs.el
new file mode 100644
index 0000000..687add3
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-callargs.el
@@ -0,0 +1,5 @@
+;;; -*- lexical-binding: t -*-
+(defun foo (_x)
+  nil)
+(defun bar ()
+  (foo 1 2))
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-nogroup.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-nogroup.el
new file mode 100644
index 0000000..a67d4f0
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-nogroup.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defcustom foo nil
+  :type 'boolean)
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-notype.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-notype.el
new file mode 100644
index 0000000..c15ab9b
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-notype.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defcustom foo nil
+  :group 'emacs)
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-defvar-lacks-prefix.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-defvar-lacks-prefix.el
new file mode 100644
index 0000000..9f3cbb9
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-defvar-lacks-prefix.el
@@ -0,0 +1,2 @@
+;;; -*- lexical-binding: t -*-
+(defvar foo nil)
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-format.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-format.el
new file mode 100644
index 0000000..a1902bc
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-format.el
@@ -0,0 +1,2 @@
+;;; -*- lexical-binding: t -*-
+(message "%s" 1 2)
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-lambda-malformed-interactive-spec.el
 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-lambda-malformed-interactive-spec.el
new file mode 100644
index 0000000..6bd9027
--- /dev/null
+++ 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-lambda-malformed-interactive-spec.el
@@ -0,0 +1,4 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (interactive "foo" "bar")
+  nil)
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-make-variable-buffer-local.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-make-variable-buffer-local.el
new file mode 100644
index 0000000..aa1e6c0
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-make-variable-buffer-local.el
@@ -0,0 +1,4 @@
+;;; -*- lexical-binding: t -*-
+(defvar foobar)
+(defun foo ()
+  (make-variable-buffer-local 'foobar))
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun-as-macro.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun-as-macro.el
new file mode 100644
index 0000000..6bd239b
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun-as-macro.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo () nil)
+(defmacro foo () t)
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun.el
new file mode 100644
index 0000000..53e4c0a
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo () nil)
+(defun foo () t)
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-macro-as-defun.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-macro-as-defun.el
new file mode 100644
index 0000000..f71ae44
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-macro-as-defun.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defmacro foo () t)
+(defun foo () nil)
diff --git a/test/lisp/emacs-lisp/bytecomp-resources/warn-save-excursion.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-save-excursion.el
new file mode 100644
index 0000000..3818545
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-save-excursion.el
@@ -0,0 +1,5 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (save-excursion
+    (set-buffer (current-buffer))
+    nil))
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-constant.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-constant.el
new file mode 100644
index 0000000..cc1fb57
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-constant.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (let ((t 1)) t))
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-nonvariable.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-nonvariable.el
new file mode 100644
index 0000000..dde2dce
--- /dev/null
+++ 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-nonvariable.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (let (('t 1)) t))
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-constant.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-constant.el
new file mode 100644
index 0000000..2fc0680
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-constant.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (setq t nil))
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el
new file mode 100644
index 0000000..0c76c4d
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el
@@ -0,0 +1,3 @@
+;;; -*- lexical-binding: t -*-
+(defun foo ()
+  (set '(a) nil))
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index 7ed9021..8fa4d27 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -567,12 +567,39 @@ Subtests signal errors if something goes wrong."
 (bytecomp--define-warning-file-test "error-lexical-var-with-symbol-value.el"
                             "symbol-value.*lexical var")
 
+(bytecomp--define-warning-file-test "warn-autoload-not-on-top-level.el"
+                            "compiler ignores.*autoload.*")
+
+(bytecomp--define-warning-file-test "warn-callargs.el"
+                            "with 2 arguments, but accepts only 1")
+
+(bytecomp--define-warning-file-test "warn-defcustom-nogroup.el"
+                            "fails to specify containing group")
+
+(bytecomp--define-warning-file-test "warn-defcustom-notype.el"
+                            "fails to specify type")
+
+(bytecomp--define-warning-file-test "warn-defvar-lacks-prefix.el"
+                            "var.*foo.*lacks a prefix")
+
+(bytecomp--define-warning-file-test "warn-format.el"
+                            "called with 2 args to fill 1 format field")
+
 (bytecomp--define-warning-file-test "warn-free-setq.el"
                             "free.*foo")
 
 (bytecomp--define-warning-file-test "warn-free-variable-reference.el"
                             "free.*bar")
 
+(bytecomp--define-warning-file-test "warn-make-variable-buffer-local.el"
+                            "make-variable-buffer-local.*not called at 
toplevel")
+
+(bytecomp--define-warning-file-test "warn-interactive-only.el"
+                            "next-line.*interactive use only.*forward-line")
+
+(bytecomp--define-warning-file-test "warn-lambda-malformed-interactive-spec.el"
+                            "malformed interactive spec")
+
 (bytecomp--define-warning-file-test "warn-obsolete-defun.el"
                             "foo-obsolete.*obsolete function.*99.99")
 
@@ -588,8 +615,29 @@ Subtests signal errors if something goes wrong."
 (bytecomp--define-warning-file-test "warn-obsolete-variable.el"
                             "bytecomp--tests-obs.*obsolete.*99.99")
 
-(bytecomp--define-warning-file-test "warn-interactive-only.el"
-                            "next-line.*interactive use only.*forward-line")
+(bytecomp--define-warning-file-test "warn-redefine-defun-as-macro.el"
+                            "as both function and macro")
+
+(bytecomp--define-warning-file-test "warn-redefine-macro-as-defun.el"
+                            "as both function and macro")
+
+(bytecomp--define-warning-file-test "warn-redefine-defun.el"
+                            "defined multiple")
+
+(bytecomp--define-warning-file-test "warn-save-excursion.el"
+                            "with-current.*rather than save-excursion")
+
+(bytecomp--define-warning-file-test "warn-variable-let-bind-constant.el"
+                            "let-bind constant")
+
+(bytecomp--define-warning-file-test "warn-variable-let-bind-nonvariable.el"
+                            "let-bind nonvariable")
+
+(bytecomp--define-warning-file-test "warn-variable-set-constant.el"
+                            "variable reference to constant")
+
+(bytecomp--define-warning-file-test "warn-variable-set-nonvariable.el"
+                            "variable reference to nonvariable")
 
 
 ;;;; Macro expansion.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]