Commit Graph

3795 Commits

Author SHA1 Message Date
Stevie Strickland
eb320ad75d Revert last change.
original commit: ce58c4c6763f6ee31604f38660e3165f29096931
2008-06-20 15:47:22 -04:00
Sam Tobin-Hochstadt
9810d79ec5 Remove no-longer-needed inst.
original commit: b2edd9d19754b1297ce02eb04d591ccc7f29e46a
2008-06-20 15:27:59 -04:00
Sam Tobin-Hochstadt
34df17ddb4 Use the X from cgen/list to create the empty cmap.
This allows (vector) to have type (Vectorof (U))

original commit: 0366745cbf3e8308b9700305c7e187aa260119ba
2008-06-20 15:27:46 -04:00
Sam Tobin-Hochstadt
b133c45645 Small changes needed after changes to infer.
original commit: 89cb3a4b09243dcc3bf292cfd682f226e1f2d326
2008-06-20 14:46:24 -04:00
Sam Tobin-Hochstadt
f2b3eadd88 Correct and incorrect uses of dotted identity
original commit: bec9c11fd4d61bceb966b06e5a9517d286af9ca4
2008-06-20 13:07:42 -04:00
Sam Tobin-Hochstadt
53200d23db * Added code to check that substitution gets rid of all appropriate
variables (and fails if not)
 * Added weird dotted as subtype of * case (dcon-exact)

original commit: 6296ffbfcf85a624227f11f486fb195954e4479b
2008-06-20 13:07:08 -04:00
Stevie Strickland
ee044ee4c4 * Add the ability to substitute in starred types for dotted when
we've inferred it.
 * Try and consolidate a lot of the error printing with domain mismatches.

original commit: 654d7e2f4683f65ba7d0a12491d4b3b834bd70f3
2008-06-19 19:14:32 -04:00
Stevie Strickland
8a6adc82da Another change.
original commit: a1f078fb591d87b572864f80b152a9f1e462b10a
2008-06-19 19:12:39 -04:00
Stevie Strickland
20fdbea031 Another example, putting in starred for dots.
original commit: af12feb72972ca9f5c0ae71573be43101c93dc76
2008-06-19 19:10:05 -04:00
Sam Tobin-Hochstadt
ffc0331fa7 New test
original commit: 2bf691991c2c7316cb2f4b30677a7fd424f7e4dc
2008-06-19 18:04:30 -04:00
Sam Tobin-Hochstadt
6a3dbebd07 Do substitution properly from dmap.
original commit: 0f142d97e3d2d995fa18f694e211cbdabf814bbf
2008-06-19 18:04:19 -04:00
Sam Tobin-Hochstadt
2e4d817391 More tests!
original commit: e62598ef08326c3a0f20a57c5b8370d0319473a5
2008-06-19 16:55:26 -04:00
Sam Tobin-Hochstadt
8338ee8756 * Add constraints when matching t1...a to t2...b
* Do inference when you have (apply f ... xs), f and xs are dotted,
   and on different bounds.
 * Add fold-right to extra-procs and its type to base-env

original commit: b9e1676a55ab3f8d454a58aa290a0dcb0ecce414
2008-06-19 16:55:06 -04:00
Sam Tobin-Hochstadt
8be54e9a3b Add unit test for dotted instantiation, and add version of
fold-left/fold-right that explicitly instantiates the
recursive call.

original commit: 2a7dbe2a80d34abc5097e144b80bda9965546703
2008-06-19 14:59:19 -04:00
Sam Tobin-Hochstadt
da03725d19 * Split apart identifier typechecking and type instantiation
* Add dotted instantiation (replacing bounds with different bounds)
 * Fix some macro issues, including syntax locations
 * Fix more effect inference

original commit: bb8d8e23d81c7f1324d1bfc8b33882fc71f94503
2008-06-19 14:57:35 -04:00
Sam Tobin-Hochstadt
8e48f42184 Fix test to expecte effects.
Remove useless annotation.

