#868 closed defect (fixed)
scrutinizer makes too strong assumptions about mutable data
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | critical | Milestone: | 4.9.0 |
Component: | scrutinizer | Version: | 4.7.x |
Keywords: | Cc: | ||
Estimated difficulty: |
Description (last modified by )
Like this:
(define foo (make-vector 1 #f)) (vector-set! foo 0 'sym) (print (get (vector-ref foo 0) 'a))
When compiled in block mode, we get:
Warning: at toplevel: (x.scm:5) in procedure call to `get', expected argument #1 of type `symbol', but was given an argument of type `boolean'
Change History (5)
comment:1 Changed 13 years ago by
Description: | modified (diff) |
---|
comment:2 follow-up: 3 Changed 13 years ago by
Milestone: | → 4.8.0 |
---|---|
Priority: | major → critical |
comment:3 Changed 13 years ago by
Replying to felix:
The entries for
make-vector
andcons
,list
and all other constructors probably have to be weakened intypes.db
- the returned data may be mutated and so can change type.
That's nonsense, actually. The real problem is that smashing happens only for env + blist entries, not for globals.
comment:4 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Pushed to master in ae6af2c1894b8ab8178f21f8169a98c3b5e0327a.
Note: See
TracTickets for help on using
tickets.
The entries for
make-vector
andcons
,list
and all other constructors probably have to be weakened intypes.db
- the returned data may be mutated and so can change type.