Commit Graph

820 Commits

Author SHA1 Message Date
Asumu Takikawa
30da00ba79 Disallow duplicate type variable declarations
Closes PR 13416

Please merge to 5.3.2

original commit: 9c0a611b59d57548c0d0b527862f8a501a0098df
2013-01-08 14:50:08 -05:00
Vincent St-Amour
80afaf902f Extend type of min to preserve fixnumness.
original commit: 057a2bd0d2d1c9bc2085eab3817b776aa66dfa19
2013-01-07 17:00:32 -05:00
Matthew Flatt
dca5fc09a0 rename test file
":" is not allowed in a file name on Windows.

original commit: 43e01d7f4e47d83fe93b38f37ddcd0150b659b8a
2013-01-02 06:33:10 -07:00
Vincent St-Amour
d5bd8a61e9 Fix tests.
original commit: 678451f8c41601eaa8b82bb101c0ad2051f447b8
2013-01-01 18:14:52 -05:00
Vincent St-Amour
91f639247e Make let: annotations optional.
original commit: 4137eb9e73d7e4b6d1aa2fe5cff52e81c9ba10da
2013-01-01 18:14:52 -05:00
Vincent St-Amour
6991bbaad0 Add failing test case for instantiation and special typing rules.
original commit: 67af968a73de3df4b86e87c71a8023bc3c929e75
2012-12-19 13:45:49 -05:00
Asumu Takikawa
160d731c4a Add define: form variant for polymorphic non-function values
original commit: acda049f7d102bd370d750e524e8fd7638201627
2012-12-19 13:08:41 -05:00
Vincent St-Amour
0c509a001f Fix contract generation for functions with optionals and keyword arguments.
Closes PR13354.

original commit: 8c66be33e79c4326960efecb00c79a0f41c67a0b
2012-12-17 13:57:32 -05:00
Vincent St-Amour
0145f047ff Allow #:unless' in for:'.
Also allow `#:break' and `#:final' in all the `for:' macros.

Unfortunately, the expansion of `#:break' and `#:final' cannot be
typechecked at the moment.

original commit: ec673fd58d3e24e999426e4bc07d72a05e3a099b
2012-12-17 13:57:31 -05:00
Asumu Takikawa
444362d5d7 Rackety
original commit: ece218fc85570b51dcab99cfe6e0cd47dbf8d6ad
2012-12-13 17:54:58 -05:00
Asumu Takikawa
714c628bca Fix unsound type variable scoping
Closes PR 13123

original commit: 13b831f0ec03f908d836cb1d27aa66c898a8b469
2012-12-13 17:54:58 -05:00
Asumu Takikawa
e1799227f0 Fix tests where type variable scoping is wrong
original commit: 28108884ab90dfe29f721dcee8575afd7d1a7f5b
2012-12-13 17:54:58 -05:00
Asumu Takikawa
300d3dae51 Fix TR error for missing mandatory keywords
original commit: c7162ec533ece42d3ece961f30a1c4ba2f8f4b3b
2012-12-06 12:20:54 -05:00
Vincent St-Amour
f7d1cab2bb Fix tests.
original commit: 9a5db10124a68e51bdaff2da4915ca16d5157a65
2012-12-04 19:29:16 -05:00
Vincent St-Amour
17c30d1648 Fix partial bounds checking elimination.
Closes PR13341.

original commit: fb73bc8b0eb35bfd9e2c35f14fce9ffd97b2b354
2012-12-04 19:29:16 -05:00
Asumu Takikawa
7917ff2033 Support path/object reasoning for promises
original commit: 5802b42f66706b6d7396aa1855f3d1d0b5f2ca17
2012-12-04 18:03:11 -05:00
Asumu Takikawa
a0c32ff288 Fix call/comp's type
original commit: 3f2d4663a87939a02223b6620407e25b0507aa4a
2012-12-04 16:10:39 -05:00
Vincent St-Amour
50713b7368 Randomly test the TR optimizer.
Compares results of a Racket and a TR sandbox.

