Commit Graph

3758 Commits

Author SHA1 Message Date
Asumu Takikawa
a42eaad1ca Add tests for TR's tooltip computation
original commit: f9e2231ce9f5df9013865f9311aaa27f4e3a343d
2014-11-18 18:28:58 -05:00
Asumu Takikawa
88e2146757 Use the original syntax to guide tooltip shape
original commit: 1d86e173a5a68147d8316332addcd0619fbdb65e
2014-11-18 18:07:28 -05:00
Asumu Takikawa
724d5e142d Handle case-> types better for tooltips
The use of case-> can cause an expression to get
typechecked multiple times, so the tooltips should reflect
all of the passes.

original commit: c170b8288c74dfd227f90897c4f65979a006cb68
2014-11-18 18:07:28 -05:00
Asumu Takikawa
d02b540d0b Compute type tooltips better for macro expansions
Macros often expand into forms where the subforms have
the same syntax location as the entire form, which means
a naive approach gives confusing type tooltips on macro
expressions.

Instead, only keep the latest (outermost) type tooltip
for a given expression.

We could instead compute whether a given piece of syntax
is a subform of another at a given location or not, but
that check is expensive and we don't want to do that on
every update of the type table.

original commit: c2abbc700d6b8233e4a52f518d8056579d696b5f
2014-11-18 18:07:28 -05:00
Sam Tobin-Hochstadt
0c5d2297cb Fix internal error.
Needs a real fix in the future to actually support this case.
Noted in a program from Matthias Felleisen.

Fixes PR 14841.

original commit: a64dadc78c54fc04bfa8ac8ae9649f4178f0ae25
2014-11-18 17:49:27 -05:00
Asumu Takikawa
0d4b3e6a92 Relax parsing of All types and type annotations
Closes PR 14839

original commit: 27132ee0614955e25c5f1b80ed7f491ffca2de36
2014-11-18 13:59:34 -05:00
Asumu Takikawa
165240384b Memoize static contracts and resulting contracts
This commit uses memoization not just for Name types
but for static contracts for all types. It also adjusts
how Name contracts are generated to increase sharing
across multiple type->contract calls.

original commit: 18c1f095fcf47e0b935819ecb0c3f2b7a3e7fec1
2014-11-14 15:25:37 -05:00
Asumu Takikawa
23d7797c26 Remove dependency field from Name types
This was used for the old method of generating contracts
for these types but is no longer necessary.

original commit: 4d46985e58a0eb9ebe7cbe45063b6a28938df067
2014-11-14 14:55:13 -05:00
Asumu Takikawa
4c65f68004 Simplify construction/matching on Name types
original commit: 49ba06b583ade3ce2b67d38b3ddf9fc35b509eee
2014-11-14 14:08:59 -05:00
Asumu Takikawa
40bf75c689 Minor optimizations in type-alias-helper
original commit: 4b05d835f45226b9f4aa66f427525cb2c1142149
2014-11-14 13:43:57 -05:00
Asumu Takikawa
dcecff2c22 Add tests for two closed TR PRs
original commit: 89782125883555586ec07645ac798c8e28513ff6
2014-11-14 10:41:21 -05:00
Asumu Takikawa
c3997a5f35 Don't print the type at the REPL for Bottom
Closes PR 14829

original commit: 7725262771632dbd6078d03204ca24adaa66891f
2014-11-12 17:55:14 -05:00
Asumu Takikawa
24d43bffc5 Add base-env type for symbol<?
original commit: 16678aef6a00aceafce699afc2010a7b93bbcd2a
2014-11-12 01:01:06 -05:00
Asumu Takikawa
33978615f1 Add struct inheritance in type-environment
Use it to start adding types for a subset of
typed/racket/sandbox

original commit: b56eb4302282952bce152351ea7facbc6d73ebfc
2014-11-10 17:29:34 -05:00
Vincent St-Amour
1030f59a07 Fix interaction between early exits, filters and the optimizer.
Closes PR14828.

original commit: 517e22eee8ee87eb7048996c5a610edf426d073c
2014-11-07 15:55:49 -05:00
Vincent St-Amour
2d4c58ad3a Document surprising control flow.
original commit: 629b3119b85f7f08e12821d9d84b8028be0053f9
2014-11-07 15:11:47 -05:00
Vincent St-Amour
1e6eb14bde Fix comment.
original commit: 424e896da5e0133a214f863359e6956e85f2dd0d
2014-11-07 15:11:05 -05:00
Vincent St-Amour
0414e6e557 Document another TR optimizer bug found via random testing.
original commit: 547d52fe2728dba06a0d6d6d80a19a812ae21027
2014-11-06 13:47:27 -05:00
Asumu Takikawa
afa370a4b7 Remove an unnecessary syntax-parse expression
Not sure why this was there

