Tells the user which missing keywords were mandatory and
which were optional (which is useful if, e.g., the expected type
says mandatory but the function had it optional).
original commit: 8b53d32f5231f94677e1088b940e92a71ed1e311
In particular, allow the optional kws to be left out in the
expected type (a function type with fewer optional kws is
a supertype).
Closes PR 14583
original commit: 8755e625568705aa078e46e0407dd87cbbe00d89
Override the `define/foo` forms for racket/class to
allow type annotations and to use TR's keyword property.
original commit: 4aa438937ac315d0b64bccffa86663a97cadde6f
This checks that the given lambda has the right keywords
wrt to the expected type. Doing this should avoid the bad
arity errors that result from the kw protocol encoding.
Closes PR 13898
original commit: 2d81c9667c67249dd35a1f3e73d03d406dd28c56
I have no idea whether the change is generally right, but it allows
the build to complete and DrRacket to start.
original commit: 5b028396df6b80ab0a4333b8fc929f1f8d1f15b3
This changes Filters to have a Path as a subcomponent instead of having
the list of Path-Elems and name-ref/c separately. This is part of the
rework to have better object support.
original commit: 3831cb135ea65d259edb291836b9a2c46a32411b
Before that, ((inst make-vector Natural) 10) would return a (Vectorof
Integer) which is bad.
Thanks to Alexander Knauth for the suggestion!
original commit: aab724de351556b7def913c67797077df719fa54
This removes the need for the cache of type variables for instantiating
dotted variables, because we instantiate the uses at once.
Closes PR 14576.
Closes PR 14577.
Closes PR 14579.
Closes PR 14580.
original commit: fecaf5127dd51fd11eeb043887f336bfca71810e
If code is unreachable then looking up any variable should return
Bottom. But implementing checking unreachable code that way is not that
useful.
original commit: 76c3ec443f95150338a2b2f97d296dd97a17ffb2
There ought to be a way to improve the type of `apply-pattern-substitute`,
but we haven't found it yet.
original commit: 1380cfea346dd8a56ee7c9110b6da4fbc2ed2f96
Also fix TR `send` for multiple/any values as receiver
Now emits a real type error instead of crashing with
an internal match error.
Closes PR 14547
original commit: 7743386eec4f5d752f5f87dab52e2da43bd11926
Use new merge-tc-results as well.
This revealed some buggy tests as well which are also fixed.
original commit: 17c43c35ec371d17e0a1f52ba7f78cd32fc51ae9
(T @ x) => (! S @ x) when their intersection is empty.
Rearrange how we look through filters in -and so this rule applies more.
original commit: 5fa263b232c03b050e724185179e159c3f00685d
The non-productive type check in type parsing and in type
alias setup should produce the same failure messages.
original commit: 5431ddb6c1559f9dc6428b07d1bf340f0fd82759