Commit Graph

3601 Commits

Author SHA1 Message Date
Stephen Chang
8a23f10c47 fix async-channel static contract in TR
original commit: b7814e7eb1dc761e15268df8295784e10bd9c415
2014-06-30 10:50:02 -04:00
Eric Dobson
70567e3458 Replace procedure-rename with eta-expansion.
Closes PR 14612.

original commit: 393d7d49fc6c051bdcf1b221979b856747898cf2
2014-06-29 23:25:05 -07:00
Eric Dobson
6031c0697b Make TR contract generation not wrap everything in recursive contract.
Eta expand struct predicates, as this was the reason for recursive
contracts in the first place.

Closes PR 14611.

original commit: 72d11286042959e8e7103bf23a1ab7a2970bd8b8
2014-06-29 23:24:34 -07:00
Eric Dobson
b534242051 Add tests for generated syntax of static contracts.
original commit: decc3c63761bc044f2e9f33dfd7a0b5c2599126c
2014-06-29 16:01:33 -07:00
Eric Dobson
7c7bee754a Change make-predicate/define-predicate to use flat-contract-predicate.
Closes PR 14610.

original commit: b10cb6d089e3c26d08ac13fc4ea0039cbc475a26
2014-06-29 16:01:33 -07:00
Vincent St-Amour
69ae8fbf6c Have TR log regexp operations that use non-regexp patterns.
For consumption by Optimization Coach.

original commit: 13f1565f4d7f20128a8a72c6878a99f540ed0a4c
2014-06-29 14:41:23 -04:00
Asumu Takikawa
558e237713 Fix TR test regexp
original commit: 2edb73bff836b47caee2e2db4290daf36a7e0160
2014-06-27 02:47:17 -04:00
Asumu Takikawa
b2010f3842 Fix for/fold typechecking on null accumulator
Closes PR 13259

original commit: 0b3b1f5d9469da8990517dc11d7e63a7302d7966
2014-06-27 00:08:28 -04:00
Asumu Takikawa
4a7c6241fa Add types and tests for racket/format
original commit: fb6f53566969f729e59191a540e8bdc588819470
2014-06-26 15:46:09 -04:00
Asumu Takikawa
bd3eb045b0 Add support for typechecking contracted functions
original commit: f844cb8b920574c6bb66e178f5b1b5fbac8f5575
2014-06-26 15:46:09 -04:00
Eric Dobson
0e9de12d91 Initial internal Typed Racket documentation.
Still needs to be scribbled, and have lots more added.

original commit: 29bb045942af08889ab6088ffb0ec0ae8d6d4ac3
2014-06-26 15:42:14 -04:00
Asumu Takikawa
7f44bfec8b Fix error for application Procedure type values
Removal of top-arr in the internal representation changed
the error message and we didn't have a test for it.

Closes PR 14601

original commit: 9a14c9c4206671d9627b5a7bbc48b76e9f95526e
2014-06-26 01:35:32 -04:00
Eric Dobson
671ad37a5b Make Unions of function typechecking work again.
original commit: 5339cbaac99fe8620436846a5ba696157646be1c
2014-06-25 09:05:26 -07:00
Eric Dobson
67294c2a5d Make tc-lambda-unit have one centralized definition of how to extend the environment.
original commit: b6e96f0bf0c35a20dec955992a5ed68e8e792c8b
2014-06-24 22:39:09 -07:00
Eric Dobson
8238d2a6bd Move logic of numbering rest/drest arg to abstract results.
original commit: 3c179e021720addc3bd33f98ac1b09a922b25201
2014-06-24 21:52:21 -07:00
Eric Dobson
4806d40f0e Remove unused kw field in lam-result.
original commit: db02f2198e1c41871dd7823be6c8b2635d7cd0ee
2014-06-24 21:52:21 -07:00
Eric Dobson
0a46a27893 Fix infer dotted cases when there are constraints on the dbound.
Closes PR 14593.

original commit: 2f7cb68aeac2de4a463ea58945e2826848ef9f54
2014-06-24 21:35:18 -07:00
Eric Dobson
fe296a8c4d Make interning work on Rep-seq for Reps with complicated fields.
This gives ~3% improvement in new-metrics.rkt

original commit: 8fb166d67fa6378c90b2cd5e30c0fcf35d330dd4
2014-06-24 21:28:21 -07:00
Stephen Chang
334d9975df add typed/racket/async-channel
original commit: 500745f41b53690e2011571c80b0e7526e3d1355
2014-06-24 18:16:14 -04:00
Eric Dobson
f55296aa2d Add equality operations for Reps.
This speeds up microbenchmarks by 50%, and new-metrics.rkt by 30%.

original commit: 5cf65e28fc23b371f6c70ddeef5ffbc9dcdec3eb
2014-06-24 08:19:06 -07:00
Eric Dobson
0acb67a97f Use (listof tc-result?) instead of tc-results? when inferring types.
tc-results? does not represent Bottom in a way that maintains the number
of values that generated the Bottom.

original commit: fd3d01d822ddef3bfa34a11574742651c37f007b
2014-06-23 21:49:53 -07:00
Eric Dobson
8201d0d052 Do not rebuild the environment made by check-non-recursive-clauses.
original commit: 7701e8af5118e5a8cb855cf96c9a4ae9c3556dd9
2014-06-23 21:46:03 -07:00
Eric Dobson
8d2615131f Make with-lexical-env/extend-props not execute its body if its dead.
original commit: 203311e9933df681799c0399a6889a98c1b8f9c0
2014-06-23 21:46:02 -07:00
Eric Dobson
0cef9a0625 Simplify and document compact.
original commit: e8c14839e11847066bda841d5027b992b89fb253
2014-06-23 21:38:27 -07:00
Eric Dobson
f850aa0919 Change type<? to rep<?.
Also moves type-equal and rep<? to rep-utils.

