﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
898	scrutinizer gives spurious warnings when given too many type hints	megane		"This is potentially confusing for users of eggs for which type annotations are added afterwards.

Initially the user's own annotations seem to work. When the annotations are added to the egg, user starts to get these strange messages shown below.

{{{
(define-record foo a)
(define-type foo-t (struct foo))

(define (t1)
  (the foo-t (the foo-t (make-foo))))	; OK

(define (t2)
  (the (struct foo) (the (struct foo) (make-foo))))

(: bar (procedure () (struct foo)))
(define (bar)
  (make-foo))

(define (t3)
  (the (struct foo) (bar)))


;; $ csc -verbose -specialize  foo.scm

;; Note: in toplevel procedure `t2':
;;   expression returns a result of type `(struct foo)', but is declared to return `(struct foo)', which is not a subtype

;; Note: in toplevel procedure `t3':
;;   expression returns a result of type `(struct foo)', but is declared to return `(struct foo)', which is not a subtype
}}}"	defect	closed	minor		scrutinizer	4.8.x	fixed	types		
