Commit Graph

9 Commits

Author SHA1 Message Date
Robby Findler
7bd1d5ed9b fix the contract-name accessor for struct/dc contracts 2012-04-14 15:14:21 -05:00
Robby Findler
5e03c7cf99 Added struct/dc and cleaned up a bunch of stuff in the contract
library (mostly in opt/c)

Specifically:

- add inlining declaration for ->i helper function

- modernized the opt/c contracts and improved them so that mutually
  recursive define-opt/c functions recognize each other instead of
  bailing out to the slow path.

- added =/c as an optimized contract

- improve the error message for the between and comparison opt
  contracts

- adjust the blame struct so the name is created lazily, since opt/c
  contracts just stick a copy o the contract into the thunk that
  creates the name and we don't want to run those effects twice if we
  can help it.
2012-04-12 22:49:50 -05:00
Robby Findler
899b339a16 improved the expansion of struct/c 2011-07-24 23:24:20 -04:00
Robby Findler
7b9b3c371b adjusted the wording of the contract error messages to move away from <>'s and added more colons 2011-07-12 22:03:07 -06:00
Robby Findler
1db3ae3476 fixed up printing ~s vs ~a in contract system and made the contract tests run in drdr 2011-05-11 21:20:04 -05:00
Robby Findler
21cbd9ad81 added the racket/contract/combinator library,
and documented and adjusted these libraries:
     racket/contract/base
     racket/contract/exists
     racket/contract/parametric (renamed from exists)
     racket/contract/region
2011-04-25 11:51:44 -05:00
Robby Findler
b8c7a753d3 removed the re-providing from internal files in the contract impl. 2011-03-28 23:04:36 -05:00
Stevie Strickland
5b8e5d6380 Extend struct/c to allow impersonator contracts for mutable fields.
Also, flat contracts for immutable fields are only evaluated at contract
wrapping time.
2010-12-07 14:29:07 -05:00
Stevie Strickland
10eb818f95 Conversion of struct/c to chaperones when appropriate. 2010-12-07 04:11:26 -05:00