original commit: ee0a1d4b89b2dbab9382d37fc4b0139a4ff9b53d
2012-12-03 21:54:01 -05:00
Vincent St-Amour
1501c1db01 Fix optimization of unary float subtraction.
Closes PR13339.

original commit: 9f9092b762cb4394e04901694301a1d0750f95d7
2012-12-03 19:46:29 -05:00
Asumu Takikawa
233e8964eb Support Any wrapping for promises
Closes PR 13326

original commit: 0252207e38aaa679ff78df8bba86f69c70d6912b
2012-12-03 17:59:55 -05:00
Asumu Takikawa
fec01c3f97 Add more tests for continuation marks & Any wrapping
original commit: a42cc9a0012cb7490da13228d21b2182fb1af9d3
2012-11-30 17:37:33 -05:00
Asumu Takikawa
bca928688a Rename control types to be consistent with other types
original commit: 904db66f6557a868ea616421253b8f0cc5e6bd27
2012-11-30 17:37:33 -05:00
Asumu Takikawa
c6d22871bc Improve type of call-with-continuation-prompt
Now works with the handler argument omitted, in which case
the default handler is used. Note that the default handler
cannot be used in conjunction with the default prompt tag
because it is unsound to do so.

original commit: 4e0b38ea79b8ffa84fd099d980a2713a3831d589
2012-11-30 17:37:33 -05:00
Asumu Takikawa
80f7b65db7 Apply Any wrappers for default-continuation-prompt-tag in TR
original commit: 42b07475e95542ec77b47e216e8711573e0820a1
2012-11-30 17:37:33 -05:00
Asumu Takikawa
16a162a150 Fix up old TR tests that should fail now
original commit: d6b0c71a91e186837bd4350080d8936acdc494f5
2012-11-30 17:37:33 -05:00
Asumu Takikawa
550d4fde27 Add new tests for typed control
original commit: 3ed1d56b0526fb96546a2324d216527590518452
2012-11-30 17:37:33 -05:00
Asumu Takikawa
c87dbd87a7 Forgot to add the test for commit b4dd3b5e1dcb
Relevant to PR 13209

original commit: d7163142be1b1d1d1f92bb233a1734762205e0de
2012-11-30 00:12:35 -05:00
Vincent St-Amour
c9972ae31c Add new versions of for/hash: and co that the typechecker can handle.
Based on Eric Dobson's implementation.

Closes PR13248. Closes PR13249.

original commit: 95d51fc8928145fb6f82c8c877e1efcb92432128
2012-11-20 17:45:15 -05:00
Vincent St-Amour
c797b00d02 Heterogenous -> heterogenEous.
Found by Ray Racine.

original commit: e2007abd7a06f5bd5ab7a5fd03180e9f2c20bc7f
2012-11-20 17:06:51 -05:00
Vincent St-Amour
c5600af371 Fix types of variable arity functions to work with 0-argument return values.
Closes PR13218.

original commit: d994ba19146f284809f410962e682c7293c41d63
2012-11-20 16:15:20 -05:00
Vincent St-Amour
dd27a40ad8 Only generate ->* contracts when arguments are really optional arguments.
Closes PR13274.

original commit: 6a7b971cd66b79e1aac0e0ea65bc59f667ef727e
2012-11-19 17:35:07 -05:00
Asumu Takikawa
f6106431fb Fix whitespace in test
original commit: b4a98af3197ec0828dbe83ce835453598459bd22
2012-11-10 12:03:47 -05:00
Asumu Takikawa
fb52e98a05 Fix Custodian type
original commit: d22532db163bdb06007c248628c4002280817579
2012-11-10 11:12:06 -05:00
Asumu Takikawa
cf1a2c71d0 Fix a free variance bug
Commit ffe45ecce had introduced a regression with some
polymorphic functions imported between typed modules due to
miscommunicated variance information.

