Commit Graph

133 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
382a771d75 Better error message for inference with keywords.
Do inference when loop is unannotated, even when argument are.
Don't infer for ((lambda when vars are annotated.
Make promise contracts work.
Fix types of min, max, port->lines, subbytes,  bytes-length, bytes, bytes-ref

svn: r16397

original commit: a5849fb05af85c586bbd730d220b324018a6673e
2009-10-21 13:30:03 +00:00
Sam Tobin-Hochstadt
387ee8193b Add `typed/scheme/system'
Special handling of (letrec ([x e]) x)
Allow functions with optional keyword args to be inferred when kws not supplied.
Infer instantiations for kw functions in simple cases.
Add `Path-String' type
Fix types of `filter', `with-{input-to,output-from}-file'
Add `port->lines'
New 'metrics.ss' test

svn: r16385

original commit: 37106bd6f7241277288ad56a3c75aef53cdfc3c3
2009-10-20 18:30:37 +00:00
Sam Tobin-Hochstadt
9c607d6779 Don't error for branches with wrong number of results where return type is Bot.
Allow case-lambda to be subtype of equiv union type.
Add types for path?, fold-files, assert

svn: r16357

original commit: 6a83901a8bd60ccea014f84238a378749573beb2
2009-10-18 01:10:00 +00:00
Eli Barzilay
43b5710477 require trace, not
svn: r16223

original commit: 44fda2f304627a0e36f8e505cf5bf3bd9d4ff729
2009-10-02 20:37:03 +00:00
Sam Tobin-Hochstadt
cc3c031d80 Fix bug with use of match with ... and annotation.
svn: r16216

original commit: 6efd0abc13711b0ca3f75b7c6460291ffb77b8d9
2009-10-02 16:20:30 +00:00
Ryan Culpepper
8eb494615f removed old stxclass collection
Please apply to release branch.

svn: r16047

original commit: 987ab4c5e8c4548b9eb87f6f78c75b6877118065
2009-09-17 16:11:20 +00:00
Sam Tobin-Hochstadt
535ec1720f fix uses of syntax-parse attributes
svn: r15984

original commit: ed65dacdcd2c4c2d2cfe2177865598c97903dfd7
2009-09-11 22:49:56 +00:00
Sam Tobin-Hochstadt
87d48f63ef Remove last uses of stxclass.
svn: r15976

original commit: 5fc019ba6c8d0a9ca21c05c4a92f8476e348f407
2009-09-11 17:49:50 +00:00
Sam Tobin-Hochstadt
8898a34829 Remove almost all uses of `stxclass' library.
svn: r15944

original commit: eda69b472ad5de8874ddf99b40f04dea22a9672e
2009-09-09 21:24:05 +00:00
Sam Tobin-Hochstadt
cf872c4e38 New type parser, written using syntax/parse.
- uses keywords with bindings
 - : macro in separate file so it can be used earlier
 - internal function in separate file
FilterSet/c and LatentFilterSet/c contracts
Avoid returning #f when `look-for-in-orig' fails
Add type for unsafe-cdr

svn: r15923

original commit: 63d318fd4b7e7244af10fff21db74f0d09db5006
2009-09-08 19:51:34 +00:00
Sam Tobin-Hochstadt
5caab968c2 fix keyword application handling for new expansion
svn: r15864

original commit: 799027d40f74bcb08071bf4ecd222d5c3133b67c
2009-09-03 07:54:32 +00:00
Sam Tobin-Hochstadt
c315e83375 Handle type ascription and type instantiation better with expected type.
Add remove-ascription
Identify incorrect element of wrongly typed list.
Use function argument types as expected types.
Allow multiple uses of orig-module-stx, older one takes precedence.

svn: r15857

original commit: b3dde2ca7f0e343e207deb2d983785a7fea64a1b
2009-09-01 22:25:35 +00:00
Sam Tobin-Hochstadt
dec8803f27 when result type is dotted, pass it through tc-expr/check
svn: r15737

original commit: 5174bbb5f062011c2edfe7a0403071055830f55f
2009-08-14 20:27:53 +00:00
Sam Tobin-Hochstadt
1d9468f30a return a better type
svn: r15736

original commit: 83e0ec2b407fc06092757cdec0ec898c415b3818
2009-08-14 19:44:46 +00:00
Sam Tobin-Hochstadt
51eff5eeb3 improve docs for opaque types
fix pr 10106

svn: r15723

original commit: 79c4f9651eb49299e22631d5a0342f84e52237d9
2009-08-12 22:22:54 +00:00
Sam Tobin-Hochstadt
f5e92fdd23 fix pr 10097
svn: r15722

original commit: 614980f6ec32bab5f18aada279d008501ec21898
2009-08-12 22:05:41 +00:00
Sam Tobin-Hochstadt
0b7ccf2e4b fix 9967
svn: r15720

