all scrutinizer messages added by megane on Wed Nov 28 11:51:06 2018

     1	(import (chicken time))
     2	(: deprecated-foo deprecated)
     3	(define deprecated-foo 1)
     4	(: deprecated-foo2 (deprecated foo))
     5	(define deprecated-foo2 2)
     6	(: foo boolean)
     7	(define foo #t)
     8	
     9	(define (r-proc-call-argument-count-mismatch) (cons '()))
    10	(define (r-proc-call-argument-type-mismatch) (length 'symbol))
    11	(define (r-proc-call-argument-value-count) (list (cpu-time)) (vector (values)))
    12	(define (r-cond-branch-value-count-mismatch) (if (the * 1) 1 (cpu-time)))
    13	(define (r-invalid-called-procedure-type) (1 2))
    14	(define (r-pred-call-always-true) (list? '()))
    15	(define (r-pred-call-always-false) (symbol? 1))
    16	(define (r-cond-test-always-true) (if 'symbol 1))
    17	(define (r-cond-test-always-false) (if #f 1))
    18	(define (r-type-mismatch-in-the) (the symbol 1))
    19	(define (r-zero-values-for-the) (the symbol (values)))
    20	(define (r-too-many-values-for-the) (the symbol (values 1 2)))
    21	(define (r-toplevel-var-assignment-type-mismatch) (set! foo 1))
    22	(define (r-deprecated-identifier) (list deprecated-foo) (vector deprecated-foo2))
    23	
    24	(set! foo 1)
    25	
    26	(define (append-invalid-arg) (append 1 (list 1)))
    27	
    28	;; (define (fail-compiler-typecase) (compiler-typecase 1 (symbol 1) (list 2)))
    29	
    30	(module
    31	 m
    32	 ()
    33	 (import scheme)
    34	 (import (chicken base) (chicken type) (chicken time))
    35	
    36	 (: foo2 boolean)
    37	 (define foo2 #t)
    38	 (: deprecated-foo deprecated)
    39	 (define deprecated-foo 1)
    40	 (: deprecated-foo2 (deprecated foo))
    41	 (define deprecated-foo2 2)
    42	
    43	 (define (toplevel-foo)
    44	   (define (local-bar)
    45	     (define (r-proc-call-argument-count-mismatch) (cons '()))
    46	     (define (r-proc-call-argument-type-mismatch) (string-length add1))
    47	     (define (r-proc-call-argument-value-count) (list (cpu-time)) (vector (values)))
    48	     (define (r-cond-branch-value-count-mismatch) (if (the * 1) 1 (cpu-time)))
    49	     (define (r-invalid-called-procedure-type)
    50	       (define (variable) (foo2 2))
    51	       (define (non-variable) (1 2)))
    52	     (define (r-pred-call-always-true) (list? '()))
    53	     (define (r-pred-call-always-false) (symbol? 1))
    54	     (define (r-cond-test-always-true) (if (length '()) 1))
    55	     (define (r-cond-test-always-false) (if #f 1))
    56	     (define (r-type-mismatch-in-the) (the symbol 1))
    57	     (define (r-toplevel-var-assignment-type-mismatch) (set! foo2 1))
    58	     (define (r-deprecated-identifier) (list deprecated-foo) (vector deprecated-foo2))
    59	
    60	     (define (r-zero-values-for-the) (the symbol (values)))
    61	     (define (zero-values-for-assignment) (set! foo (values)))
    62	     (define (zero-values-for-conditional) (if (values) 1))
    63	     (define (zero-values-for-let) (let ((a (values))) a))
    64	
    65	     (define (r-too-many-values-for-the) (the symbol (values 1 2)))
    66	     (define (too-many-values-for-assignment) (set! foo (values #t 2)))
    67	     (define (too-many-values-for-conditional) (if (values (the * 1) 2) 1))
    68	     (define (too-many-values-for-let) (let ((a (values 1 2))) a))
    69	
    70	     (define (r-let-value-count-invalid)
    71	       (define (zero-values-for-let) (let ((a (values))) a))
    72	       (define (too-many-values-for-let) (let ((a (values 1 2))) a)))
    73	     (define (r-conditional-value-count-invalid)
    74	       (define (zero-values-for-conditional) (if (values) 1))
    75	       (define (too-many-values-for-conditional) (if (values (the * 1) 2) 1)))
    76	     (define (r-assignment-value-count-invalid)
    77	       (define (zero-values-for-assignment) (set! foo (values)))
    78	       (define (too-many-values-for-assignment) (set! foo (values #t 2))))
    79	
    80	     (define (append-invalid-arg) (append 1 (list 1)))
    81	     (define (vector-list-out-of-range)
    82	       (define (list-ref-negative-index) (list-ref '() -1))
    83	       (define (list-ref-out-of-range) (list-ref '() 1))
    84	       (define (vector-ref-out-of-range) (vector-ref (vector) -1)))
    85	
    86	     (define (fail-compiler-typecase) (compiler-typecase 1 (symbol 1) (list 2)))
    87	     )))
    88	----------------------------------------
    89	
    90	Warning: literal in operator position: (1 2)
    91	
    92	Warning: literal in operator position: (1 2)
    93	
    94	Warning: Wrong number of arguments.
    95	    In file `test-scrutinizer-message-format.scm:9'
    96	    In procedure `r-proc-call-argument-count-mismatch' (toplevel),
    97	    In procedure call:
    98	
    99	      (scheme#cons '())
   100	
   101	  Procedure `cons' is called with 1 argument but 2 arguments is expected.
   102	
   103	  Procedure `cons' from module `scheme' has this type:
   104	
   105	    ('a 'b --> (pair 'a 'b))
   106	
   107	Warning: Invalid argument type.
   108	    In file `test-scrutinizer-message-format.scm:10'
   109	    In procedure `r-proc-call-argument-type-mismatch' (toplevel),
   110	    In procedure call:
   111	
   112	      (scheme#length 'symbol)
   113	
   114	  Argument #1 to procedure `length' has invalid type:
   115	
   116	    symbol
   117	
   118	  The expected type is:
   119	
   120	    list
   121	
   122	  This is the expression:
   123	
   124	    'symbol
   125	
   126	  Procedure `length' from module `scheme' has this type:
   127	
   128	    (list -> fixnum)
   129	
   130	Warning: Too many argument values.
   131	    In file `test-scrutinizer-message-format.scm:11'
   132	    In procedure `r-proc-call-argument-value-count' (toplevel),
   133	    In procedure call:
   134	
   135	      (scheme#list (chicken.time#cpu-time))
   136	
   137	  Argument expression #1 to procedure `list' returns 2 values but 1 is expected.
   138	
   139	  The expression is a call to `cpu-time' from module `chicken.time' which has this type:
   140	
   141	    (-> fixnum fixnum)
   142	
   143	  This is the expression:
   144	
   145	    (chicken.time#cpu-time)
   146	
   147	Warning: No values returned for argument.
   148	    In file `test-scrutinizer-message-format.scm:11'
   149	    In procedure `r-proc-call-argument-value-count' (toplevel),
   150	    In procedure call:
   151	
   152	      (scheme#vector (scheme#values))
   153	
   154	  Argument expression #1 to procedure `vector' does not return any values.
   155	
   156	  The expression is a call to `values' from module `scheme' which has this type:
   157	
   158	    (procedure scheme#values (&rest values) . *)
   159	
   160	  This is the expression:
   161	
   162	    (scheme#values)
   163	
   164	Warning: Branch value count mismatch.
   165	    In file `test-scrutinizer-message-format.scm:12'
   166	    In procedure `r-cond-branch-value-count-mismatch' (toplevel),
   167	    In conditional expression:
   168	
   169	      (if (the * 1) 1 (chicken.time#cpu-time))
   170	
   171	  The branches have different number of returned values.
   172	
   173	  This true branch returns 1 value:
   174	
   175	    1
   176	
   177	  This false branch returns 2 values:
   178	
   179	    (chicken.time#cpu-time)
   180	
   181	Warning: Invalid procedure.
   182	    In procedure `r-invalid-called-procedure-type' (toplevel),
   183	    In procedure call:
   184	
   185	      (1 2)
   186	
   187	  The procedure expression does not appear to be a callable.
   188	
   189	  The expected type is:
   190	
   191	    (* -> *)
   192	
   193	  The actual type is:
   194	
   195	    fixnum
   196	
   197	  This is the expression:
   198	
   199	    1
   200	
   201	Note: Predicate always true.
   202	    In file `test-scrutinizer-message-format.scm:14'
   203	    In procedure `r-pred-call-always-true' (toplevel),
   204	    In predicate call:
   205	
   206	      (scheme#list? '())
   207	
   208	  Predicate call will always return true.
   209	
   210	  Procedure `list?' from module `scheme' is a predicate for:
   211	
   212	    list
   213	
   214	  The given argument has this type:
   215	
   216	    null
   217	
   218	Note: Predicate always false.
   219	    In file `test-scrutinizer-message-format.scm:15'
   220	    In procedure `r-pred-call-always-false' (toplevel),
   221	    In predicate call:
   222	
   223	      (scheme#symbol? 1)
   224	
   225	  Predicate call will always return false.
   226	
   227	  Procedure `symbol?' from module `scheme' is a predicate for:
   228	
   229	    symbol
   230	
   231	  The given argument has this type:
   232	
   233	    fixnum
   234	
   235	Note: Test always true.
   236	    In procedure `r-cond-test-always-true' (toplevel),
   237	    In conditional expression:
   238	
   239	      (if 'symbol 1 (##core#undefined))
   240	
   241	  Test condition has always true value of type:
   242	
   243	    symbol
   244	
   245	Note: Test always false.
   246	    In procedure `r-cond-test-always-false' (toplevel),
   247	    In conditional expression:
   248	
   249	      (if #f 1 (##core#undefined))
   250	
   251	  Test condition is always false.
   252	
   253	Warning: Type mismatch.
   254	    In procedure `r-type-mismatch-in-the' (toplevel),
   255	    In expression:
   256	
   257	      1
   258	
   259	  Expression's declared and actual types do not match.
   260	
   261	  The declared type is:
   262	
   263	    symbol
   264	
   265	  The actual type is:
   266	
   267	    fixnum
   268	
   269	Warning: Zero values returned.
   270	    In file `test-scrutinizer-message-format.scm:19'
   271	    In procedure `r-zero-values-for-the' (toplevel),
   272	    In expression:
   273	
   274	      (scheme#values)
   275	
   276	  Expression returns 0 values but is declared to return:
   277	
   278	    symbol
   279	
   280	Warning: Too many values returned.
   281	    In file `test-scrutinizer-message-format.scm:20'
   282	    In procedure `r-too-many-values-for-the' (toplevel),
   283	    In expression:
   284	
   285	      (scheme#values 1 2)
   286	
   287	  Expression returns too many values.
   288	
   289	  The expression returns 2 values but is declared to return:
   290	
   291	    symbol
   292	
   293	Warning: Type mismatch.
   294	    In file `test-scrutinizer-message-format.scm:20'
   295	    In procedure `r-too-many-values-for-the' (toplevel),
   296	    In expression:
   297	
   298	      (scheme#values 1 2)
   299	
   300	  Expression's declared and actual types do not match.
   301	
   302	  The declared type is:
   303	
   304	    symbol
   305	
   306	  The actual type is:
   307	
   308	    fixnum
   309	
   310	Warning: Invalid assigned value type.
   311	    In procedure `r-toplevel-var-assignment-type-mismatch' (toplevel),
   312	    In assignment:
   313	
   314	      (set! foo 1)
   315	
   316	  Variable `foo' is assigned invalid value.
   317	
   318	  The assigned value has this type:
   319	
   320	    fixnum
   321	
   322	  The declared type of `foo' is:
   323	
   324	    boolean
   325	
   326	Warning: Deprecated identifier `deprecated-foo'.
   327	    In procedure `r-deprecated-identifier' (toplevel),
   328	    In expression:
   329	
   330	      deprecated-foo
   331	
   332	  Use of deprecated `deprecated-foo'.
   333	
   334	Warning: Deprecated identifier `deprecated-foo2'.
   335	    In procedure `r-deprecated-identifier' (toplevel),
   336	    In expression:
   337	
   338	      deprecated-foo2
   339	
   340	  Use of deprecated `deprecated-foo2'.
   341	
   342	  The suggested replacement is `foo'.
   343	
   344	Warning: Invalid assigned value type.
   345	    At toplevel,
   346	    In assignment:
   347	
   348	      (set! foo 1)
   349	
   350	  Variable `foo' is assigned invalid value.
   351	
   352	  The assigned value has this type:
   353	
   354	    fixnum
   355	
   356	  The declared type of `foo' is:
   357	
   358	    boolean
   359	
   360	Warning: Invalid argument type.
   361	    In file `test-scrutinizer-message-format.scm:26'
   362	    In procedure `append-invalid-arg' (toplevel),
   363	    In procedure call:
   364	
   365	      (scheme#append 1 (scheme#list 1))
   366	
   367	  Argument #1 to procedure `append' has invalid type:
   368	
   369	    fixnum
   370	
   371	  The expected type is:
   372	
   373	    list
   374	
   375	  This is the expression:
   376	
   377	    1
   378	
   379	  Procedure `append' from module `scheme' has this type:
   380	
   381	    (&rest * -> *)
   382	
   383	Warning: Wrong number of arguments.
   384	    In file `test-scrutinizer-message-format.scm:45'
   385	    In module `m',
   386	    In procedure `toplevel-foo' (toplevel),
   387	    In procedure `local-bar',
   388	    In procedure `r-proc-call-argument-count-mismatch',
   389	    In procedure call:
   390	
   391	      (scheme#cons '())
   392	
   393	  Procedure `cons' is called with 1 argument but 2 arguments is expected.
   394	
   395	  Procedure `cons' from module `scheme' has this type:
   396	
   397	    ('a 'b --> (pair 'a 'b))
   398	
   399	Warning: Invalid argument type.
   400	    In file `test-scrutinizer-message-format.scm:46'
   401	    In module `m',
   402	    In procedure `toplevel-foo' (toplevel),
   403	    In procedure `local-bar',
   404	    In procedure `r-proc-call-argument-type-mismatch',
   405	    In procedure call:
   406	
   407	      (scheme#string-length chicken.base#add1)
   408	
   409	  Argument #1 to procedure `string-length' has invalid type:
   410	
   411	    Named procedure `chicken.base#add1'
   412	
   413	    (number -> number)
   414	
   415	  The expected type is:
   416	
   417	    string
   418	
   419	  This is the expression:
   420	
   421	    chicken.base#add1
   422	
   423	  Procedure `string-length' from module `scheme' has this type:
   424	
   425	    (string -> fixnum)
   426	
   427	Warning: Too many argument values.
   428	    In file `test-scrutinizer-message-format.scm:47'
   429	    In module `m',
   430	    In procedure `toplevel-foo' (toplevel),
   431	    In procedure `local-bar',
   432	    In procedure `r-proc-call-argument-value-count',
   433	    In procedure call:
   434	
   435	      (scheme#list (chicken.time#cpu-time))
   436	
   437	  Argument expression #1 to procedure `list' returns 2 values but 1 is expected.
   438	
   439	  The expression is a call to `cpu-time' from module `chicken.time' which has this type:
   440	
   441	    (-> fixnum fixnum)
   442	
   443	  This is the expression:
   444	
   445	    (chicken.time#cpu-time)
   446	
   447	Warning: No values returned for argument.
   448	    In file `test-scrutinizer-message-format.scm:47'
   449	    In module `m',
   450	    In procedure `toplevel-foo' (toplevel),
   451	    In procedure `local-bar',
   452	    In procedure `r-proc-call-argument-value-count',
   453	    In procedure call:
   454	
   455	      (scheme#vector (scheme#values))
   456	
   457	  Argument expression #1 to procedure `vector' does not return any values.
   458	
   459	  The expression is a call to `values' from module `scheme' which has this type:
   460	
   461	    (procedure scheme#values (&rest values) . *)
   462	
   463	  This is the expression:
   464	
   465	    (scheme#values)
   466	
   467	Warning: Branch value count mismatch.
   468	    In file `test-scrutinizer-message-format.scm:48'
   469	    In module `m',
   470	    In procedure `toplevel-foo' (toplevel),
   471	    In procedure `local-bar',
   472	    In procedure `r-cond-branch-value-count-mismatch',
   473	    In conditional expression:
   474	
   475	      (if (the * 1) 1 (chicken.time#cpu-time))
   476	
   477	  The branches have different number of returned values.
   478	
   479	  This true branch returns 1 value:
   480	
   481	    1
   482	
   483	  This false branch returns 2 values:
   484	
   485	    (chicken.time#cpu-time)
   486	
   487	Warning: Invalid procedure.
   488	    In file `test-scrutinizer-message-format.scm:50'
   489	    In module `m',
   490	    In procedure `toplevel-foo' (toplevel),
   491	    In procedure `local-bar',
   492	    In procedure `r-invalid-called-procedure-type',
   493	    In procedure `variable',
   494	    In procedure call:
   495	
   496	      (m#foo2 2)
   497	
   498	  Variable `foo2' from module `m' is not a procedure.
   499	
   500	  It has this type:
   501	
   502	    boolean
   503	
   504	Warning: Invalid procedure.
   505	    In module `m',
   506	    In procedure `toplevel-foo' (toplevel),
   507	    In procedure `local-bar',
   508	    In procedure `r-invalid-called-procedure-type',
   509	    In procedure `non-variable',
   510	    In procedure call:
   511	
   512	      (1 2)
   513	
   514	  The procedure expression does not appear to be a callable.
   515	
   516	  The expected type is:
   517	
   518	    (* -> *)
   519	
   520	  The actual type is:
   521	
   522	    fixnum
   523	
   524	  This is the expression:
   525	
   526	    1
   527	
   528	Note: Predicate always true.
   529	    In file `test-scrutinizer-message-format.scm:52'
   530	    In module `m',
   531	    In procedure `toplevel-foo' (toplevel),
   532	    In procedure `local-bar',
   533	    In procedure `r-pred-call-always-true',
   534	    In predicate call:
   535	
   536	      (scheme#list? '())
   537	
   538	  Predicate call will always return true.
   539	
   540	  Procedure `list?' from module `scheme' is a predicate for:
   541	
   542	    list
   543	
   544	  The given argument has this type:
   545	
   546	    null
   547	
   548	Note: Predicate always false.
   549	    In file `test-scrutinizer-message-format.scm:53'
   550	    In module `m',
   551	    In procedure `toplevel-foo' (toplevel),
   552	    In procedure `local-bar',
   553	    In procedure `r-pred-call-always-false',
   554	    In predicate call:
   555	
   556	      (scheme#symbol? 1)
   557	
   558	  Predicate call will always return false.
   559	
   560	  Procedure `symbol?' from module `scheme' is a predicate for:
   561	
   562	    symbol
   563	
   564	  The given argument has this type:
   565	
   566	    fixnum
   567	
   568	Note: Test always true.
   569	    In file `test-scrutinizer-message-format.scm:54'
   570	    In module `m',
   571	    In procedure `toplevel-foo' (toplevel),
   572	    In procedure `local-bar',
   573	    In procedure `r-cond-test-always-true',
   574	    In conditional expression:
   575	
   576	      (if (scheme#length '()) 1 (##core#undefined))
   577	
   578	  Test condition has always true value of type:
   579	
   580	    fixnum
   581	
   582	Note: Test always false.
   583	    In module `m',
   584	    In procedure `toplevel-foo' (toplevel),
   585	    In procedure `local-bar',
   586	    In procedure `r-cond-test-always-false',
   587	    In conditional expression:
   588	
   589	      (if #f 1 (##core#undefined))
   590	
   591	  Test condition is always false.
   592	
   593	Warning: Type mismatch.
   594	    In module `m',
   595	    In procedure `toplevel-foo' (toplevel),
   596	    In procedure `local-bar',
   597	    In procedure `r-type-mismatch-in-the',
   598	    In expression:
   599	
   600	      1
   601	
   602	  Expression's declared and actual types do not match.
   603	
   604	  The declared type is:
   605	
   606	    symbol
   607	
   608	  The actual type is:
   609	
   610	    fixnum
   611	
   612	Warning: Invalid assigned value type.
   613	    In module `m',
   614	    In procedure `toplevel-foo' (toplevel),
   615	    In procedure `local-bar',
   616	    In procedure `r-toplevel-var-assignment-type-mismatch',
   617	    In assignment:
   618	
   619	      (set! m#foo2 1)
   620	
   621	  Variable `foo2' is assigned invalid value.
   622	
   623	  The assigned value has this type:
   624	
   625	    fixnum
   626	
   627	  The declared type of `foo2' from module `m' is:
   628	
   629	    boolean
   630	
   631	Warning: Deprecated identifier `deprecated-foo'.
   632	    In module `m',
   633	    In procedure `toplevel-foo' (toplevel),
   634	    In procedure `local-bar',
   635	    In procedure `r-deprecated-identifier',
   636	    In expression:
   637	
   638	      m#deprecated-foo
   639	
   640	  Use of deprecated `deprecated-foo' from module `m'.
   641	
   642	Warning: Deprecated identifier `deprecated-foo2'.
   643	    In module `m',
   644	    In procedure `toplevel-foo' (toplevel),
   645	    In procedure `local-bar',
   646	    In procedure `r-deprecated-identifier',
   647	    In expression:
   648	
   649	      m#deprecated-foo2
   650	
   651	  Use of deprecated `deprecated-foo2' from module `m'.
   652	
   653	  The suggested replacement is `foo'.
   654	
   655	Warning: Zero values returned.
   656	    In file `test-scrutinizer-message-format.scm:60'
   657	    In module `m',
   658	    In procedure `toplevel-foo' (toplevel),
   659	    In procedure `local-bar',
   660	    In procedure `r-zero-values-for-the',
   661	    In expression:
   662	
   663	      (scheme#values)
   664	
   665	  Expression returns 0 values but is declared to return:
   666	
   667	    symbol
   668	
   669	Warning: Assigning to `foo' with zero values.
   670	    In file `test-scrutinizer-message-format.scm:61'
   671	    In module `m',
   672	    In procedure `toplevel-foo' (toplevel),
   673	    In procedure `local-bar',
   674	    In procedure `zero-values-for-assignment',
   675	    In assignment:
   676	
   677	      (set! m#foo (scheme#values))
   678	
   679	  Variable `foo' is assigned value from expression that returns 0 values.
   680	
   681	  The expression is a call to `values' from module `scheme' which has this type:
   682	
   683	    (procedure scheme#values (&rest values) . *)
   684	
   685	  This is the expression:
   686	
   687	    (scheme#values)
   688	
   689	Warning: Zero values for conditional.
   690	    In file `test-scrutinizer-message-format.scm:62'
   691	    In module `m',
   692	    In procedure `toplevel-foo' (toplevel),
   693	    In procedure `local-bar',
   694	    In procedure `zero-values-for-conditional',
   695	    In conditional:
   696	
   697	      (if (scheme#values) 1 (##core#undefined))
   698	
   699	  The test expression returns 0 values.
   700	
   701	  The expression is a call to `values' from module `scheme' which has this type:
   702	
   703	    (procedure scheme#values (&rest values) . *)
   704	
   705	  This is the expression:
   706	
   707	    (scheme#values)
   708	
   709	Warning: Let bind to `a' with zero values.
   710	    In file `test-scrutinizer-message-format.scm:63'
   711	    In module `m',
   712	    In procedure `toplevel-foo' (toplevel),
   713	    In procedure `local-bar',
   714	    In procedure `zero-values-for-let',
   715	    In let expression:
   716	
   717	      (let ((a (scheme#values))) a)
   718	
   719	  Variable `a' is bound value from expression that returns 0 values.
   720	
   721	  The expression is a call to `values' from module `scheme' which has this type:
   722	
   723	    (procedure scheme#values (&rest values) . *)
   724	
   725	  This is the expression:
   726	
   727	    (scheme#values)
   728	
   729	Warning: Too many values returned.
   730	    In file `test-scrutinizer-message-format.scm:65'
   731	    In module `m',
   732	    In procedure `toplevel-foo' (toplevel),
   733	    In procedure `local-bar',
   734	    In procedure `r-too-many-values-for-the',
   735	    In expression:
   736	
   737	      (scheme#values 1 2)
   738	
   739	  Expression returns too many values.
   740	
   741	  The expression returns 2 values but is declared to return:
   742	
   743	    symbol
   744	
   745	Warning: Type mismatch.
   746	    In file `test-scrutinizer-message-format.scm:65'
   747	    In module `m',
   748	    In procedure `toplevel-foo' (toplevel),
   749	    In procedure `local-bar',
   750	    In procedure `r-too-many-values-for-the',
   751	    In expression:
   752	
   753	      (scheme#values 1 2)
   754	
   755	  Expression's declared and actual types do not match.
   756	
   757	  The declared type is:
   758	
   759	    symbol
   760	
   761	  The actual type is:
   762	
   763	    fixnum
   764	
   765	Warning: Assigning to `foo' with 2 values.
   766	    In file `test-scrutinizer-message-format.scm:66'
   767	    In module `m',
   768	    In procedure `toplevel-foo' (toplevel),
   769	    In procedure `local-bar',
   770	    In procedure `too-many-values-for-assignment',
   771	    In assignment:
   772	
   773	      (set! m#foo (scheme#values #t 2))
   774	
   775	  Variable `foo' is assigned value from expression that returns 2 values.
   776	
   777	  The expression is a call to `values' from module `scheme' which has this type:
   778	
   779	    (procedure scheme#values (&rest values) . *)
   780	
   781	  This is the expression:
   782	
   783	    (scheme#values #t 2)
   784	
   785	Warning: Too many values for conditional.
   786	    In file `test-scrutinizer-message-format.scm:67'
   787	    In module `m',
   788	    In procedure `toplevel-foo' (toplevel),
   789	    In procedure `local-bar',
   790	    In procedure `too-many-values-for-conditional',
   791	    In conditional:
   792	
   793	      (if (scheme#values (the * 1) 2) 1 (##core#undefined))
   794	
   795	  The test expression returns 2 values.
   796	
   797	  The expression is a call to `values' from module `scheme' which has this type:
   798	
   799	    (procedure scheme#values (&rest values) . *)
   800	
   801	  This is the expression:
   802	
   803	    (scheme#values (the * 1) 2)
   804	
   805	Warning: Let bind to `a' with 2 values.
   806	    In file `test-scrutinizer-message-format.scm:68'
   807	    In module `m',
   808	    In procedure `toplevel-foo' (toplevel),
   809	    In procedure `local-bar',
   810	    In procedure `too-many-values-for-let',
   811	    In let expression:
   812	
   813	      (let ((a (scheme#values 1 2))) a)
   814	
   815	  Variable `a' is bound value from expression that returns 2 values.
   816	
   817	  The expression is a call to `values' from module `scheme' which has this type:
   818	
   819	    (procedure scheme#values (&rest values) . *)
   820	
   821	  This is the expression:
   822	
   823	    (scheme#values 1 2)
   824	
   825	Warning: Let bind to `a' with zero values.
   826	    In file `test-scrutinizer-message-format.scm:71'
   827	    In module `m',
   828	    In procedure `toplevel-foo' (toplevel),
   829	    In procedure `local-bar',
   830	    In procedure `r-let-value-count-invalid',
   831	    In procedure `zero-values-for-let',
   832	    In let expression:
   833	
   834	      (let ((a (scheme#values))) a)
   835	
   836	  Variable `a' is bound value from expression that returns 0 values.
   837	
   838	  The expression is a call to `values' from module `scheme' which has this type:
   839	
   840	    (procedure scheme#values (&rest values) . *)
   841	
   842	  This is the expression:
   843	
   844	    (scheme#values)
   845	
   846	Warning: Let bind to `a' with 2 values.
   847	    In file `test-scrutinizer-message-format.scm:72'
   848	    In module `m',
   849	    In procedure `toplevel-foo' (toplevel),
   850	    In procedure `local-bar',
   851	    In procedure `r-let-value-count-invalid',
   852	    In procedure `too-many-values-for-let',
   853	    In let expression:
   854	
   855	      (let ((a (scheme#values 1 2))) a)
   856	
   857	  Variable `a' is bound value from expression that returns 2 values.
   858	
   859	  The expression is a call to `values' from module `scheme' which has this type:
   860	
   861	    (procedure scheme#values (&rest values) . *)
   862	
   863	  This is the expression:
   864	
   865	    (scheme#values 1 2)
   866	
   867	Warning: Zero values for conditional.
   868	    In file `test-scrutinizer-message-format.scm:74'
   869	    In module `m',
   870	    In procedure `toplevel-foo' (toplevel),
   871	    In procedure `local-bar',
   872	    In procedure `r-conditional-value-count-invalid',
   873	    In procedure `zero-values-for-conditional',
   874	    In conditional:
   875	
   876	      (if (scheme#values) 1 (##core#undefined))
   877	
   878	  The test expression returns 0 values.
   879	
   880	  The expression is a call to `values' from module `scheme' which has this type:
   881	
   882	    (procedure scheme#values (&rest values) . *)
   883	
   884	  This is the expression:
   885	
   886	    (scheme#values)
   887	
   888	Warning: Too many values for conditional.
   889	    In file `test-scrutinizer-message-format.scm:75'
   890	    In module `m',
   891	    In procedure `toplevel-foo' (toplevel),
   892	    In procedure `local-bar',
   893	    In procedure `r-conditional-value-count-invalid',
   894	    In procedure `too-many-values-for-conditional',
   895	    In conditional:
   896	
   897	      (if (scheme#values (the * 1) 2) 1 (##core#undefined))
   898	
   899	  The test expression returns 2 values.
   900	
   901	  The expression is a call to `values' from module `scheme' which has this type:
   902	
   903	    (procedure scheme#values (&rest values) . *)
   904	
   905	  This is the expression:
   906	
   907	    (scheme#values (the * 1) 2)
   908	
   909	Warning: Assigning to `foo' with zero values.
   910	    In file `test-scrutinizer-message-format.scm:77'
   911	    In module `m',
   912	    In procedure `toplevel-foo' (toplevel),
   913	    In procedure `local-bar',
   914	    In procedure `r-assignment-value-count-invalid',
   915	    In procedure `zero-values-for-assignment',
   916	    In assignment:
   917	
   918	      (set! m#foo (scheme#values))
   919	
   920	  Variable `foo' is assigned value from expression that returns 0 values.
   921	
   922	  The expression is a call to `values' from module `scheme' which has this type:
   923	
   924	    (procedure scheme#values (&rest values) . *)
   925	
   926	  This is the expression:
   927	
   928	    (scheme#values)
   929	
   930	Warning: Assigning to `foo' with 2 values.
   931	    In file `test-scrutinizer-message-format.scm:78'
   932	    In module `m',
   933	    In procedure `toplevel-foo' (toplevel),
   934	    In procedure `local-bar',
   935	    In procedure `r-assignment-value-count-invalid',
   936	    In procedure `too-many-values-for-assignment',
   937	    In assignment:
   938	
   939	      (set! m#foo (scheme#values #t 2))
   940	
   941	  Variable `foo' is assigned value from expression that returns 2 values.
   942	
   943	  The expression is a call to `values' from module `scheme' which has this type:
   944	
   945	    (procedure scheme#values (&rest values) . *)
   946	
   947	  This is the expression:
   948	
   949	    (scheme#values #t 2)
   950	
   951	Warning: Invalid argument type.
   952	    In file `test-scrutinizer-message-format.scm:80'
   953	    In module `m',
   954	    In procedure `toplevel-foo' (toplevel),
   955	    In procedure `local-bar',
   956	    In procedure `append-invalid-arg',
   957	    In procedure call:
   958	
   959	      (scheme#append 1 (scheme#list 1))
   960	
   961	  Argument #1 to procedure `append' has invalid type:
   962	
   963	    fixnum
   964	
   965	  The expected type is:
   966	
   967	    list
   968	
   969	  This is the expression:
   970	
   971	    1
   972	
   973	  Procedure `append' from module `scheme' has this type:
   974	
   975	    (&rest * -> *)
   976	
   977	Warning: List index negative.
   978	    In file `test-scrutinizer-message-format.scm:82'
   979	    In module `m',
   980	    In procedure `toplevel-foo' (toplevel),
   981	    In procedure `local-bar',
   982	    In procedure `vector-list-out-of-range',
   983	    In procedure `list-ref-negative-index',
   984	    In procedure call:
   985	
   986	      (scheme#list-ref '() -1)
   987	
   988	  Calling `list-ref' from module `scheme' with a negative index -1.
   989	
   990	Warning: List index out of range.
   991	    In file `test-scrutinizer-message-format.scm:83'
   992	    In module `m',
   993	    In procedure `toplevel-foo' (toplevel),
   994	    In procedure `local-bar',
   995	    In procedure `vector-list-out-of-range',
   996	    In procedure `list-ref-out-of-range',
   997	    In procedure call:
   998	
   999	      (scheme#list-ref '() 1)
  1000	
  1001	  Calling `list-ref' from module `scheme' with index `1' for a list of length `0'.
  1002	
  1003	Warning: Vector index negative.
  1004	    In file `test-scrutinizer-message-format.scm:84'
  1005	    In module `m',
  1006	    In procedure `toplevel-foo' (toplevel),
  1007	    In procedure `local-bar',
  1008	    In procedure `vector-list-out-of-range',
  1009	    In procedure `vector-ref-out-of-range',
  1010	    In procedure call:
  1011	
  1012	      (scheme#vector-ref (scheme#vector) -1)
  1013	
  1014	  Calling `vector-ref' from module `scheme' with a negative index -1.
  1015	
  1016	Error: No typecase matches.
  1017	    In file `test-scrutinizer-message-format.scm:86'
  1018	    In module `m',
  1019	    In procedure `toplevel-foo' (toplevel),
  1020	    In procedure `local-bar',
  1021	    In procedure `fail-compiler-typecase',
  1022	    In `compiler-typecase' expression:
  1023	
  1024	      (compiler-typecase g104 (symbol 1) (list 2) (else (##core#undefined)))
  1025	
  1026	  Tested expression in `compiler-typecase' does not match any case.
  1027	
  1028	  The expression has this type:
  1029	
  1030	    fixnum
  1031	
  1032	  The specified type cases are these:
  1033	
  1034	    symbol
  1035	
  1036	    list