original commit: daca1c0d5b6040978b1c75d4cc822c0a3a819181
2012-11-09 01:43:57 -05:00
Sam Tobin-Hochstadt
2dfa34a01c This test always errors -- belongs in fail.
original commit: c1cace28ec8072e77d70ccc40c27011c5f788295
2012-11-01 21:14:50 -04:00
Sam Tobin-Hochstadt
ab1005ae6f Fix accidental use of the wrong letrec-bound variable.
original commit: 0e71f2d5dc58bd497a686f23c0ed0781590a3dc6
2012-10-31 21:18:44 -04:00
Sam Tobin-Hochstadt
bde8ebbef0 Improve contract generation in Typed Racket.
This fixes several issues:
 - `Parameter` generates impersonator contracts correctly
 - `Any` handling now copies immutable data when possible
 - `Any` now recognizes more atomic base types

Merge to 5.3.1.

original commit: c6dc1e6ece441a7d56c2f2229dc9c0e144f8ff6f
2012-10-25 23:31:02 -07:00
Eli Barzilay
f19e523806 A whole bunch of missing newlines at EOFs (and a few other spaceages).
original commit: cbfb1fdb370244c2cadcf327332f1c643d4588c0
2012-10-19 06:47:24 -04:00
Vincent St-Amour
a1e803ad7f Add test.
original commit: 326e3ba33f18a2c651b0dc8bfff388f8486fd114
2012-10-14 16:55:36 -04:00
Neil Toronto
b3499cde19 Added working for/vector:, for*/vector:, for/flvector:, for*/flvector:
Closes PR13185.

original commit: 6f52be186b83fdb4340fa4eb772a3e6754050e71
2012-10-14 16:28:41 -04:00
Eric Dobson
3239a56aee Make expt type more correct.
Closes PR13170.

original commit: 788b0465497087f0da49c9b27d8266fa3e2b83d1
2012-10-14 15:44:54 -04:00
Vincent St-Amour
3349c30fab Generate ->* contracts for functions with both optional and keyword arguments.
original commit: 844e898a548ea3b8fcecb97b0e59f8dcf06e0949
2012-10-14 15:44:54 -04:00
Vincent St-Amour
cc1dd45568 More float conversion optimizations.
original commit: 149d8535eb2988fab0bed739d375874f172db7c8
2012-10-14 15:35:50 -04:00
Vincent St-Amour
9170637137 Only recommend dropping exactness in truly inexact contexts.
Please merge to release.

original commit: 758e4ff112bf83544fdfc833f454930cc0bc5322
2012-10-12 14:42:16 -04:00
Sam Tobin-Hochstadt
638b653967 Revamp handling of Any as a contract.
The contract now has two major differences:
 - It raises an error when it would have to wrap.
 - It uses chaperones to delay errors as long as possible

In general, using `Any` as a type when exporting to untyped
code will now just work, unless the untyped code tries to
communicate values back to the typed side, in which case an
immediate error will be raised.

Much of the implementation comes from the membrane design
from [Strickland et al, OOPSLA 2012].

original commit: 962f2472e18356f357f026645bdcebdf3139ba29
2012-10-05 12:39:11 -04:00
Sam Tobin-Hochstadt
fca69adaf7 This pattern of typed submodules exposes Racket bugs.
original commit: 86522a180429eb8fbf0a2066961692ee6090f808
2012-10-03 12:24:16 -04:00
Sam Tobin-Hochstadt
43863acd36 Test for appropriate predicates for invariant structs.
original commit: cab90c16d5514ac4c9dff70ebcaeb3dda75e0910
2012-09-27 17:26:32 -04:00
Sam Tobin-Hochstadt
0f2cffde42 Fix error message pattern for use of cons/c.
original commit: d066a5c1d27a8c292a7c0560da08f394f9a75b88
2012-09-27 16:39:16 -04:00
Eric Dobson
6fcac4b7ae Working covariant applications.
original commit: ffe45ecce455927fe149eee64efe126b7666cd46
2012-09-27 16:22:22 -04:00
Eric Dobson
c0e045635c Fix -struct to use the right number of arguments to make-Struct.
original commit: 12233600c1355df1e9d2f29ee2469f154fc66f81
2012-09-27 16:22:21 -04:00