original commit: 6af7d327099ad47227a8df7e513b61e7341178a7
2009-08-12 21:52:21 +00:00
Eli Barzilay
01e9263aa0 use spaces instead of tabs to indent output
svn: r15719

original commit: 95f4d1eefe54b69b5ea81de4e4a0cda55e261a99
2009-08-12 21:37:33 +00:00
Sam Tobin-Hochstadt
031ca17732 improve types for numeric predicates
fix pr 9767

svn: r15717

original commit: 50b7a0b190ffea945aa012ad1be005bf3bd15030
2009-08-12 20:42:20 +00:00
Sam Tobin-Hochstadt
3df1a5b1a8 Allow filters/objects to be provided to untyped code.
svn: r15706

original commit: 50545830f2bc3176fb0e34d828d8fdbd4c6eb7fc
2009-08-11 21:00:57 +00:00
Sam Tobin-Hochstadt
534e5e48aa Move student expansion above or.
Improve printing when no object.

svn: r15704

original commit: 28be0897c32bf7d614c0a339c9a6d1271e709b57
2009-08-11 20:19:19 +00:00
Eli Barzilay
40fa4f26b2 Newlines at EOFs
svn: r15380

original commit: a70bf64fd9d68487c128282ca85a8964e1592711
2009-07-04 02:28:31 +00:00
Sam Tobin-Hochstadt
6d02292d53 Use let/ec instead of let/cc
let/ec: and let/cc:
type for call-with-current-continuation
Start on ImpFilters

svn: r15220

original commit: 5b79cd7c0c7ec1298573d15b0c79abd403cdcf58
2009-06-19 18:01:33 +00:00
Sam Tobin-Hochstadt
ab3e94b6e2 Add NoFilter and NoObject to represent no information about filter/object.
Handle these properly in check-below (with test).
Use NoFilter and NoObject to make if typechecking work properly with filters.
Reject mismatched filters/objects (with test).

New version of require/typed that handles opaque and struct requires.
Reorganize docs around this.

svn: r15155

original commit: 7b82069fa0805e3de16c9a49d6c303789fc75419
2009-06-12 19:04:39 +00:00
Sam Tobin-Hochstadt
63589b9574 Improve error messages and printing.
Turn off contracts.

svn: r14947

original commit: c27dccb9d8a5e475bc4b592995c183e1d946cd2b
2009-05-22 22:30:24 +00:00
Sam Tobin-Hochstadt
ec01788aeb move new-if to if.
svn: r14942

original commit: 844cbc678210650cf8c0f7982f1cc4179b46d20b
2009-05-22 22:06:48 +00:00
Sam Tobin-Hochstadt
aecfeceb3b remove obselete code
svn: r14941

original commit: 2a55bec3352dff0b9d29ba72d5df61bb0a16b94f
2009-05-22 22:05:56 +00:00
Sam Tobin-Hochstadt
136f8c4f80 Instances can have any Type as their class.
Fix some handling of tc-results as pertains to classes.
Bottom is an ok Class.

svn: r14938

original commit: 7d239a4dfaa5d44e2bdbb8ebc31b72bbd3f87b61
2009-05-22 21:41:12 +00:00
Sam Tobin-Hochstadt
39eca53d55 Use tc-result1: instead of tc-result: in object handling.
Use tc-results->values instead of bogus version.

svn: r14937

original commit: 0feb99f6bc08fdff518cf9587438ab4e46493166
2009-05-22 21:19:46 +00:00
Sam Tobin-Hochstadt
09d6ee6b77 Untyped top-level variables are not an internal error.
Handle latent filter of LBot in values->tc-results when there are no formals.
Use check-below properly in tc/mono-lambda/type

svn: r14935

original commit: 2ee1d2b5962343cd86e520879e88b7e092cf3bb7
2009-05-22 20:07:36 +00:00
Sam Tobin-Hochstadt
44e0580370 Fix construction of predicate type for `declare-refinement'.
svn: r14933

original commit: 7237ad6046a636b4ce0f5f1354fc0ff9237e416c
2009-05-22 19:26:06 +00:00
Sam Tobin-Hochstadt
e48efb7618 Handle return of Bottom to context which expectes multiple values.
Check values length before using for/and.
Add back ormap/andmap special case for ... args.

svn: r14930

original commit: 7e6c1be6b0886bcd73e308930f313341eaa73add
2009-05-22 19:09:19 +00:00
Sam Tobin-Hochstadt
ec5105962f Fix keyword argument handling - sort of hackish.
svn: r14924

original commit: c8828d0638d6d6ccc1e437ae79e5b82a9937b6ce
2009-05-22 18:18:34 +00:00
Sam Tobin-Hochstadt
4e1108f138 Convert to syntax-parse.
Use tc-results->values where appropriate.

svn: r14891

original commit: 06e252b1a15cfe159f4f6c2047ccbaf01e895009
2009-05-20 23:54:14 +00:00
Sam Tobin-Hochstadt
8ccd47ab1c Remove lots of debugging code.
Use `needs-resolving?' in subtype.
Make resolve-{app,name} handle not-yet-bound names.