original commit: 36408a32d5526038ecda7c8b05ba844868a0ac5e
2008-06-19 13:23:27 -04:00
Sam Tobin-Hochstadt
b3223cab41 Fix tests, add filter tests.
original commit: 1af866586ec8e5497e4d4564ac1b129f4c0a02e4
2008-06-19 12:41:06 -04:00
Sam Tobin-Hochstadt
3aeffe3d9f Fix filter type.
svn: r10374

original commit: 1880eb4afbbc5044d9643038cec7338f3051bc24
2008-06-19 16:07:12 +00:00
Sam Tobin-Hochstadt
3ea5cf0e61 Fix type of filter, and inference w/ effects.
original commit: 3fd969651fbb7c90983ae76542c80391624e1f39
2008-06-19 11:57:07 -04:00
Sam Tobin-Hochstadt
7f4b1a5cd1 Fix macro impl.
original commit: 23aeff8c3bdc57442164d9865411f867917b7448
2008-06-19 11:12:32 -04:00
Stevie Strickland
f939f616f5 Lift out the recursive call, since that'll be shared across all substitutions.
original commit: f68efe9e317a53de87a4acb7e15875f4364044b7
2008-06-18 23:48:31 -04:00
Stevie Strickland
156c0d0d38 I'm not sure what to do about this, given the recursive sb call.
original commit: 51ec643172e3893701b2a68ca7a5430ddac7ee8c
2008-06-18 18:53:46 -04:00
Stevie Strickland
8cc53d8936 Instantiation... seems to be broken. Adding unit tests to alert us to that
fact.

original commit: 8256f922f9c9cd2e24261b4309700c7e896c4454
2008-06-18 18:22:16 -04:00
Stevie Strickland
395e0fc733 Otherwise we don't handle nesting.
original commit: 052849c1bbca03cd4aa778665da87f919959c48f
2008-06-18 18:09:50 -04:00
Sam Tobin-Hochstadt
a290297005 Fix identifier issues in fold-left/fold-right.
original commit: 8a66c759dc293fb822d89c99b8ec56dd3289c80d
2008-06-18 17:36:12 -04:00
Sam Tobin-Hochstadt
385809eca8 Tests in here that now succeed
original commit: b5bfb189610fed971b4a37f5a4191d72dc66548e
2008-06-18 17:22:16 -04:00
Stevie Strickland
5c8a9dfc5d I don't know why this wasn't caught before, but with recent changes, it's now
caught correctly.

original commit: f1211df156a37c709bc6f13077bc0430cd901617
2008-06-18 16:16:11 -04:00
Stevie Strickland
b6fda17f3a Remove this, as it isn't needed.
original commit: 449a784c1da3a658b84cf53b7ebead5909bd4fa0
2008-06-18 16:03:45 -04:00
Stevie Strickland
b59b032342 Split this out into what should succeed and what should fail.
original commit: f80711bc9e3eb33aae1b9bb52d7f9033a1d83936
2008-06-18 15:07:00 -04:00
Stevie Strickland
0af62b0c58 Forgot to add stars here.
original commit: 0c6ad7f08be86584eea8daab5c96728dbbd7e982
2008-06-18 15:06:48 -04:00
Stevie Strickland
1bbdcf1ccf New test for lambda formal list mismatches.
original commit: 467b138cdacde26bcad3bbb9955fc62cfa9f1536
2008-06-18 15:03:12 -04:00
Stevie Strickland
9544bcbd1f Add * where appropriate.
original commit: 4b3508a89004c5334e856ad0f5b6988881097775
2008-06-18 13:01:43 -04:00
Stevie Strickland
a8a55f440a * Should have used star (bound in syntax-case), not just * in type-of-formals
* I'm pretty sure ann should never get a starred or dotted type, since those
   can't appear outside of an arrow context.

