~mdw
/
sod
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/module-parse.lisp (parse-class-body): Refactor superclass list.
[sod]
/
src
/
module-parse.lisp
diff --git
a/src/module-parse.lisp
b/src/module-parse.lisp
index
c5b28a6
..
0a3cd28
100644
(file)
--- a/
src/module-parse.lisp
+++ b/
src/module-parse.lisp
@@
-260,6
+260,14
@@
(with-parser-context (token-scanner-context :scanner scanner)
(when name (make-class-type name))
(let* ((duff (null name))
(with-parser-context (token-scanner-context :scanner scanner)
(when name (make-class-type name))
(let* ((duff (null name))
+ (superclasses
+ (let ((superclasses (restart-case
+ (mapcar #'find-sod-class
+ (or supers (list "SodObject")))
+ (continue ()
+ (setf duff t)
+ (list (find-sod-class "SodObject"))))))
+ superclasses))
(synthetic-name (or name
(let ((var (synthetic-name)))
(unless pset
(synthetic-name (or name
(let ((var (synthetic-name)))
(unless pset
@@
-267,14
+275,7
@@
(unless (pset-get pset "nick")
(add-property pset "nick" var :type :id))
var)))
(unless (pset-get pset "nick")
(add-property pset "nick" var :type :id))
var)))
- (class (make-sod-class synthetic-name
- (restart-case
- (mapcar #'find-sod-class
- (or supers (list "SodObject")))
- (continue ()
- (setf duff t)
- (list (find-sod-class "SodObject"))))
- pset scanner))
+ (class (make-sod-class synthetic-name superclasses pset scanner))
(nick (sod-class-nickname class)))
(labels ((must-id ()
(nick (sod-class-nickname class)))
(labels ((must-id ()