svn: r14890

original commit: c4762078e32003f60402872f27ce94f2561f7b15
2009-05-20 23:40:03 +00:00
Sam Tobin-Hochstadt
1265433a2e Sort unions on re-construction to make contract happy.
Use resolve-once more.
Improve `overlap', in particular use keys.
Resolve names and apps before doing structure comparison.

svn: r14884

original commit: 19c4aa6ba450fdbcaf927fd6391987cc4deca69e
2009-05-20 18:35:59 +00:00
Sam Tobin-Hochstadt
fc2b7f344d Pass the right argument to unfold.
Fix tc/rec-lambda/check for tc-results in appropriate places.

svn: r14871

original commit: 6d1257e624f6165003af3ddb53d8a3fdf91a14ce
2009-05-19 16:27:44 +00:00
Sam Tobin-Hochstadt
65c216e99d Add flag for testing unreachability in env+.
Use flag in if-unit.

svn: r14870

original commit: eedafc034b99545161a3a3d254cbf43d73cc8b55
2009-05-19 15:24:55 +00:00
Sam Tobin-Hochstadt
a3d05e4cec Remove tc/if-twoarm/check
svn: r14860

original commit: 5f1895cfb587de8072572cdd3090db8e355a3d26
2009-05-18 22:19:05 +00:00
Sam Tobin-Hochstadt
2799f30a5f take path elems from the end
svn: r14859

original commit: b8f944679e9ff255d094c4b50baa619364ae2813
2009-05-18 22:18:47 +00:00
Sam Tobin-Hochstadt
936629c1b1 Fix handling of structs-as-functions.
Subtyping should look up names in both positions.

svn: r14827

original commit: ddefd28d6d2bc1b5bacb7f2ef6667e90d6ba8165
2009-05-15 15:47:22 +00:00
Sam Tobin-Hochstadt
16f0b6a30b Fix typo so cdrs in paths are handled.
svn: r14826

original commit: b2cf9c0006bb8db35d1de5a0d48042d8958b48c2
2009-05-15 15:05:53 +00:00
Sam Tobin-Hochstadt
077ec2440e Handle ValuesDots in check-below.
Fix typo in valuesdots handling in values->tc-results
Handle ValuesDots in do-ret.
Don't try to construct silly wrappers for `apply values'
Don't use rest as list extension if it's #f
Fix tc-result handling for check-subforms/check
Add stronger contracts for Scope
Always generate substitution for infer/dots.
Fix type of `time-apply'

svn: r14815

original commit: 1047f7625d2dfa53d2896fa44fde732873d86ba4
2009-05-14 18:57:02 +00:00
Sam Tobin-Hochstadt
e9a029e899 Add some contracts in tc/plambda.
Fix handling of tc-results vs types.

svn: r14812

original commit: 775fa34f5f0ffeef340e477192606a5beea4734a
2009-05-14 15:11:33 +00:00
Sam Tobin-Hochstadt
d825cc12d7 rationalize get-type/infer to handle tc-results.
Fix tc-let to handle tc-results in various places.

svn: r14796

original commit: a3fb3575f9daccccc8ec053d585f3e8e9e192748
2009-05-13 16:16:39 +00:00
Sam Tobin-Hochstadt
b9ec9f145e Enable inference for ((lambda with rest args when no annotation on rest arg
svn: r14794

original commit: 8ca532220a402daace37d5b539d5c95c85e83544
2009-05-13 14:34:44 +00:00
Sam Tobin-Hochstadt
dd1270237f Fix inference when filters/objects are not needed
svn: r14790

original commit: 8fc6e38b1195cae7463ca277a8e2b06678961eb7
2009-05-12 21:31:21 +00:00
Sam Tobin-Hochstadt
4b6d8992b8 Special case for `call-with-values'
handle subtyping with ... args

svn: r14788

original commit: a8a64cfa7c6f50b7f01ecfe4f06f02e4ed769708
2009-05-12 20:56:32 +00:00
Sam Tobin-Hochstadt
f33aee2881 Type goes before symbol in drest.
Handle tc-results properly in a few places.

svn: r14785

original commit: ce9f98098d8c6429e8586d3ff0cbe1cca2477ba0
2009-05-12 16:53:24 +00:00
Sam Tobin-Hochstadt
d7d9932f89 Allow objects to be specified in ->
Fix overlap to handle overlapping base types (numbers)

svn: r14781

original commit: 7b4081eef114343991472b0839e336d35301802a
2009-05-12 15:13:17 +00:00