original commit: 4010a39c2d177f56c79ca561f02b00bc082d9bdd
2008-06-18 12:57:52 -04:00
Stevie Strickland
978e6acffa No need for this, it's handled by a case lower down (and correctly, so why
force changes in two positions?)

original commit: 6a30c9dec99921e7ffff058bbb130b72a2695f55
2008-06-18 12:45:08 -04:00
Stevie Strickland
9d55a9e592 * Enforce the use of a '*' in list-like rest args.
* Abstract out annotation errors so that we can report it in the other case
   where it's useful.

original commit: c2a53b316be90d81b1af0afd4acb4f22b5dc57c9
2008-06-18 12:31:08 -04:00
Sam Tobin-Hochstadt
f8ed6299c4 More tests. Not all of them pass yet, but we are hopeful.
original commit: 8e498458aa635b201db6c005241d436f644c940d
2008-06-17 18:10:41 -04:00
Sam Tobin-Hochstadt
4271f734a6 Checkpoint.
original commit: dfdfae95d7d16ef3fa97503cfa0156101dc275b3
2008-06-17 18:10:17 -04:00
Sam Tobin-Hochstadt
4853428482 Don't produce extra errors for top-level defines.
Lots more error message improvements for application.
Work on polydots apply.
Extend environment only in the proper place in plambda.
Don't let a variable unify with a dotted variable.

original commit: c8a2810742514c9f78b006930e6f327794af0228
2008-06-17 16:28:34 -04:00
Sam Tobin-Hochstadt
2a935208e9 New tests
original commit: 3f180f88daf777504d1d210cb9115118cab629b8
2008-06-17 16:24:30 -04:00
Sam Tobin-Hochstadt
64c709bbb7 New tests
original commit: 59e2dc4dea772cae5af0a2c7b72b1737864afb20
2008-06-17 14:28:41 -04:00
Sam Tobin-Hochstadt
265f9c9009 Adding testcases for dotted function application to rest args via apply.
original commit: 93c937f909b431fa64c49515ae66d87f42711e2b
2008-06-17 12:58:15 -04:00
Sam Tobin-Hochstadt
a313b99999 Add handling of dotted functions when not wrapped with a big lambda.
original commit: 1bef5f9d0b7af964d904575dc6976d132ba76b5c
2008-06-17 12:57:29 -04:00
Sam Tobin-Hochstadt
ca3e58f3a6 Use map instead of map*
original commit: c7733e5e34dfb6f22d7ddb07c5e17192a5679b91
2008-06-17 10:46:39 -04:00
Stevie Strickland
e3734750db Add examples of each.
original commit: bcb205a9303bdda29c94f5239e919ceef90145bb
2008-06-16 19:02:45 -04:00
Sam Tobin-Hochstadt
31f4011387 Definition (but not use) of ... vars
original commit: 1b998d7eb8b2f35d5daf0f991bf33fc45bd4e06d
2008-06-16 16:47:08 -04:00
Sam Tobin-Hochstadt
8d9ca01cf5 Source location in synthetic module begin.
original commit: 055eb3cd0b2b1f57d79808c40e3dc5566b94d65b
2008-06-16 16:34:09 -04:00
Sam Tobin-Hochstadt
2afa0ac8f1 Change map* to map.
original commit: a43b2f5681c576e9b22ff7926ca48ddacfcbcfc2
2008-06-16 13:28:27 -04:00
Sam Tobin-Hochstadt
12aef5cc7e Remove map*
original commit: fdb780fb00cb13fbdd1bd08c544af092f75aeb44
2008-06-16 13:27:59 -04:00
Sam Tobin-Hochstadt
5f244e7f42 Fix for-each type.
Improve ... error messages.

original commit: 2ad440310828bc296223e23db3cdee84ad5fce34
2008-06-16 13:26:15 -04:00
Stevie Strickland
b760e45d17 Change over some of the base environment over to dotted types.
original commit: c4e253d2d18020b428612227dac6bd789b59d43c
2008-06-16 13:01:16 -04:00