﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
1533	Scrutinizer seems to get confused about list length	sjamaan		"Seen when compiling awful-salmonella-tar:

{{{
(/usr/home/chicken/src/awful-salmonella-tar/ast-cache-manager.scm:86) in procedure call to `scheme#car', expected argument #1 of type `pair' but was given an argument of type `null'
}}}

Here's a stripped-down example that triggers it:

{{{
(module ast-cache-manager ()

(import scheme (chicken base) (chicken process-context))

(define (usage #!optional exit-code)
  (when exit-code
    (exit exit-code)))

(let ((args (command-line-arguments)))

  (when (or (member ""-h"" args)
            (member ""-help"" args)
            (member ""--help"" args))
    (usage 0))

  (when (< (length args) 3)
    (usage 1))

  (let ((cache-dir (car args))
        (awful-pid (string->number (cadr args)))
        (max-items (and (not (null? (cddr args)))
                        (string->number (caddr args)))))
    (assert awful-pid)))

) ;; end module
}}}

It seems that when you remove the `when`, the warning goes away."	defect	closed	major	5.0	scrutinizer	5.0.0rc2	fixed	flow analysis		hard