original commit: c66d0286cf104d5f30635e850caad504f7201b49
2014-06-23 21:07:59 -07:00
Eric Dobson
259ab755d0 In -and move the NotTypeFilters to the begining as well.
original commit: 7f721ef5d87dcc9b1eb1f447a94b087e8d3c647b
2014-06-23 21:07:59 -07:00
Asumu Takikawa
8013ad6e43 Fix type for syntax-local-phase-level
original commit: 1e67fb16e6f7ae28932a6ad5c01569dca28b3b48
2014-06-23 11:48:39 -04:00
Eric Dobson
5061f01d35 Add contracts to filter-ops.
original commit: 1271c117810c0593a625fe8aad3379cee867bbb8
2014-06-22 19:43:45 -07:00
Eric Dobson
b05b207667 Make combine-results work with tc-result/c.
original commit: 7acc9eaf0a3111101fd2781bc6c760be4c0a1eef
2014-06-20 23:52:09 -07:00
Eric Dobson
9d60283c46 Fix subtype for filters in AnyValues.
original commit: fc649c6b992b4173f78e82a4a54b069b2c16c0e4
2014-06-20 23:11:38 -07:00
Eric Dobson
cd53de226c Add test cases for subtyping of -Bottom.
original commit: b199527ec28dcdba51e45878b16ad6f71f479582
2014-06-20 21:46:23 -07:00
Eric Dobson
2305c21c22 Add match expander for functions and arities together.
original commit: 30809eb841cf372faf8423816f61cd94668ea7b9
2014-06-20 21:30:25 -07:00
Eric Dobson
17942318ba Add bottom as a special case in multiple value context.
original commit: 11e19caa026d2edae8ed0640b426c516eec8a943
2014-06-20 21:30:25 -07:00
Eric Dobson
7b1b0d2a1f Make funapp take a Type/c instead of a tc-results?.
original commit: 5af90e65e9d6e1ee8307a848d705b0f5e56528c4
2014-06-20 21:30:25 -07:00
Eric Dobson
fc62fad0bc Only match on f-type in tc/funapp.
original commit: cb243606ab437be1e52e0dc6946d5e0133fa4c27
2014-06-20 21:30:25 -07:00
Eric Dobson
f5987da27c Remove extraneous patterns in tc/funapp.
Also improves error messages on cases which return AnyValues/ValuesDots.

original commit: 919e03b9f76c25ec6a08dcd698a8512ea9b0ecdd
2014-06-20 21:30:25 -07:00
J. Ian Johnson
55f68caac5 Closes PR14589.
original commit: bacbafad9fa223c0ae4ae1bdc8a748b4f54369ce
2014-06-20 14:08:25 -04:00
Asumu Takikawa
9052bb40a2 Give more information for kw errors in TR
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
2014-06-20 12:21:45 -04:00
Asumu Takikawa
6c0da3e041 Check kw functions with optional arguments better
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
2014-06-20 12:14:43 -04:00
Asumu Takikawa
52203268fa Rework how keyword methods are handled by TR
Override the `define/foo` forms for racket/class to
allow type annotations and to use TR's keyword property.

original commit: 4aa438937ac315d0b64bccffa86663a97cadde6f
2014-06-19 17:12:54 -04:00
Asumu Takikawa
0df6969e80 Check function kws against expected before tc-expr
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
2014-06-19 17:12:06 -04:00
Matthew Flatt
11f0e1021b unbreak build
I have no idea whether the change is generally right, but it allows
the build to complete and DrRacket to start.

original commit: 5b028396df6b80ab0a4333b8fc929f1f8d1f15b3
2014-06-19 06:21:27 +01:00
Eric Dobson
2ee4c7a086 Make TypeFilter and NotTypeFilter have a Path as a subcomponent.
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
2014-06-18 20:09:26 -07:00
Vincent St-Amour
d6a5634246 Make type of make-vector more precise.
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
2014-06-18 18:48:55 -07:00
Eric Dobson
1649aab8e3 Correctly instantiate poly dots during inference.
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
2014-06-16 23:01:39 -07:00
Eric Dobson
f518b184a0 Make cgen/seq for lists be used more often.
original commit: 6d975ea6bb4ff01171edef899dd53e92600c91a8
2014-06-16 21:51:24 -07:00
Eric Dobson
5b2caf1c1e Replace abstract-results with replace-names.
Also moves large comment over to with replace names since it is now
doing the heavy lifting.

original commit: 050c1022c94a933dde368c20ad5701dd76768a39
2014-06-16 21:08:00 -07:00
Eric Dobson
448ada8c62 Correctly add scopes to incoming objects in replace-names.
original commit: 1ec00bb6029a251ae0415620a5d38e43289da162
2014-06-16 21:08:00 -07:00
Eric Dobson
2b0df2f960 Make tc-results->values not drop filters.
original commit: 2ba070c6b31f7c2f7dcd36d52d9cce41b0436d9e
2014-06-16 21:07:59 -07:00
Eric Dobson
d974ded412 Add test requiring filters on AnyValues.
original commit: bb25a2332ccd911c69addbc33b4ae8b45afc1cb6
2014-06-16 21:07:59 -07:00