since 6.1.1, `require/typed` seems to have lost its ability to import partial class interfaces
Open
@takikawa is already working on this.
Since Mar 26, 2015.
unsound
- Dominant language
- Racket
- Stars
- 575
- Forks
- 106
- Avg merge
- 2h 1m
- Merged PRs (30d)
- 2
Description
Comparing behavior of 6.1.1 build vs. git build from yesterday, require/typed is no longer allowing partial import of class interfaces. (IMO showstopper bug for existing code)
For instance, in 6.1.1, this code works without error:
#lang typed/racket
(require/typed racket/draw [record-dc% (Class (init-field))])
(define dc (new record-dc%))
But in the current git build, it now throws an error:
record-dc%: broke its contract;
method glyph-exists? not specified in contract
in: g5
contract from: (interface for record-dc%)
blaming: (interface for record-dc%)
(assuming the contract is correct)
If I add glyph-exists? to the require/typed spec, then I get a new error asking for another class method. And so forth. I confess I did not get to the end of the list to find out if require/typed would cooperate.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.