original commit: c51a87dc366e9f76e99f03314c815147889c52e0
2014-11-05 17:03:52 -05:00
Asumu Takikawa
3eaa43a93e Fix expected type in test
original commit: 8137163b7fb630de6b2d13c787144e562aa2a4aa
2014-11-05 16:28:32 -05:00
Asumu Takikawa
ef993d3c61 Unbreak TR's top-level
A recent change I made broke optimizations at the top-level

original commit: 54dfd50b89122fd73d73977ff81b393f620c2785
2014-11-05 16:28:32 -05:00
Ryan Culpepper
9bf47d500e update typed/openssl protocol type
original commit: 96cefe88c4485d1242ae361522b59371709fbc3d
2014-11-05 13:40:59 -05:00
Vincent St-Amour
b50ecd0aca Compile the math library as part of the TR test suite.
original commit: 1d09fbde371c8475e8a1ce3dd9cc66e0f3ee95dc
2014-11-05 11:02:20 -05:00
Asumu Takikawa
fef047b54e Simplify contract generation code
Don't export type->contract except for testing. This
discourages direct use of type->contract in favor of
using the change-contract-fixup approach.

Also consolidate most of the contract-related syntax
properties into a single property containing a prefab
struct instance.

original commit: b374902bf3dd24e06f64017aa3d89e29ec6ffd42
2014-11-04 18:17:22 -05:00
Asumu Takikawa
541dcded61 Avoid direct use of type->contract in with-type
Eliminates the last remaining use of type->contract
outside of the type-contract.rkt file. This allows
all contract generation to go through a single point
of control.

original commit: 7b6ae09a2dcf04a5755f6f9256ff82369cc52403
2014-11-04 18:17:21 -05:00
Asumu Takikawa
809554a5a6 Change contract on change-contract-fixups
The context should provide a flattened list of syntax
to the function.

original commit: 4d806fb02dd18c6f067d84806eb8ca93051da0d2
2014-11-04 18:17:21 -05:00
Vincent St-Amour
481067f6cb Fix other bugs in type of expt.
Found using the new random testing.

original commit: ff0c101a648d2981231ebdb886aba8504094bd95
2014-11-04 18:12:14 -05:00
Vincent St-Amour
dd7884fd49 Fix type of expt.
Add expt to random testing.

Haven't seen one of those bugs in a while. Thank you Redex.

Closes PR14823.

original commit: 8b8130c38e211128f735a640f199213c80580f71
2014-11-04 18:12:14 -05:00
Asumu Takikawa
a4a2ccacc3 Eliminate special cases for top-level contract gen
Use the same mechanism as require/typed for doing all
contract gen for make-predicate, cast, etc. Also don't
special-case contract generation for top-level require/typed.

original commit: 1c5202ade74c922e7f3870c7bc3e505357a3ed85
2014-11-04 15:24:33 -05:00
Asumu Takikawa
b6d98917f5 Adjust contract generation for provides in TR
Use the same mechanism as ordinary require/typed to generate
contracts for provide forms.

original commit: 34076af389b717cb9840b960adb9a8761bd05db7
2014-11-04 12:57:52 -05:00
Sam Tobin-Hochstadt
aba90ebcff Fix require/typed/provide in no-check context.
Closes PR 14821.

original commit: 2221fa279c0c0425ad0f3c221021827a5feccd42
2014-11-03 09:14:57 -05:00
Asumu Takikawa
de18a43b33 Update TR type for current-process-milliseconds
original commit: 03153d46ecebccab845797d1c1599a914ae26743
2014-11-03 01:25:15 -05:00
Asumu Takikawa
89f25ec981 Fix Editor<%> and Snip% types
original commit: f59b36a9511032be224108c31fc716e71124521f
2014-11-02 22:10:43 -05:00
Asumu Takikawa
f06ce2dbb7 Adjust type of log-level? for recent changes
original commit: 566668e0b9613c53a196e265f96722ddf73f753b
2014-11-01 21:48:18 -04:00
Asumu Takikawa
decd61de65 Fix type for window<%> for TR
Closes PR 14812

original commit: d6b3434cc611d2240483c66c4f8e7b3f326ef93e
2014-10-31 11:16:03 -04:00
Asumu Takikawa
26345f7e8e Fix ordering issue in typechecking inner calls
Closes PR 14810

