:type-at/:all-types and :r don't mix
Steps to reproduce:
- Put
x = ()in test.hs. - Start ghci.
- Turn on collection with :set +c.
- Load the file with :l test.hs.
- Observe the following output from :all-types
test.hs:(1,1)-(1,2): ()
test.hs:(1,5)-(1,7): ()
- While ghci is still open, modify the file to say
x = True. - In the same ghci session as before, reload with :r, or load the file again with :l test.hs, chef's choice.
- Run :all-types again.
After step 8, ghci prints the exact same thing as before, indicating that both sides of the equation have type (). It should instead update the source spans and types to match the file, reporting Bool instead of () and (1,5)-(1,9) for the second span.
Manually exiting and restarting ghci appears to be the only way to freshen the collected type information.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.4.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |