Commit Graph

32 Commits

Author SHA1 Message Date
Asumu Takikawa
57a76517fc Enable environment extension in unit tests
This allows a unit test like tc-e to extend the lexical
type environment when checking the test expression.
2015-03-09 15:59:02 -04:00
Asumu Takikawa
33543ce054 Use absent in some row poly class contracts
When exporting row polymorphic functions from TR, just
use absent clauses to ensure that TR won't accidentally
try to add pre-existing fields/methods. No sealing is
needed because the typechecker enforces parameteric use
of the class.
2015-03-04 16:26:35 -05:00
Asumu Takikawa
8d0c352dcc Add a custom object contract for use in TR
This corresponds to the more strict object contracts
from the OOPSLA paper. Also use `object/c-opaque` in
TR contract generation
2015-03-04 16:26:35 -05:00
Asumu Takikawa
e2fd3b6653 Enable opaque class contracts in TR 2015-03-04 13:28:06 -05:00
Asumu Takikawa
ec15f58542 Basic support for contract gen for PolyRow types
Currently only supports the typed export side. The other
way needs contract features that haven't been merged yet.
2015-02-27 15:19:30 -05:00
Asumu Takikawa
6a855f664c Reorganize type->contract for polymorphic methods 2015-02-27 13:37:07 -05:00
Asumu Takikawa
78fc0f19e7 Improve types for private field accessors
Enables better occurrence typing for private fields
2015-02-23 15:38:28 -05:00
Asumu Takikawa
888893d81b Work around type alias printing limitations
Type aliases in internal definition contexts can affect
type printing outside of the context, which can cause
interference in unit tests.

This only seems to happen when running with the TR test
driver.
2015-02-12 16:31:18 -05:00
Asumu Takikawa
62c86d5ddd Added occurrence typing for private fields.
This also tracks mutation of private fields to ensure that only
non-mutated field types are allowed to be refined.
2015-02-12 16:31:18 -05:00
Asumu Takikawa
6c09d52b2e Generalize method handling in TR
Previously, TR only recognized a subset of the syntax that
the class macro accepts for method definitions (and errored
unhelpfully on other cases). Though that subset was sufficient
for most methods, macros will sometimes produce unusual forms.
2015-02-08 18:29:37 -05:00
Vincent St-Amour
787df49140 Make type of division more lenient.
Thanks to John Clements for the report.
2015-02-04 14:06:54 -05:00
Asumu Takikawa
8402ee1635 Add FSemaphores to Typed Racket 2015-02-02 11:23:09 -05:00
Asumu Takikawa
e85cc55f6f Add types for call-with-semaphore 2015-02-02 02:54:01 -05:00
Alexis King
032a11fdae Add support for use-dir? param of in-directory
Closes #21.
2015-01-31 09:34:01 -05:00
Alexis King
7122d93de8 Make Path a subtype of Module-Path
Closes #20.
2015-01-31 09:33:50 -05:00
Alexis King
8c471bb2a3 Add tests for directory-list #:build? argument
Closes #18.
2015-01-29 09:55:17 -05:00
Vincent St-Amour
ef35d21a31 Refine type of current-inexact-milliseconds.
Thanks to Alex Knauth for the report.
2015-01-27 20:30:28 -05:00
Asumu Takikawa
066e4356b4 Support type alias definitions in class bodies 2015-01-22 14:22:11 -05:00
Asumu Takikawa
5c090ba686 Fix new error messages for class/object types
Closes PR 14942
2015-01-21 13:55:19 -05:00
Asumu Takikawa
4ab7ba2578 Improve check-below errors for classes/objects
Also fix a type-checker bug that the tests for the
error messages uncovered.
2015-01-20 19:58:25 -05:00
Sam Tobin-Hochstadt
9a39c3e793 Add for/set and for*/set to Typed Racket. 2015-01-16 09:43:37 -05:00
Asumu Takikawa
ded837ce10 Fix tc/send to accept keyword argument methods
Closes PR 14910
2015-01-12 18:36:35 -05:00
Andrew Kent
3ed6b464e7 overlap tests for Seq and Evt, minor overlap fix 2015-01-06 15:01:16 -05:00
Andrew Kent
16db5ecc78 dont let-alias type vars, better overlap & restrict 2015-01-06 13:51:40 -05:00
Andrew Kent
dc2ce38aef Merge pull request #5 from andmkent/master
fixed mutation let-aliasing bug
2015-01-05 09:15:57 -05:00
Asumu Takikawa
dbaebdd305 Propagate expected types better for private fields
Closes PR 14911
2015-01-04 19:39:14 -05:00
Andrew Kent
9d41048747 fixed mutation let-aliasing bug
let-aliasing initially forgot to check if a variable that might act as
an alias was ever mutated. fixed by disallowing a mutated variable to
act as an alias.
2015-01-03 23:03:45 -05:00
Asumu Takikawa
791a16e54f Fix method definitions with lambda/case-lambda
Closes PR 14904
2015-01-01 01:59:37 -05:00
Asumu Takikawa
6059fb481b Check expected type before calling tc/funapp1
This compensates for a change in commit bb3f446186
that made the possible-domains function more permissive
(possibly returning results that are inconsistent with the
 expected type).

Closes PR 14889
2015-01-01 00:03:23 -05:00
Asumu Takikawa
643c20afdb Add missing contract generation error cases
Functions with dotted values or AnyValues in the return type
aren't yet supported for contract generation.

Related to PR 14894
2014-12-27 05:31:46 -05:00
Andrew Kent
e1b8eff1f9 initial let-aliasing addition 2014-12-22 12:35:30 -05:00
Vincent St-Amour
134f793ccc Reduce directory nesting for tests. 2014-12-16 10:07:25 -05:00