at runtime since it's not needed.
(f90-approx-arglist-match): Remove unused var `match'.
(f90-parse-single-type-declaration): Don't use `add-to-list' on a local var.
* packages/f90-interface-browser/f90-tests.el: Require `cl-lib'.
(test-check, test-combine-results, parse-declaration): Fix up
names accordingly.
("dismal" :external nil)
("eldoc-eval" :subtree "https://github.com/thierryvolpiatto/eldoc-eval.git")
("enwc" :subtree "bzr::bzr://bzr.savannah.nongnu.org/enwc/trunk")
("dismal" :external nil)
("eldoc-eval" :subtree "https://github.com/thierryvolpiatto/eldoc-eval.git")
("enwc" :subtree "bzr::bzr://bzr.savannah.nongnu.org/enwc/trunk")
- ("f90-interface-browser" :subtree "http://github.com/wence-/f90-iface")
+ ("f90-interface-browser" :subtree "https://github.com/wence-/f90-iface")
("ggtags" :subtree "https://github.com/leoliu/ggtags")
("ioccur" :subtree "https://github.com/thierryvolpiatto/ioccur.git")
("js2-mode" :subtree "https://github.com/mooz/js2-mode.git")
("ggtags" :subtree "https://github.com/leoliu/ggtags")
("ioccur" :subtree "https://github.com/thierryvolpiatto/ioccur.git")
("js2-mode" :subtree "https://github.com/mooz/js2-mode.git")
;;; f90-interface-browser.el --- Parse and browse f90 interfaces
;;; f90-interface-browser.el --- Parse and browse f90 interfaces
-;; Copyright (C) 2011, 2012 Free Software Foundation, Inc
+;; Copyright (C) 2011, 2012, 2013 Free Software Foundation, Inc
;; Author: Lawrence Mitchell <wence@gmx.li>
;; Created: 2011-07-06
;; Author: Lawrence Mitchell <wence@gmx.li>
;; Created: 2011-07-06
+(eval-when-compile (require 'cl))
(require 'thingatpt)
(require 'f90)
(require 'etags)
(require 'thingatpt)
(require 'f90)
(require 'etags)
(<= n-passed-args n-spec-args)))
(loop for arg in arglist
for spec-arg in spec-arglist
(<= n-passed-args n-spec-args)))
(loop for arg in arglist
for spec-arg in spec-arglist
unless (or (null arg)
(string= (f90-get-parsed-type-typename arg)
(f90-get-parsed-type-typename spec-arg)))
unless (or (null arg)
(string= (f90-get-parsed-type-typename arg)
(f90-get-parsed-type-typename spec-arg)))
(setcdr (assoc "dimension" dec)
(1+ (f90-count-commas
(match-string 2 name))))
(setcdr (assoc "dimension" dec)
(1+ (f90-count-commas
(match-string 2 name))))
- (add-to-list 'dec
- (cons "dimension"
- (1+ (f90-count-commas
- (match-string 2 name))))
- t))
+ (push (cons "dimension"
+ (1+ (f90-count-commas
+ (match-string 2 name))))
+ dec))
(setq name (match-string 1 name)))
(setq name (match-string 1 name)))
- collect (cons name dec)))))
+ collect (cons name (nreverse dec))))))
(defun f90-split-declaration (dec)
"Split and parse a type declaration DEC.
(defun f90-split-declaration (dec)
"Split and parse a type declaration DEC.
+(require 'cl-lib)
+
+;; FIXME: Convert to use ERT.
+
(defvar *test-name* nil)
(defvar *test-tests* (make-hash-table :test 'eq))
(defvar *test-name* nil)
(defvar *test-tests* (make-hash-table :test 'eq))
(defmacro test-check (&rest forms)
"Run each expression in 'forms' as a test case."
`(test-combine-results
(defmacro test-check (&rest forms)
"Run each expression in 'forms' as a test case."
`(test-combine-results
- ,@(loop for (expr res) in forms
- collect `(test-report-result (equal (condition-case err
- ,expr
- (error (gensym))) ',res)
- ',expr ',res))))
+ ,@(cl-loop for (expr res) in forms
+ collect `(test-report-result (equal (condition-case _
+ ,expr
+ (error (cl-gensym)))
+ ',res)
+ ',expr ',res))))
(defmacro test-combine-results (&rest forms)
"Combine the results (as booleans) of evaluating 'forms' in order."
(let ((result (make-symbol "result")))
`(let ((,result t))
(defmacro test-combine-results (&rest forms)
"Combine the results (as booleans) of evaluating 'forms' in order."
(let ((result (make-symbol "result")))
`(let ((,result t))
- ,@(loop for f in forms collect `(unless ,f (setf ,result nil)))
+ ,@(cl-loop for f in forms collect `(unless ,f (setf ,result nil)))
,result)))
(defun test-report-result (result res req)
,result)))
(defun test-report-result (result res req)
("integer" ("dimension" . 1)))))
(deftest parse-declaration ()
("integer" ("dimension" . 1)))))
(deftest parse-declaration ()
- (flet ((fun (str) (with-temp-buffer
- (insert str)
- (goto-char (point-min))
- (f90-parse-single-type-declaration))))
+ (cl-flet ((fun (str) (with-temp-buffer
+ (insert str)
+ (goto-char (point-min))
+ (f90-parse-single-type-declaration))))
(test-check
((fun "integer :: name") (("name" "integer")))
((fun "integer :: name1, name2") (("name1" "integer")
(test-check
((fun "integer :: name") (("name" "integer")))
((fun "integer :: name1, name2") (("name1" "integer")