Commit Graph

9 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
5cd5f772d6 Don't allow promises created with delay/name as (Promise T).
Since these promises re-evaluate their bodies every time they
are forced, allowing them makes `force` not idempotent and not
safe to treat as a path.

This change is slightly backwards-incompatible, since programs
that previously passed `delay/name` promises across the typed
boundary will now fail at runtime. The alternative is also
incompatible: stop treating `force` as a path. Since `delay/name`
is quite obscure, this approach seems like the safer choice.
2015-07-22 14:22:34 -04:00
Asumu Takikawa
92d1dd1c5e Add sealing contracts for row polymorphic types
This enables contract generation in the negative
direction (untyped->typed) for row polymorphic types
(basically mixin types).

Depends on `class-seal` and `class-unseal` in
the racket/class library.
2015-05-13 20:52:32 -04:00
Asumu Takikawa
96e741dc1b Add srcloc instead of a quoted syntax for casts 2015-03-06 16:09:31 -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
165a2afa5b Fix augment/inner contract generation 2015-02-28 14:02:57 -05:00
Alexis King
425c584a30 Handles expansion of internal forms inside splicing-syntax-parameterize
Fixes PR 14973

Closes #24.
2015-02-21 15:40:23 -05:00
Asumu Takikawa
52cc284d87 Better error msg for structs with the same name
Thanks to Max for the suggestion
2015-02-13 00:10:19 -05:00
Asumu Takikawa
0b8c29b98e Fix TR's async-channel-contract test 2015-01-20 14:23:38 -05:00
Vincent St-Amour
134f793ccc Reduce directory nesting for tests. 2014-12-16 10:07:25 -05:00