summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/cedet/semantic/analyze.el4
-rw-r--r--lisp/cedet/semantic/analyze/fcn.el51
3 files changed, 42 insertions, 21 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 984110fd65e..a0a291a9a61 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -2,6 +2,12 @@
Synch to Eric Ludlam's upstream CEDET repository.
+ * cedet/semantic/analyze/fcn.el (semantic-analyze-dereference-metatype-1)
+ (semantic-analyze-type): Require semantic/scope.
+ (semantic-analyze-select-best-tag): Require semantic/db-typecache.
+ (semantic-analyze-dereference-metatype): Move up to avoid compiler
+ warning.
+
* cedet/semantic/wisent/java-tags.el:
* cedet/semantic/wisent/javat-wy.el: New files.
@@ -31,7 +37,7 @@
* cedet/semantic/elp.el: File removed.
* cedet/semantic/analyze.el (semantic-adebug-analyze): New
- function, moved here from semantic/adebug.
+ function, moved here from semantic/adebug. Require data-debug.
* cedet/semantic/adebug.el: Declare external semanticdb functions.
(semantic-adebug-analyze, semantic-adebug-edebug-expr): Deleted.
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el
index 7d8143e3a69..55f8db4aaad 100644
--- a/lisp/cedet/semantic/analyze.el
+++ b/lisp/cedet/semantic/analyze.el
@@ -72,6 +72,9 @@
(require 'semantic/scope)
(require 'semantic/analyze/fcn)
+(declare-function data-debug-new-buffer "data-debug")
+(declare-function data-debug-insert-object-slots "eieio-datadebug")
+
;;; Code:
(defvar semantic-analyze-error-stack nil
"Collection of any errors thrown during analysis.")
@@ -680,6 +683,7 @@ Returns an object based on symbol `semantic-analyze-context'."
Display the results as a debug list.
Optional argument CTXT is the context to show."
(interactive)
+ (require 'data-debug)
(let ((start (current-time))
(ctxt (or ctxt (semantic-analyze-current-context)))
(end (current-time)))
diff --git a/lisp/cedet/semantic/analyze/fcn.el b/lisp/cedet/semantic/analyze/fcn.el
index 6fe5c49b0bc..e0059896fb3 100644
--- a/lisp/cedet/semantic/analyze/fcn.el
+++ b/lisp/cedet/semantic/analyze/fcn.el
@@ -29,6 +29,13 @@
(require 'semantic)
(require 'semantic/tag)
+(eval-when-compile (require 'semantic/find))
+
+(declare-function semanticdb-typecache-merge-streams "semantic/db-typecache")
+(declare-function semantic-scope-find name "semantic/scope")
+(declare-function semantic-scope-set-typecache "semantic/scope")
+(declare-function semantic-scope-tag-get-scope "semantic/scope")
+
;;; Small Mode Specific Options
;;
;; These queries allow a major mode to help the analyzer make decisions.
@@ -105,6 +112,7 @@ tags of TAGCLASS."
;;
;; 2)
;; It will also remove prototypes.
+ (require 'semantic/db-typecache)
(setq sequence (semanticdb-typecache-merge-streams sequence nil))
(if (< (length sequence) 2)
@@ -150,6 +158,27 @@ Almost all searches use the same arguments."
;;; Finding Datatypes
;;
+
+(define-overloadable-function semantic-analyze-dereference-metatype (type scope &optional type-declaration)
+ ;; todo - move into typecahe!!
+ "Return a concrete type tag based on input TYPE tag.
+A concrete type is an actual declaration of a memory description,
+such as a structure, or class. A meta type is an alias,
+or a typedef in C or C++. If TYPE is concrete, it
+is returned. If it is a meta type, it will return the concrete
+type defined by TYPE.
+The default behavior always returns TYPE.
+Override functions need not return a real semantic tag.
+Just a name, or short tag will be ok. It will be expanded here.
+SCOPE is the scope object with additional items in which to search for names."
+ (catch 'default-behavior
+ (let* ((ans-tuple (:override
+ ;; Nothing fancy, just return type by default.
+ (throw 'default-behavior (list type type-declaration))))
+ (ans-type (car ans-tuple))
+ (ans-type-declaration (cadr ans-tuple)))
+ (list (semantic-analyze-dereference-metatype-1 ans-type scope) ans-type-declaration))))
+
;; Finding a data type by name within a project.
;;
(defun semantic-analyze-type-to-name (type)
@@ -184,6 +213,7 @@ Optional SCOPE represents a calculated scope in which the
types might be found. This can be nil.
If NOMETADEREF, then do not dereference metatypes. This is
used by the analyzer debugger."
+ (require 'semantic/scope)
(let ((name nil)
(typetag nil)
)
@@ -257,32 +287,13 @@ Optional argument TYPE-DECLARATION is how TYPE was found referenced."
))
lasttype))
-(define-overloadable-function semantic-analyze-dereference-metatype (type scope &optional type-declaration)
- ;; todo - move into typecahe!!
- "Return a concrete type tag based on input TYPE tag.
-A concrete type is an actual declaration of a memory description,
-such as a structure, or class. A meta type is an alias,
-or a typedef in C or C++. If TYPE is concrete, it
-is returned. If it is a meta type, it will return the concrete
-type defined by TYPE.
-The default behavior always returns TYPE.
-Override functions need not return a real semantic tag.
-Just a name, or short tag will be ok. It will be expanded here.
-SCOPE is the scope object with additional items in which to search for names."
- (catch 'default-behavior
- (let* ((ans-tuple (:override
- ;; Nothing fancy, just return type by default.
- (throw 'default-behavior (list type type-declaration))))
- (ans-type (car ans-tuple))
- (ans-type-declaration (cadr ans-tuple)))
- (list (semantic-analyze-dereference-metatype-1 ans-type scope) ans-type-declaration))))
-
;; @ TODO - the typecache can also return a stack of scope names.
(defun semantic-analyze-dereference-metatype-1 (ans scope)
"Do extra work after dereferencing a metatype.
ANS is the answer from the the language specific query.
SCOPE is the current scope."
+ (require 'semantic/scope)
;; If ANS is a string, or if ANS is a short tag, we
;; need to do some more work to look it up.
(if (stringp ans)