~ chicken-core (chicken-5) b70f084e3f77de17397b47592b0dd361bb195c40
commit b70f084e3f77de17397b47592b0dd361bb195c40
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Mar 20 21:59:11 2011 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sun Mar 20 21:59:11 2011 +0100
polishing some error messages
diff --git a/modules.scm b/modules.scm
index 6171f0a6..09e277c1 100644
--- a/modules.scm
+++ b/modules.scm
@@ -722,7 +722,7 @@
(lambda (iface)
(append iface (loop (cdr xps)))))
(else
- (err "invalid interface specification" x exps)))
+ (err "unknown interface" x exps)))
(err "invalid interface specification" x exps)))
(else (err "invalid export" x exps))))))))))
@@ -748,15 +748,15 @@
(alias (car p))
(mname (car as))
(exps (cdr p)))
- (##sys#match-functor-argument alias mname exps name)
+ (##sys#match-functor-argument alias name mname exps fname)
(cons (list alias mname) (loop (cdr as) (cdr fas)))))))
(##core#module
,name
,(if (eq? '* exports) #t exports)
,@body)))))
-(define (##sys#match-functor-argument alias mname exps loc)
- (let ((mod (##sys#find-module (##sys#resolve-module-name mname loc) #t loc)))
+(define (##sys#match-functor-argument alias name mname exps fname)
+ (let ((mod (##sys#find-module (##sys#resolve-module-name mname 'module) #t 'module)))
(unless (eq? exps '*)
(let ((missing '()))
(for-each
@@ -767,5 +767,9 @@
exps)
(when (pair? missing)
(##sys#syntax-error-hook
- loc "argument module does not match required signature"
- mname alias))))))
+ 'module
+ (string-append
+ "argument module `" (symbol->string mname) "' does not match required signature "
+ "in instantiation `" (symbol->string name) "' of functor `"
+ (symbol->string fname) "'")))))))
+
Trap