~ chicken-core (chicken-5) 45c848d810a4b349930daa8becd99fe20702d5b8
commit 45c848d810a4b349930daa8becd99fe20702d5b8
Author: megane <meganeka@gmail.com>
AuthorDate: Tue Nov 27 16:52:56 2018 +0200
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Sat Mar 9 20:31:44 2019 +1300
Update messages for scrutiny special cases to new pretty print format
Signed-off-by: Evan Hanson <evhan@foldling.org>
diff --git a/scrutinizer.scm b/scrutinizer.scm
index 340b2c83..9e691cc3 100644
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -325,7 +325,7 @@
(d " call: ~a, te: ~a" actualtypes typeenv)
(cond ((and (not pptype?) (not (match-types xptype ptype typeenv)))
(r-invalid-called-procedure-type
- loc node (resolve xptype typeenv) (resolve ptype typeenv))
+ loc node (resolve xptype typeenv) (car args) (resolve ptype typeenv))
(values '* #f))
(else
(let-values (((atypes values-rest ok alen)
@@ -333,6 +333,7 @@
(unless ok
(r-proc-call-argument-count-mismatch loc node alen nargs ptype))
(do ((actualtypes (cdr actualtypes) (cdr actualtypes))
+ (anodes (cdr args) (cdr anodes))
(atypes atypes (cdr atypes))
(i 1 (add1 i)))
((or (null? actualtypes) (null? atypes)))
@@ -342,6 +343,7 @@
typeenv)
(r-proc-call-argument-type-mismatch
loc node i
+ (car anodes)
(resolve (car atypes) typeenv)
(resolve (car actualtypes) typeenv)
ptype)))
@@ -2064,16 +2066,6 @@
rtypes)))
(let ()
- ;; TODO: Complain argument not available here, so we can't use the
- ;; standard "report" defined above. However, ##sys#enable-warnings
- ;; and "complain" (do-scrutinize) are always true together, except
- ;; that "complain" will be false while ##sys#enable-warnings is true
- ;; on "no-usual-integrations", so perhaps get rid of "complain"?
- (define (report loc msg . args)
- (warning
- (conc (location-name loc)
- (sprintf "~?" msg args))))
-
(define (known-length-vector-index node args loc expected-argcount)
(and-let* ((subs (node-subexpressions node))
((= (length subs) (add1 expected-argcount)))
@@ -2088,12 +2080,7 @@
(if (and (>= val 0) (< val vector-length))
val
(begin
- (report
- loc "~ain procedure call to `~a', index ~a out of range \
- for vector of length ~a"
- (node-source-prefix node)
- ;; TODO: It might make more sense to use "pname" here
- (first (node-parameters (first subs))) val vector-length)
+ (r-index-out-of-range loc node val vector-length "vector")
#f))))
;; These are a bit hacky, since they mutate the node. These special
@@ -2133,12 +2120,6 @@
; list-ref, list-tail
(let ()
- ;; See comment in vector (let) just above this
- (define (report loc msg . args)
- (warning
- (conc (location-name loc)
- (sprintf "~?" msg args))))
-
(define (list-or-null a)
(if (null? a) 'null `(list ,@a)))
@@ -2181,25 +2162,15 @@
((eq? 'quote (node-class index)))
(val (first (node-parameters index)))
((fixnum? val))) ; Standard type warning otherwise
- ;; TODO: It might make sense to use "pname" when reporting
(cond ((negative? val)
- ;; Negative indices should always generate a warning
- (report
- loc "~ain procedure call to `~a', index ~a is \
- negative, which is never valid"
- (node-source-prefix node)
- (first (node-parameters (first subs))) val)
+ (r-index-out-of-range loc node val 'not-used "list")
#f)
((split-list-type arg1 val k))
;; Warn only if it's a known proper list. This avoids
;; false warnings due to component smashing.
((proper-list-type-length arg1) =>
(lambda (length)
- (report
- loc "~ain procedure call to `~a', index ~a out of \
- range for proper list of length ~a"
- (node-source-prefix node)
- (first (node-parameters (first subs))) val length)
+ (r-index-out-of-range loc node val length "list")
#f))
(else #f)))
rtypes)))
@@ -2245,12 +2216,6 @@
rtypes)))
(let ()
- ;; See comment in vector (let)
- (define (report loc msg . args)
- (warning
- (conc (location-name loc)
- (sprintf "~?" msg args))))
-
(define (append-special-case node args loc rtypes)
(define (potentially-proper-list? l) (match-types l 'list '()))
@@ -2282,17 +2247,9 @@
;; The final argument may be an atom or improper list
(unless (or (null? (cdr arg-types))
(potentially-proper-list? arg1))
- (report
- loc
- (string-append
- "~ain procedure call to `~a', argument #~a is of type"
- "~%~%~a~%~%"
- " but expected a proper list.")
- (node-source-prefix node)
- (first (node-parameters
- (first (node-subexpressions node))))
- index
- (type->pp-string arg1)))
+ (r-proc-call-argument-type-mismatch
+ loc node index 'list
+ (car arg-types) arg1 (variable-mark 'scheme#append '##compiler#type)))
#f))))))
(cond ((derive-result-type) => list)
(else rtypes)))
@@ -2496,25 +2453,27 @@
(define (describe-expression node)
(define (p-expr n)
- (sprintf (string-append "This is the expression" "~%~%" "~a")
+ (sprintf (string-append "This is the expression:" "~%~%" "~a")
(pp-fragment n)))
(define (p-node n)
- (or (and (eq? '##core#call (node-class n))
- (let ((pnode (first (node-subexpressions n))))
- (and-let* (((eq? '##core#variable (node-class pnode)))
- (pname (car (node-parameters pnode)))
- (ptype (variable-mark pname '##compiler#type)))
- (sprintf (string-append
- "It is a call to ~a which has type"
- "~%~%"
- "~a"
- "~%~%"
- "~a")
- (variable-from-module pname)
- (type->pp-string ptype)
- (p-expr n)))))
- (p-expr n)))
- (p-node node))
+ (cond ((and (eq? '##core#call (node-class n))
+ (let ((pnode (first (node-subexpressions n))))
+ (and-let* (((eq? '##core#variable (node-class pnode)))
+ (pname (car (node-parameters pnode)))
+ (ptype (variable-mark pname '##compiler#type)))
+ (sprintf (string-append
+ "It is a call to ~a which has this type:"
+ "~%~%"
+ "~a"
+ "~%~%"
+ "~a")
+ (variable-from-module pname)
+ (type->pp-string ptype)
+ (p-expr n))))))
+ ((eq? '##core#the/result (node-class n)) ; walk through
+ (p-node (first (node-subexpressions n))))
+ (else (p-expr n))))
+ (p-node (source-node-tree node)))
(define (call-node-procedure-name node)
(fragment (first (node-subexpressions node))))
@@ -2531,34 +2490,64 @@
(let ((l (file-location))) (if l (conc " " l) ""))
(string-add-indent
(conc "\n" (location-name loc "") (sprintf "~?" msg args))
- " ")))))
+ " ")))
+ (flush-output)))
(define (report-notice reason location-node-candidates loc msg . args)
(apply report2 reason ##sys#notice location-node-candidates loc msg args))
;;; Reports
-(define (r-invalid-called-procedure-type loc node xptype ptype)
- (report2
- "Invalid procedure"
- warning
- (list node)
- loc
- (string-append
- "In procedure call"
- "~%~%"
- "~a"
- "~%~%"
- "The procedure has invalid type"
- "~%~%"
- "~a"
- "~%~%"
- "The expected type is"
- "~%~%"
- "~a")
- (pp-fragment node)
- (type->pp-string ptype)
- (type->pp-string xptype)))
+(define (r-invalid-called-procedure-type loc call-node xptype p-node ptype)
+ (define (variable-node-name n)
+ (cond ((eq? '##core#the/result (node-class n))
+ (variable-node-name (first (node-subexpressions n))))
+ ((eq? '##core#variable (node-class n)) (car (node-parameters n)))
+ (else #f)))
+ (if (variable-node-name p-node)
+ (report2
+ "Invalid procedure"
+ warning
+ (list p-node call-node)
+ loc
+ (string-append
+ "In procedure call:"
+ "~%~%"
+ "~a"
+ "~%~%"
+ "Variable ~a is not a procedure."
+ "~%~%"
+ "It has this type:"
+ "~%~%"
+ "~a")
+ (pp-fragment call-node)
+ (variable-from-module (variable-node-name p-node))
+ (type->pp-string ptype))
+ (report2
+ "Invalid procedure"
+ warning
+ (list p-node call-node)
+ loc
+ (string-append
+ "In procedure call:"
+ "~%~%"
+ "~a"
+ "~%~%"
+ "The procedure expression does not appear to be a callable."
+ "~%~%"
+ "~a"
+ "~%~%"
+ "The expected type is:"
+ "~%~%"
+ "~a"
+ "~%~%"
+ "The actual type is:"
+ "~%~%"
+ "~a")
+ (pp-fragment call-node)
+ (describe-expression p-node)
+ (type->pp-string xptype)
+ (type->pp-string ptype))))
(define (r-proc-call-argument-count-mismatch loc node exp-count argc ptype)
(define pname (call-node-procedure-name node))
@@ -2568,13 +2557,13 @@
(list node)
loc
(string-append
- "In procedure call"
+ "In procedure call:"
"~%~%"
"~a"
"~%~%"
"Procedure `~a' is called with ~a argument~a but ~a argument~a ~a expected."
"~%~%"
- "Procedure ~a has type"
+ "Procedure ~a has this type:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2585,7 +2574,7 @@
(variable-from-module pname)
(type->pp-string ptype)))
-(define (r-proc-call-argument-type-mismatch loc node i xptype atype ptype)
+(define (r-proc-call-argument-type-mismatch loc node i arg-node xptype atype ptype)
(define pname (call-node-procedure-name node))
(report2
"Invalid argument"
@@ -2593,19 +2582,21 @@
(list node)
loc
(string-append
- "In procedure call"
+ "In procedure call:"
"~%~%"
"~a"
"~%~%"
- "Argument #~a to procedure `~a' has invalid type"
+ "Argument #~a to procedure `~a' has an invalid type:"
"~%~%"
"~a"
"~%~%"
- "The expected type is"
+ "The expected type is:"
+ "~%~%"
+ "~a"
"~%~%"
"~a"
"~%~%"
- "Procedure ~a has type"
+ "Procedure ~a has this type:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2613,6 +2604,7 @@
(strip-namespace pname)
(type->pp-string atype)
(type->pp-string xptype)
+ (describe-expression arg-node)
(variable-from-module pname)
(type->pp-string ptype)))
@@ -2625,7 +2617,7 @@
(list arg-node call-node)
loc
(string-append
- "In procedure call"
+ "In procedure call:"
"~%~%"
"~a"
"~%~%"
@@ -2643,6 +2635,30 @@
(p "Too many argument values"
(sprintf "returns ~a values but 1 is expected." (length atype)))))
+(define (r-index-out-of-range loc node idx obj-length obj-name)
+ ;; Negative indices should always generate a warning
+ (define pname (call-node-procedure-name node))
+ (report2
+ (if (negative? idx)
+ (sprintf "Negative ~a index" obj-name)
+ (sprintf "~a~a index out of range"
+ (char-upcase (string-ref obj-name 0))
+ (substring obj-name 1)))
+ warning
+ (list node)
+ loc
+ (string-append
+ "In procedure call:"
+ "~%~%"
+ "~a"
+ "~%~%"
+ "Procedure ~a is called with ~a")
+ (pp-fragment node)
+ (variable-from-module pname)
+ (if (negative? idx)
+ (sprintf "a negative index ~a." idx)
+ (sprintf "index `~a' for a ~a of length `~a'." idx obj-name obj-length))))
+
(define (r-pred-call-always-true loc node pred-type atype)
(define pname (call-node-procedure-name node))
(report-notice
@@ -2650,17 +2666,17 @@
(list node)
loc
(string-append
- "In procedure call"
+ "In procedure call:"
"~%~%"
"~a"
"~%~%"
"The predicate will always return true."
"~%~%"
- "Procedure ~a is a predicate for"
+ "Procedure ~a is a predicate for:"
"~%~%"
"~a"
"~%~%"
- "The given argument has type"
+ "The given argument has this type:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2675,17 +2691,17 @@
(list node)
loc
(string-append
- "In procedure call"
+ "In procedure call:"
"~%~%"
"~a"
"~%~%"
"The predicate will always return false."
"~%~%"
- "Procedure ~a is a predicate for"
+ "Procedure ~a is a predicate for:"
"~%~%"
"~a"
"~%~%"
- "The given argument has type"
+ "The given argument has this type:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2699,11 +2715,11 @@
(list test-node if-node)
loc
(string-append
- "In conditional expression"
+ "In conditional expression:"
"~%~%"
"~a"
"~%~%"
- "Test condition has always true value of type"
+ "Test condition has always true value of type:"
"~%~%"
"~a")
(pp-fragment if-node)
@@ -2715,7 +2731,7 @@
(list test-node if-node)
loc
(string-append
- "In conditional expression"
+ "In conditional expression:"
"~%~%"
"~a"
"~%~%"
@@ -2730,11 +2746,11 @@
(list node)
loc
(string-append
- "In expression"
+ "In expression:"
"~%~%"
"~a"
"~%~%"
- "Expression returns 0 values but is declared to return"
+ "Expression returns 0 values but is declared to return:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2747,42 +2763,42 @@
(list node)
loc
(string-append
- "In expression"
+ "In expression:"
"~%~%"
"~a"
"~%~%"
"Expression returns too many values."
"~%~%"
- "The expression returns ~a values but is declared to return"
+ "The expression returns ~a values but is declared to return:"
"~%~%"
"~a")
(pp-fragment node)
(length rtypes)
(type->pp-string the-type)))
-(define (r-type-mismatch-in-the loc node first-rtype the-type)
+(define (r-type-mismatch-in-the loc node atype the-type)
(report2
"Type mismatch"
warning
(list node)
loc
(string-append
- "In expression"
+ "In expression:"
"~%~%"
"~a"
"~%~%"
"Expression's declared and actual types do not match."
"~%~%"
- "The actual type is"
+ "The declared type is:"
"~%~%"
"~a"
"~%~%"
- "The expression's declared type is"
+ "The actual type is:"
"~%~%"
"~a")
(pp-fragment node)
- (type->pp-string first-rtype)
- (type->pp-string the-type)))
+ (type->pp-string the-type)
+ (type->pp-string atype)))
(define (fail-compiler-typecase loc node atype ct-types)
(define (pp-type t) (string-add-indent (type->pp-string t) " "))
@@ -2791,17 +2807,17 @@
"No typecase match"
"~a"
"~a"
- "In `compiler-typecase' expression"
+ "In `compiler-typecase' expression:"
"~%~%"
" ~a"
"~%~%"
" Tested expression does not match any case."
"~%~%"
- " The expression has type"
+ " The expression has this type:"
"~%~%"
"~a"
"~%~%"
- " The specified type cases are these"
+ " The specified type cases are these:"
"~%~%"
"~a")
(if (string=? "" (node-source-prefix node))
@@ -2819,17 +2835,17 @@
(list a-node node)
loc
(string-append
- "In conditional expression"
+ "In conditional expression:"
"~%~%"
"~a"
"~%~%"
"The branches have different numbers of values."
"~%~%"
- "The true branch returns ~a value~a"
+ "The true branch returns ~a value~a:"
"~%~%"
"~a"
"~%~%"
- "The false branch returns ~a value~a"
+ "The false branch returns ~a value~a:"
"~%~%"
"~a")
(pp-fragment node)
@@ -2845,23 +2861,25 @@
(list node value-node)
loc
(string-append
- "In assignment"
+ "In assignment:"
"~%~%"
"~a"
"~%~%"
"Variable `~a' is assigned invalid value."
"~%~%"
- "The assigned value has type"
+ "The assigned value has this type:"
"~%~%"
"~a"
"~%~%"
- "The declared type of `~a' is"
+ "The declared type of ~a is:"
"~%~%"
"~a")
(pp-fragment node)
- var
+ (strip-namespace var)
(type->pp-string atype)
- var
+ (variable-from-module
+ (let ((n (real-name var)))
+ (if (symbol? n) n (string->symbol n))))
(type->pp-string xptype)))
(define (r-deprecated-identifier loc node id #!optional suggestion)
@@ -2871,7 +2889,7 @@
(list node)
loc
(string-append
- "In expression"
+ "In expression:"
"~%~%"
"~a"
"~%~%"
diff --git a/tests/scrutinizer-message-format.expected b/tests/scrutinizer-message-format.expected
index 8384c6d4..c3b34600 100644
--- a/tests/scrutinizer-message-format.expected
+++ b/tests/scrutinizer-message-format.expected
@@ -7,63 +7,67 @@ Warning: literal in operator position: (1 2)
Warning: Wrong number of arguments (test-scrutinizer-message-format.scm:XXX)
In `r-proc-call-argument-count-mismatch', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#cons '())
Procedure `cons' is called with 1 argument but 2 arguments are expected.
- Procedure `cons' from module `scheme' has type
+ Procedure `cons' from module `scheme' has this type:
('aXXX 'bXXX --> (pair 'aXXX 'bXXX))
Warning: Invalid argument (test-scrutinizer-message-format.scm:XXX)
In `r-proc-call-argument-type-mismatch', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#length 'symbol)
- Argument #1 to procedure `length' has invalid type
+ Argument #1 to procedure `length' has an invalid type:
symbol
- The expected type is
+ The expected type is:
list
- Procedure `length' from module `scheme' has type
+ This is the expression:
+
+ 'symbol
+
+ Procedure `length' from module `scheme' has this type:
(list -> fixnum)
Warning: Too many argument values (test-scrutinizer-message-format.scm:XXX)
In `r-proc-call-argument-value-count', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list (chicken.time#cpu-time))
Argument #1 to procedure `list' returns 2 values but 1 is expected.
- It is a call to `cpu-time' from module `chicken.time' which has type
+ It is a call to `cpu-time' from module `chicken.time' which has this type:
(-> fixnum fixnum)
- This is the expression
+ This is the expression:
(chicken.time#cpu-time)
Warning: Not enough argument values (test-scrutinizer-message-format.scm:XXX)
In `r-proc-call-argument-value-count', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#vector (scheme#values))
Argument #1 to procedure `vector' does not return any values.
- It is a call to `values' from module `scheme' which has type
+ It is a call to `values' from module `scheme' which has this type:
(procedure (#!rest values) . *)
- This is the expression
+ This is the expression:
(scheme#values)
@@ -72,79 +76,85 @@ Warning: In `r-proc-call-argument-value-count', a toplevel procedure
Warning: Branch values mismatch (test-scrutinizer-message-format.scm:XXX)
In `r-cond-branch-value-count-mismatch', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if (the * 1) 1 (scheme#values 1 2))
The branches have different numbers of values.
- The true branch returns 1 value
+ The true branch returns 1 value:
1
- The false branch returns 2 values
+ The false branch returns 2 values:
(scheme#values 1 2)
Warning: Invalid procedure
In `r-invalid-called-procedure-type', a toplevel procedure
- In procedure call
+ In procedure call:
(1 2)
- The procedure has invalid type
+ The procedure expression does not appear to be a callable.
- fixnum
+ This is the expression:
- The expected type is
+ 1
+
+ The expected type is:
(* -> *)
+ The actual type is:
+
+ fixnum
+
Note: Predicate is always true (test-scrutinizer-message-format.scm:XXX)
In `r-pred-call-always-true', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list? '())
The predicate will always return true.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always false (test-scrutinizer-message-format.scm:XXX)
In `r-pred-call-always-false', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#symbol? 1)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
fixnum
Note: Test is always true
In `r-cond-test-always-true', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if 'symbol 1 (##core#undefined))
- Test condition has always true value of type
+ Test condition has always true value of type:
symbol
Note: Test is always false
In `r-cond-test-always-false', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if #f 1 (##core#undefined))
@@ -152,77 +162,77 @@ Note: Test is always false
Warning: Type mismatch
In `r-type-mismatch-in-the', a toplevel procedure
- In expression
+ In expression:
1
Expression's declared and actual types do not match.
- The actual type is
+ The declared type is:
- fixnum
+ symbol
- The expression's declared type is
+ The actual type is:
- symbol
+ fixnum
Warning: Not enough values (test-scrutinizer-message-format.scm:XXX)
In `r-zero-values-for-the', a toplevel procedure
- In expression
+ In expression:
(scheme#values)
- Expression returns 0 values but is declared to return
+ Expression returns 0 values but is declared to return:
symbol
Warning: Too many values (test-scrutinizer-message-format.scm:XXX)
In `r-too-many-values-for-the', a toplevel procedure
- In expression
+ In expression:
(scheme#values 1 2)
Expression returns too many values.
- The expression returns 2 values but is declared to return
+ The expression returns 2 values but is declared to return:
symbol
Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
In `r-too-many-values-for-the', a toplevel procedure
- In expression
+ In expression:
(scheme#values 1 2)
Expression's declared and actual types do not match.
- The actual type is
+ The declared type is:
- fixnum
+ symbol
- The expression's declared type is
+ The actual type is:
- symbol
+ fixnum
Warning: Invalid assignment
In `r-toplevel-var-assignment-type-mismatch', a toplevel procedure
- In assignment
+ In assignment:
(set! foo 1)
Variable `foo' is assigned invalid value.
- The assigned value has type
+ The assigned value has this type:
fixnum
- The declared type of `foo' is
+ The declared type of `foo' is:
boolean
Warning: Deprecated identifier `deprecated-foo'
In `r-deprecated-identifier', a toplevel procedure
- In expression
+ In expression:
deprecated-foo
@@ -230,7 +240,7 @@ Warning: Deprecated identifier `deprecated-foo'
Warning: Deprecated identifier `deprecated-foo2'
In `r-deprecated-identifier', a toplevel procedure
- In expression
+ In expression:
deprecated-foo2
@@ -240,28 +250,43 @@ Warning: Deprecated identifier `deprecated-foo2'
Warning: Invalid assignment
At toplevel
- In assignment
+ In assignment:
(set! foo 1)
Variable `foo' is assigned invalid value.
- The assigned value has type
+ The assigned value has this type:
fixnum
- The declared type of `foo' is
+ The declared type of `foo' is:
boolean
-Warning: In `list-ref-negative-index', a toplevel procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#list-ref', index -1 is negative, which is never valid
+Warning: Negative list index (test-scrutinizer-message-format.scm:XXX)
+ In `list-ref-negative-index', a toplevel procedure
+ In procedure call:
+
+ (scheme#list-ref '() -1)
+
+ Procedure `list-ref' from module `scheme' is called with a negative index -1.
+
+Warning: List index out of range (test-scrutinizer-message-format.scm:XXX)
+ In `list-ref-out-of-range', a toplevel procedure
+ In procedure call:
-Warning: In `list-ref-out-of-range', a toplevel procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#list-ref', index 1 out of range for proper list of length 0
+ (scheme#list-ref '() 1)
-Warning: In `vector-ref-out-of-range', a toplevel procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#vector-ref', index -1 out of range for vector of length 0
+ Procedure `list-ref' from module `scheme' is called with index `1' for a list of length `0'.
+
+Warning: Negative vector index (test-scrutinizer-message-format.scm:XXX)
+ In `vector-ref-out-of-range', a toplevel procedure
+ In procedure call:
+
+ (scheme#vector-ref (scheme#vector) -1)
+
+ Procedure `vector-ref' from module `scheme' is called with a negative index -1.
Warning: In `zero-values-for-let', a toplevel procedure
expected a single result in `let' binding of `a', but received zero results
@@ -277,11 +302,11 @@ Warning: In `multiple-values-for-conditional', a toplevel procedure
Note: Test is always true (test-scrutinizer-message-format.scm:XXX)
In `multiple-values-for-conditional', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if (scheme#values 1 2) 1 (##core#undefined))
- Test condition has always true value of type
+ Test condition has always true value of type:
fixnum
@@ -292,13 +317,13 @@ Warning: Wrong number of arguments (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-proc-call-argument-count-mismatch', a local procedure
- In procedure call
+ In procedure call:
(scheme#cons '())
Procedure `cons' is called with 1 argument but 2 arguments are expected.
- Procedure `cons' from module `scheme' has type
+ Procedure `cons' from module `scheme' has this type:
('aXXX 'bXXX --> (pair 'aXXX 'bXXX))
@@ -306,19 +331,23 @@ Warning: Invalid argument (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-proc-call-argument-type-mismatch', a local procedure
- In procedure call
+ In procedure call:
(scheme#length 'symbol)
- Argument #1 to procedure `length' has invalid type
+ Argument #1 to procedure `length' has an invalid type:
symbol
- The expected type is
+ The expected type is:
list
- Procedure `length' from module `scheme' has type
+ This is the expression:
+
+ 'symbol
+
+ Procedure `length' from module `scheme' has this type:
(list -> fixnum)
@@ -326,17 +355,17 @@ Warning: Too many argument values (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-proc-call-argument-value-count', a local procedure
- In procedure call
+ In procedure call:
(scheme#list (chicken.time#cpu-time))
Argument #1 to procedure `list' returns 2 values but 1 is expected.
- It is a call to `cpu-time' from module `chicken.time' which has type
+ It is a call to `cpu-time' from module `chicken.time' which has this type:
(-> fixnum fixnum)
- This is the expression
+ This is the expression:
(chicken.time#cpu-time)
@@ -344,17 +373,17 @@ Warning: Not enough argument values (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-proc-call-argument-value-count', a local procedure
- In procedure call
+ In procedure call:
(scheme#vector (scheme#values))
Argument #1 to procedure `vector' does not return any values.
- It is a call to `values' from module `scheme' which has type
+ It is a call to `values' from module `scheme' which has this type:
(procedure (#!rest values) . *)
- This is the expression
+ This is the expression:
(scheme#values)
@@ -367,17 +396,17 @@ Warning: Branch values mismatch (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-cond-branch-value-count-mismatch', a local procedure
- In conditional expression
+ In conditional expression:
(if (the * 1) 1 (chicken.time#cpu-time))
The branches have different numbers of values.
- The true branch returns 1 value
+ The true branch returns 1 value:
1
- The false branch returns 2 values
+ The false branch returns 2 values:
(chicken.time#cpu-time)
@@ -385,33 +414,39 @@ Warning: Invalid procedure
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-invalid-called-procedure-type', a local procedure
- In procedure call
+ In procedure call:
(1 2)
- The procedure has invalid type
+ The procedure expression does not appear to be a callable.
- fixnum
+ This is the expression:
- The expected type is
+ 1
+
+ The expected type is:
(* -> *)
+ The actual type is:
+
+ fixnum
+
Note: Predicate is always true (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-pred-call-always-true', a local procedure
- In procedure call
+ In procedure call:
(scheme#list? '())
The predicate will always return true.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
null
@@ -419,17 +454,17 @@ Note: Predicate is always false (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-pred-call-always-false', a local procedure
- In procedure call
+ In procedure call:
(scheme#symbol? 1)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
fixnum
@@ -437,11 +472,11 @@ Note: Test is always true (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-cond-test-always-true', a local procedure
- In conditional expression
+ In conditional expression:
(if (scheme#length '()) 1 (##core#undefined))
- Test condition has always true value of type
+ Test condition has always true value of type:
fixnum
@@ -449,7 +484,7 @@ Note: Test is always false
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-cond-test-always-false', a local procedure
- In conditional expression
+ In conditional expression:
(if #f 1 (##core#undefined))
@@ -459,29 +494,29 @@ Warning: Type mismatch
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-type-mismatch-in-the', a local procedure
- In expression
+ In expression:
1
Expression's declared and actual types do not match.
- The actual type is
+ The declared type is:
- fixnum
+ symbol
- The expression's declared type is
+ The actual type is:
- symbol
+ fixnum
Warning: Not enough values (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-zero-values-for-the', a local procedure
- In expression
+ In expression:
(scheme#values)
- Expression returns 0 values but is declared to return
+ Expression returns 0 values but is declared to return:
symbol
@@ -489,13 +524,13 @@ Warning: Too many values (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-too-many-values-for-the', a local procedure
- In expression
+ In expression:
(scheme#values 1 2)
Expression returns too many values.
- The expression returns 2 values but is declared to return
+ The expression returns 2 values but is declared to return:
symbol
@@ -503,35 +538,35 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-too-many-values-for-the', a local procedure
- In expression
+ In expression:
(scheme#values 1 2)
Expression's declared and actual types do not match.
- The actual type is
+ The declared type is:
- fixnum
+ symbol
- The expression's declared type is
+ The actual type is:
- symbol
+ fixnum
Warning: Invalid assignment
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-toplevel-var-assignment-type-mismatch', a local procedure
- In assignment
+ In assignment:
(set! m#foo2 1)
- Variable `m#foo2' is assigned invalid value.
+ Variable `foo2' is assigned invalid value.
- The assigned value has type
+ The assigned value has this type:
fixnum
- The declared type of `m#foo2' is
+ The declared type of `foo2' from module `m' is:
boolean
@@ -539,7 +574,7 @@ Warning: Deprecated identifier `deprecated-foo'
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-deprecated-identifier', a local procedure
- In expression
+ In expression:
m#deprecated-foo
@@ -549,7 +584,7 @@ Warning: Deprecated identifier `deprecated-foo2'
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `r-deprecated-identifier', a local procedure
- In expression
+ In expression:
m#deprecated-foo2
@@ -557,20 +592,35 @@ Warning: Deprecated identifier `deprecated-foo2'
The suggested alternative is `foo'.
-Warning: In `m#toplevel-foo', a toplevel procedure
+Warning: Negative list index (test-scrutinizer-message-format.scm:XXX)
+ In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `list-ref-negative-index', a local procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#list-ref', index -1 is negative, which is never valid
+ In procedure call:
-Warning: In `m#toplevel-foo', a toplevel procedure
+ (scheme#list-ref '() -1)
+
+ Procedure `list-ref' from module `scheme' is called with a negative index -1.
+
+Warning: List index out of range (test-scrutinizer-message-format.scm:XXX)
+ In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `list-ref-out-of-range', a local procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#list-ref', index 1 out of range for proper list of length 0
+ In procedure call:
-Warning: In `m#toplevel-foo', a toplevel procedure
+ (scheme#list-ref '() 1)
+
+ Procedure `list-ref' from module `scheme' is called with index `1' for a list of length `0'.
+
+Warning: Negative vector index (test-scrutinizer-message-format.scm:XXX)
+ In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `vector-ref-out-of-range', a local procedure
- (test-scrutinizer-message-format.scm:XXX) in procedure call to `scheme#vector-ref', index -1 out of range for vector of length 0
+ In procedure call:
+
+ (scheme#vector-ref (scheme#vector) -1)
+
+ Procedure `vector-ref' from module `scheme' is called with a negative index -1.
Warning: In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
@@ -596,11 +646,11 @@ Note: Test is always true (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `multiple-values-for-conditional', a local procedure
- In conditional expression
+ In conditional expression:
(if (scheme#values 1 2) 1 (##core#undefined))
- Test condition has always true value of type
+ Test condition has always true value of type:
fixnum
@@ -613,17 +663,17 @@ Error: No typecase match (test-scrutinizer-message-format.scm:XXX)
In `m#toplevel-foo', a toplevel procedure
In `local-bar', a local procedure
In `fail-compiler-typecase', a local procedure
- In `compiler-typecase' expression
+ In `compiler-typecase' expression:
(compiler-typecase gXXX (symbol 1) (list 2) (else (##core#undefined)))
Tested expression does not match any case.
- The expression has type
+ The expression has this type:
fixnum
- The specified type cases are these
+ The specified type cases are these:
symbol
diff --git a/tests/scrutiny-2.expected b/tests/scrutiny-2.expected
index 0c126bf8..78500cdc 100644
--- a/tests/scrutiny-2.expected
+++ b/tests/scrutiny-2.expected
@@ -3,352 +3,352 @@
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#pair? p)
The predicate will always return true.
- Procedure `pair?' from module `scheme' is a predicate for
+ Procedure `pair?' from module `scheme' is a predicate for:
pair
- The given argument has type
+ The given argument has this type:
pair
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#pair? l)
The predicate will always return false.
- Procedure `pair?' from module `scheme' is a predicate for
+ Procedure `pair?' from module `scheme' is a predicate for:
pair
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#pair? n)
The predicate will always return false.
- Procedure `pair?' from module `scheme' is a predicate for
+ Procedure `pair?' from module `scheme' is a predicate for:
pair
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#pair? i)
The predicate will always return false.
- Procedure `pair?' from module `scheme' is a predicate for
+ Procedure `pair?' from module `scheme' is a predicate for:
pair
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#pair? f)
The predicate will always return false.
- Procedure `pair?' from module `scheme' is a predicate for
+ Procedure `pair?' from module `scheme' is a predicate for:
pair
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#list? l)
The predicate will always return true.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#list? n)
The predicate will always return true.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#list? i)
The predicate will always return false.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#list? f)
The predicate will always return false.
- Procedure `list?' from module `scheme' is a predicate for
+ Procedure `list?' from module `scheme' is a predicate for:
list
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#null? n)
The predicate will always return true.
- Procedure `null?' from module `scheme' is a predicate for
+ Procedure `null?' from module `scheme' is a predicate for:
null
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#null? l)
The predicate will always return true.
- Procedure `null?' from module `scheme' is a predicate for
+ Procedure `null?' from module `scheme' is a predicate for:
null
- The given argument has type
+ The given argument has this type:
null
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#null? p)
The predicate will always return false.
- Procedure `null?' from module `scheme' is a predicate for
+ Procedure `null?' from module `scheme' is a predicate for:
null
- The given argument has type
+ The given argument has this type:
pair
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#null? i)
The predicate will always return false.
- Procedure `null?' from module `scheme' is a predicate for
+ Procedure `null?' from module `scheme' is a predicate for:
null
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#null? f)
The predicate will always return false.
- Procedure `null?' from module `scheme' is a predicate for
+ Procedure `null?' from module `scheme' is a predicate for:
null
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#fixnum? i)
The predicate will always return true.
- Procedure `fixnum?' from module `chicken.base' is a predicate for
+ Procedure `fixnum?' from module `chicken.base' is a predicate for:
fixnum
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#fixnum? f)
The predicate will always return false.
- Procedure `fixnum?' from module `chicken.base' is a predicate for
+ Procedure `fixnum?' from module `chicken.base' is a predicate for:
fixnum
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#flonum? f)
The predicate will always return true.
- Procedure `flonum?' from module `chicken.base' is a predicate for
+ Procedure `flonum?' from module `chicken.base' is a predicate for:
float
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#flonum? i)
The predicate will always return false.
- Procedure `flonum?' from module `chicken.base' is a predicate for
+ Procedure `flonum?' from module `chicken.base' is a predicate for:
float
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#number? i)
The predicate will always return true.
- Procedure `number?' from module `scheme' is a predicate for
+ Procedure `number?' from module `scheme' is a predicate for:
number
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#number? f)
The predicate will always return true.
- Procedure `number?' from module `scheme' is a predicate for
+ Procedure `number?' from module `scheme' is a predicate for:
number
- The given argument has type
+ The given argument has this type:
float
Note: Predicate is always true (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#number? u)
The predicate will always return true.
- Procedure `number?' from module `scheme' is a predicate for
+ Procedure `number?' from module `scheme' is a predicate for:
number
- The given argument has type
+ The given argument has this type:
number
Note: Predicate is always false (scrutiny-tests-2.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#number? n)
The predicate will always return false.
- Procedure `number?' from module `scheme' is a predicate for
+ Procedure `number?' from module `scheme' is a predicate for:
number
- The given argument has type
+ The given argument has this type:
null
diff --git a/tests/scrutiny.expected b/tests/scrutiny.expected
index 8210da52..bf66e77d 100644
--- a/tests/scrutiny.expected
+++ b/tests/scrutiny.expected
@@ -7,165 +7,175 @@ Note: Test is always true
In `a', a toplevel procedure
In `b', a local procedure
In `c', a local procedure
- In conditional expression
+ In conditional expression:
(if x 1 2)
- Test condition has always true value of type
+ Test condition has always true value of type:
number
Note: Test is always true
In `b', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if x 1 2)
- Test condition has always true value of type
+ Test condition has always true value of type:
true
Warning: Branch values mismatch (scrutiny-tests.scm:XXX)
In `foo', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if x (scheme#values 1 2) (scheme#values 1 2 (scheme#+ (scheme#+ ...))))
The branches have different numbers of values.
- The true branch returns 2 values
+ The true branch returns 2 values:
(scheme#values 1 2)
- The false branch returns 3 values
+ The false branch returns 3 values:
(scheme#values 1 2 (scheme#+ (scheme#+ (scheme#+ ...))))
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(bar 3 'a)
- Argument #2 to procedure `bar' has invalid type
+ Argument #2 to procedure `bar' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `bar' has type
+ This is the expression:
+
+ 'a
+
+ Procedure `bar' has this type:
(#!rest number -> number)
Warning: Wrong number of arguments (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string?)
Procedure `string?' is called with 0 arguments but 1 argument is expected.
- Procedure `string?' from module `scheme' has type
+ Procedure `string?' from module `scheme' has this type:
(* -> boolean)
Warning: Too many argument values (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#print (scheme#values 1 2))
Argument #1 to procedure `print' returns 2 values but 1 is expected.
- It is a call to `values' from module `scheme' which has type
+ It is a call to `values' from module `scheme' which has this type:
(procedure (#!rest values) . *)
- This is the expression
+ This is the expression:
(scheme#values 1 2)
Warning: Not enough argument values (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#print (scheme#values))
Argument #1 to procedure `print' does not return any values.
- It is a call to `values' from module `scheme' which has type
+ It is a call to `values' from module `scheme' which has this type:
(procedure (#!rest values) . *)
- This is the expression
+ This is the expression:
(scheme#values)
Warning: Invalid procedure (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(x)
- The procedure has invalid type
-
- fixnum
+ Variable `x18' is not a procedure.
- The expected type is
+ It has this type:
- (-> *)
+ fixnum
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#+ 'a 'b)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ 'a
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#+ 'a 'b)
- Argument #2 to procedure `+' has invalid type
+ Argument #2 to procedure `+' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ 'b
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid assignment
At toplevel
- In assignment
+ In assignment:
(set! scheme#car 33)
- Variable `scheme#car' is assigned invalid value.
+ Variable `car' is assigned invalid value.
- The assigned value has type
+ The assigned value has this type:
fixnum
- The declared type of `scheme#car' is
+ The declared type of `car' from module `scheme' is:
((pair 'a335 *) -> 'a335)
@@ -174,267 +184,309 @@ Warning: At toplevel
Warning: Invalid procedure
At toplevel
- In procedure call
+ In procedure call:
(gXXX)
- The procedure has invalid type
-
- fixnum
+ Variable `gXXX' is not a procedure.
- The expected type is
+ It has this type:
- (-> *)
+ fixnum
Note: Test is always true
In `foo', a toplevel procedure
- In conditional expression
+ In conditional expression:
(if bar 3 (##core#undefined))
- Test condition has always true value of type
+ Test condition has always true value of type:
(-> *)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo2', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#string-append x "abc")
- Argument #1 to procedure `string-append' has invalid type
+ Argument #1 to procedure `string-append' has an invalid type:
number
- The expected type is
+ The expected type is:
string
- Procedure `string-append' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `string-append' from module `scheme' has this type:
(#!rest string -> string)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(foo3 99)
- Argument #1 to procedure `foo3' has invalid type
+ Argument #1 to procedure `foo3' has an invalid type:
fixnum
- The expected type is
+ The expected type is:
string
- Procedure `foo3' has type
+ This is the expression:
+
+ 99
+
+ Procedure `foo3' has this type:
(string -> string)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo4', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#+ x 1)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo5', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#+ x 3)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo6', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#+ x 3)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#+ x 1)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In procedure call
+ In procedure call:
(foo9 x)
- Argument #1 to procedure `foo9' has invalid type
+ Argument #1 to procedure `foo9' has an invalid type:
number
- The expected type is
+ The expected type is:
string
- Procedure `foo9' has type
+ This is the expression:
+
+ x
+
+ Procedure `foo9' has this type:
(string -> symbol)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#+ x 1)
- Argument #1 to procedure `+' has invalid type
+ Argument #1 to procedure `+' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Type mismatch (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In expression
+ In expression:
(scheme#substring x 0 10)
Expression's declared and actual types do not match.
- The actual type is
+ The declared type is:
- string
+ pair
- The expression's declared type is
+ The actual type is:
- pair
+ string
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#string-append (the pair (scheme#substring x 0 10)))
- Argument #1 to procedure `string-append' has invalid type
+ Argument #1 to procedure `string-append' has an invalid type:
pair
- The expected type is
+ The expected type is:
string
- Procedure `string-append' from module `scheme' has type
+ This is the expression:
+
+ (the pair (scheme#substring x 0 10))
+
+ Procedure `string-append' from module `scheme' has this type:
(#!rest string -> string)
Warning: Too many values (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In expression
+ In expression:
(scheme#values 1 2)
Expression returns too many values.
- The expression returns 2 values but is declared to return
+ The expression returns 2 values but is declared to return:
*
Warning: Not enough values (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In expression
+ In expression:
(scheme#values)
- Expression returns 0 values but is declared to return
+ Expression returns 0 values but is declared to return:
*
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo10', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#* x y)
- Argument #1 to procedure `*' has invalid type
+ Argument #1 to procedure `*' has an invalid type:
string
- The expected type is
+ The expected type is:
number
- Procedure `*' from module `scheme' has type
+ This is the expression:
+
+ x
+
+ Procedure `*' from module `scheme' has this type:
(#!rest number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `foo#blabla', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#+ 1 'x)
- Argument #2 to procedure `+' has invalid type
+ Argument #2 to procedure `+' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `+' from module `scheme' has type
+ This is the expression:
+
+ 'x
+
+ Procedure `+' from module `scheme' has this type:
(#!rest number -> number)
Warning: Deprecated identifier `deprecated-procedure'
At toplevel
- In expression
+ In expression:
deprecated-procedure
@@ -442,7 +494,7 @@ Warning: Deprecated identifier `deprecated-procedure'
Warning: Deprecated identifier `another-deprecated-procedure'
At toplevel
- In expression
+ In expression:
another-deprecated-procedure
@@ -452,482 +504,641 @@ Warning: Deprecated identifier `another-deprecated-procedure'
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(apply1 scheme#+ (scheme#list 'a 2 3))
- Argument #2 to procedure `apply1' has invalid type
+ Argument #2 to procedure `apply1' has an invalid type:
(list symbol fixnum fixnum)
- The expected type is
+ The expected type is:
(list-of number)
- Procedure `apply1' has type
+ It is a call to `list' from module `scheme' which has this type:
+
+ (#!rest * -> list)
+
+ This is the expression:
+
+ (scheme#list 'a 2 3)
+
+ Procedure `apply1' has this type:
((#!rest 'a143 -> 'b144) (list-of 'a143) -> 'b144)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(apply1 scheme#+ (scheme#cons 'a (scheme#cons 2 (scheme#cons 3 ...))))
- Argument #2 to procedure `apply1' has invalid type
+ Argument #2 to procedure `apply1' has an invalid type:
(list symbol fixnum fixnum)
- The expected type is
+ The expected type is:
(list-of number)
- Procedure `apply1' has type
+ It is a call to `cons' from module `scheme' which has this type:
+
+ ('a331 'b332 -> (pair 'a331 'b332))
+
+ This is the expression:
+
+ (scheme#cons 'a (scheme#cons 2 (scheme#cons 3 '())))
+
+ Procedure `apply1' has this type:
((#!rest 'a143 -> 'b144) (list-of 'a143) -> 'b144)
Note: Predicate is always true (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(chicken.base#fixnum? x)
The predicate will always return true.
- Procedure `fixnum?' from module `chicken.base' is a predicate for
+ Procedure `fixnum?' from module `chicken.base' is a predicate for:
fixnum
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#symbol? x)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
(or char string)
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? x)
The predicate will always return false.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
(not (or char string))
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(char-or-string? x)
The predicate will always return false.
- Procedure `char-or-string?' is a predicate for
+ Procedure `char-or-string?' is a predicate for:
(or char string)
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#symbol? x)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
(or char string)
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? x)
The predicate will always return false.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
fixnum
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#symbol? x)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
char
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? x)
The predicate will always return false.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
symbol
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#symbol? x)
The predicate will always return false.
- Procedure `symbol?' from module `scheme' is a predicate for
+ Procedure `symbol?' from module `scheme' is a predicate for:
symbol
- The given argument has type
+ The given argument has this type:
(or char string)
Note: Predicate is always false (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? x)
The predicate will always return false.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
symbol
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(f (scheme#list))
- Argument #1 to procedure `f' has invalid type
+ Argument #1 to procedure `f' has an invalid type:
null
- The expected type is
+ The expected type is:
pair
- Procedure `f' has type
+ It is a call to `list' from module `scheme' which has this type:
+
+ (#!rest * -> list)
+
+ This is the expression:
+
+ (scheme#list)
+
+ Procedure `f' has this type:
(pair -> *)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(f (scheme#list 1))
- Argument #1 to procedure `f' has invalid type
+ Argument #1 to procedure `f' has an invalid type:
(list fixnum)
- The expected type is
+ The expected type is:
null
- Procedure `f' has type
+ It is a call to `list' from module `scheme' which has this type:
+
+ (#!rest * -> list)
+
+ This is the expression:
+
+ (scheme#list 1)
+
+ Procedure `f' has this type:
(null -> *)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(f (scheme#cons 1 2))
- Argument #1 to procedure `f' has invalid type
+ Argument #1 to procedure `f' has an invalid type:
(pair fixnum fixnum)
- The expected type is
+ The expected type is:
list
- Procedure `f' has type
+ It is a call to `cons' from module `scheme' which has this type:
+
+ ('a331 'b332 -> (pair 'a331 'b332))
+
+ This is the expression:
+
+ (scheme#cons 1 2)
+
+ Procedure `f' has this type:
(list -> *)
-Warning: In `vector-ref-warn1', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-ref', index -1 out of range for vector of length 3
+Warning: Negative vector index (scrutiny-tests.scm:XXX)
+ In `vector-ref-warn1', a toplevel procedure
+ In procedure call:
-Warning: In `vector-ref-warn2', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-ref', index 3 out of range for vector of length 3
+ (scheme#vector-ref v1 -1)
-Warning: In `vector-ref-warn3', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-ref', index 4 out of range for vector of length 3
+ Procedure `vector-ref' from module `scheme' is called with a negative index -1.
+
+Warning: Vector index out of range (scrutiny-tests.scm:XXX)
+ In `vector-ref-warn2', a toplevel procedure
+ In procedure call:
+
+ (scheme#vector-ref v1 3)
+
+ Procedure `vector-ref' from module `scheme' is called with index `3' for a vector of length `3'.
+
+Warning: Vector index out of range (scrutiny-tests.scm:XXX)
+ In `vector-ref-warn3', a toplevel procedure
+ In procedure call:
+
+ (scheme#vector-ref v1 4)
+
+ Procedure `vector-ref' from module `scheme' is called with index `4' for a vector of length `3'.
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `vector-ref-standard-warn1', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#vector-ref v1 'bad)
- Argument #2 to procedure `vector-ref' has invalid type
+ Argument #2 to procedure `vector-ref' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `vector-ref' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `vector-ref' from module `scheme' has this type:
((vector-of 'a384) fixnum -> 'a384)
-Warning: In `vector-set!-warn1', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-set!', index -1 out of range for vector of length 3
+Warning: Negative vector index (scrutiny-tests.scm:XXX)
+ In `vector-set!-warn1', a toplevel procedure
+ In procedure call:
-Warning: In `vector-set!-warn2', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-set!', index 3 out of range for vector of length 3
+ (scheme#vector-set! v1 -1 'whatever)
-Warning: In `vector-set!-warn3', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-set!', index 4 out of range for vector of length 3
+ Procedure `vector-set!' from module `scheme' is called with a negative index -1.
+
+Warning: Vector index out of range (scrutiny-tests.scm:XXX)
+ In `vector-set!-warn2', a toplevel procedure
+ In procedure call:
+
+ (scheme#vector-set! v1 3 'whatever)
+
+ Procedure `vector-set!' from module `scheme' is called with index `3' for a vector of length `3'.
+
+Warning: Vector index out of range (scrutiny-tests.scm:XXX)
+ In `vector-set!-warn3', a toplevel procedure
+ In procedure call:
+
+ (scheme#vector-set! v1 4 'whatever)
+
+ Procedure `vector-set!' from module `scheme' is called with index `4' for a vector of length `3'.
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `vector-set!-standard-warn1', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#vector-set! v1 'bad 'whatever)
- Argument #2 to procedure `vector-set!' has invalid type
+ Argument #2 to procedure `vector-set!' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `vector-set!' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `vector-set!' from module `scheme' has this type:
(vector fixnum * -> undefined)
-Warning: In `list-ref-warn1', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index -1 is negative, which is never valid
+Warning: Negative list index (scrutiny-tests.scm:XXX)
+ In `list-ref-warn1', a toplevel procedure
+ In procedure call:
+
+ (scheme#list-ref l1 -1)
+
+ Procedure `list-ref' from module `scheme' is called with a negative index -1.
+
+Warning: Negative list index (scrutiny-tests.scm:XXX)
+ In `list-ref-warn2', a toplevel procedure
+ In procedure call:
+
+ (scheme#list-ref l2 -1)
+
+ Procedure `list-ref' from module `scheme' is called with a negative index -1.
+
+Warning: Negative list index (scrutiny-tests.scm:XXX)
+ In `list-ref-warn3', a toplevel procedure
+ In procedure call:
+
+ (scheme#list-ref l3 -1)
-Warning: In `list-ref-warn2', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index -1 is negative, which is never valid
+ Procedure `list-ref' from module `scheme' is called with a negative index -1.
-Warning: In `list-ref-warn3', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index -1 is negative, which is never valid
+Warning: List index out of range (scrutiny-tests.scm:XXX)
+ In `list-ref-warn4', a toplevel procedure
+ In procedure call:
-Warning: In `list-ref-warn4', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index 3 out of range for proper list of length 3
+ (scheme#list-ref l1 3)
-Warning: In `list-ref-warn5', a toplevel procedure
- (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index 4 out of range for proper list of length 3
+ Procedure `list-ref' from module `scheme' is called with index `3' for a list of length `3'.
+
+Warning: List index out of range (scrutiny-tests.scm:XXX)
+ In `list-ref-warn5', a toplevel procedure
+ In procedure call:
+
+ (scheme#list-ref l1 4)
+
+ Procedure `list-ref' from module `scheme' is called with index `4' for a list of length `3'.
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-standard-warn1', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list-ref l1 'bad)
- Argument #2 to procedure `list-ref' has invalid type
+ Argument #2 to procedure `list-ref' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `list-ref' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `list-ref' from module `scheme' has this type:
((list-of 'a366) fixnum -> 'a366)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-standard-warn2', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list-ref l1 'bad)
- Argument #2 to procedure `list-ref' has invalid type
+ Argument #2 to procedure `list-ref' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `list-ref' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `list-ref' from module `scheme' has this type:
((list-of 'a366) fixnum -> 'a366)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-standard-warn3', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list-ref l2 'bad)
- Argument #2 to procedure `list-ref' has invalid type
+ Argument #2 to procedure `list-ref' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `list-ref' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `list-ref' from module `scheme' has this type:
((list-of 'a366) fixnum -> 'a366)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-standard-warn4', a toplevel procedure
- In procedure call
+ In procedure call:
(scheme#list-ref l2 'bad)
- Argument #2 to procedure `list-ref' has invalid type
+ Argument #2 to procedure `list-ref' has an invalid type:
symbol
- The expected type is
+ The expected type is:
fixnum
- Procedure `list-ref' from module `scheme' has type
+ This is the expression:
+
+ 'bad
+
+ Procedure `list-ref' from module `scheme' has this type:
((list-of 'a366) fixnum -> 'a366)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-type-warn1', a toplevel procedure
- In procedure call
+ In procedure call:
(chicken.base#add1 (scheme#list-ref l1 1))
- Argument #1 to procedure `add1' has invalid type
+ Argument #1 to procedure `add1' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `add1' from module `chicken.base' has type
+ It is a call to `list-ref' from module `scheme' which has this type:
+
+ ((list-of 'a366) fixnum -> 'a366)
+
+ This is the expression:
+
+ (scheme#list-ref l1 1)
+
+ Procedure `add1' from module `chicken.base' has this type:
(number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-type-warn2', a toplevel procedure
- In procedure call
+ In procedure call:
(chicken.base#add1 (scheme#list-ref l2 1))
- Argument #1 to procedure `add1' has invalid type
+ Argument #1 to procedure `add1' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `add1' from module `chicken.base' has type
+ It is a call to `list-ref' from module `scheme' which has this type:
+
+ ((list-of 'a366) fixnum -> 'a366)
+
+ This is the expression:
+
+ (scheme#list-ref l2 1)
+
+ Procedure `add1' from module `chicken.base' has this type:
(number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `list-ref-type-warn3', a toplevel procedure
- In procedure call
+ In procedure call:
(chicken.base#add1 (scheme#list-ref l3 1))
- Argument #1 to procedure `add1' has invalid type
+ Argument #1 to procedure `add1' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `add1' from module `chicken.base' has type
+ It is a call to `list-ref' from module `scheme' which has this type:
+
+ ((list-of 'a366) fixnum -> 'a366)
+
+ This is the expression:
+
+ (scheme#list-ref l3 1)
+
+ Procedure `add1' from module `chicken.base' has this type:
(number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `append-result-type-warn1', a toplevel procedure
- In procedure call
+ In procedure call:
(chicken.base#add1 (scheme#list-ref l1 1))
- Argument #1 to procedure `add1' has invalid type
+ Argument #1 to procedure `add1' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `add1' from module `chicken.base' has type
+ It is a call to `list-ref' from module `scheme' which has this type:
+
+ ((list-of 'a366) fixnum -> 'a366)
+
+ This is the expression:
+
+ (scheme#list-ref l1 1)
+
+ Procedure `add1' from module `chicken.base' has this type:
(number -> number)
Warning: Invalid argument (scrutiny-tests.scm:XXX)
In `append-result-type-warn2', a toplevel procedure
- In procedure call
+ In procedure call:
(chicken.base#add1 (scheme#list-ref l3 3))
- Argument #1 to procedure `add1' has invalid type
+ Argument #1 to procedure `add1' has an invalid type:
symbol
- The expected type is
+ The expected type is:
number
- Procedure `add1' from module `chicken.base' has type
+ It is a call to `list-ref' from module `scheme' which has this type:
+
+ ((list-of 'a366) fixnum -> 'a366)
+
+ This is the expression:
+
+ (scheme#list-ref l3 3)
+
+ Procedure `add1' from module `chicken.base' has this type:
(number -> number)
diff --git a/tests/specialization.expected b/tests/specialization.expected
index 20a2e1d4..57ce4feb 100644
--- a/tests/specialization.expected
+++ b/tests/specialization.expected
@@ -3,49 +3,49 @@
Note: Predicate is always true (specialization-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? a)
The predicate will always return true.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
string
Note: Test is always true (specialization-tests.scm:XXX)
At toplevel
- In conditional expression
+ In conditional expression:
(if (scheme#string? a) 'ok 'no)
- Test condition has always true value of type
+ Test condition has always true value of type:
true
Note: Predicate is always false (specialization-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#string? a)
The predicate will always return false.
- Procedure `string?' from module `scheme' is a predicate for
+ Procedure `string?' from module `scheme' is a predicate for:
string
- The given argument has type
+ The given argument has this type:
symbol
Note: Test is always false (specialization-tests.scm:XXX)
At toplevel
- In conditional expression
+ In conditional expression:
(if (scheme#string? a) 'ok 'no)
@@ -53,52 +53,52 @@ Note: Test is always false (specialization-tests.scm:XXX)
Note: Predicate is always true (specialization-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#input-port? p)
The predicate will always return true.
- Procedure `input-port?' from module `scheme' is a predicate for
+ Procedure `input-port?' from module `scheme' is a predicate for:
input-port
- The given argument has type
+ The given argument has this type:
input/output-port
Note: Test is always true (specialization-tests.scm:XXX)
At toplevel
- In conditional expression
+ In conditional expression:
(if (scheme#input-port? p) 'ok 'no)
- Test condition has always true value of type
+ Test condition has always true value of type:
true
Note: Predicate is always true (specialization-tests.scm:XXX)
At toplevel
- In procedure call
+ In procedure call:
(scheme#output-port? p)
The predicate will always return true.
- Procedure `output-port?' from module `scheme' is a predicate for
+ Procedure `output-port?' from module `scheme' is a predicate for:
output-port
- The given argument has type
+ The given argument has this type:
input/output-port
Note: Test is always true (specialization-tests.scm:XXX)
At toplevel
- In conditional expression
+ In conditional expression:
(if (scheme#output-port? p) 'ok 'no)
- Test condition has always true value of type
+ Test condition has always true value of type:
true
Trap