#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-vectorandcons,listand 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-vectorandcons,listand all other constructors probably have to be weakened intypes.db- the returned data may be mutated and so can change type.