original commit: b7eeaf7608ee3e46f6c8923957362920af3c61b6
2014-10-30 03:22:09 -04:00
Asumu Takikawa
d51769c39f Add suppport for weak boxes in TR
Closes PR 14771

original commit: 7829776f728432f6c3642c4282e4731500953ac1
2014-10-30 03:22:09 -04:00
Asumu Takikawa
18e484c116 Fix/add base-env types for Ref 14.4.3
original commit: 872e21eff13087f63cd0d366c17effe040a4aeee
2014-10-29 01:08:21 -04:00
Asumu Takikawa
e0d79e11c9 Send thunks to check-syntax for type tooltips
This avoids the cost of computing the printed types
to some degree. It still does have overhead (~5%) over
not computing anything related to tooltips because of
the cost of traversing the type table and computing
tooltip locations.

original commit: 64bc7d4e859e84ce044fd7f72043e26218553c58
2014-10-28 17:41:58 -04:00
Sam Tobin-Hochstadt
9e628b19f7 Add implies from typed-racket-lib to unstable-contract-lib.
Typed Racket, as of 8ea8c54eb, can add explicit require lines
to the expanded module, which can confuse the dependency
analyzer. An explicit implies declaration avoids the problem,
although I'm not sure that this is the right solution.

original commit: 8582d94507ae6b2c3c710b6e244a037461bef0f7
2014-10-28 15:12:32 -04:00
Sam Tobin-Hochstadt
ed1696b221 Avoid requires of contracts when they're not used.
This changes when various libraries that provide contract
support to possible contracted bindings to declare when
those bindings are needed.

Probably, each static-contract combinator should manually
add to the list, instead of having one fixed static list,
but this is a start.

Saves about 10ms in startup for an empty TR module on my
laptop.

Thanks to Robby for the idea.

original commit: 8ea8c54eb47faac7c0d8bcd868a9b12f8ea2e142
2014-10-28 12:04:49 -04:00
Asumu Takikawa
78d3d613fe Fix init order of choice%'s type
original commit: 6ad017a1e9bd042d41266fc81244682f87731ae2
2014-10-24 15:33:52 -04:00
Asumu Takikawa
a8719e9823 Avoid computing type tooltips twice
The logging code in tc-toplevel.rkt is sufficient to get
all the type tooltips.

original commit: 17cafe652e13049fc05540c4ae2bd6f93559244d
2014-10-24 01:00:30 -04:00
Asumu Takikawa
086aac734b Fix checking of (list ...) w/ union expected type
Closes PR 14758
Closes PR 14747

original commit: 5138614abacb7309213e772fe3701a8c9c882f37
2014-10-23 23:01:28 -04:00
Asumu Takikawa
1b8619bc14 Simplify TR class macro handling of names
Instead of using a syntax-property hack, just disarm the
expanded syntax (TR will do this later in the pipeline anyway).

original commit: 375abf3c2b26b76044a63c1e0d8bd16cc4f52a38
2014-10-23 00:48:05 -04:00
Asumu Takikawa
3399923ab8 Export disarm* with protect-out
original commit: 9e242fbaef72125708e51d1091bcd24a86823b6c
2014-10-23 00:47:41 -04:00
Asumu Takikawa
758d4a64b0 Fix typed private class fields with functions
A public method definition and a private field that contains
a function are hard to distinguish without traversing the entire
class body, which caused TR to fail to detect the private field
case. TR now uses more compile-time state to precisely
distinguish the cases.

Also fixes a related bug in which TR would incorrectly handle
multiple private fields defined with a single `define-values`.

Closes PR 14788

original commit: 670c8576851cb21e910778f913270a0752e7ede4
2014-10-23 00:20:07 -04:00
Vincent St-Amour
85bd67a8b0 Prune argument types too in error messages.
Closes PR 12907.

original commit: 9c30da7682a96a5fbb7f4dd6afebafb8006d8274
2014-10-22 13:58:42 -04:00
Asumu Takikawa
192f85b684 Add contracts and omit an unused definition
original commit: 200f1cdb45b69674ed9ba91e68855d323fb7a3b6
2014-10-21 10:14:50 -04:00
Asumu Takikawa
905058e07c Greatly reduce size of class static contracts.
This helps generate contracts for GUI classes using less
time and memory.

original commit: dc578cdbc0496fe5bdfd2238981e8e3ac206756b
2014-10-21 10:14:50 -04:00