Commit Graph

157 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
acd6664c52 Fix call with correct # of args. 2008-07-07 15:24:09 -04:00
Sam Tobin-Hochstadt
17dec0046f Remove debugging code. 2008-07-07 15:05:51 -04:00
Sam Tobin-Hochstadt
807336e262 Actually check that lengths are equal. 2008-07-07 15:03:23 -04:00
Sam Tobin-Hochstadt
2844dec0a1 make-Values now checks its argument for having only 1 element 2008-07-07 14:58:22 -04:00
Sam Tobin-Hochstadt
d0939ffa1e Fix up singleton values 2008-07-07 14:49:46 -04:00
Sam Tobin-Hochstadt
044bd551b0 stevie is magic 2008-07-07 14:39:10 -04:00
Sam Tobin-Hochstadt
61cefef89c More info in internal errors.
Fix substitution in nested ... case.
2008-07-07 14:25:15 -04:00
Sam Tobin-Hochstadt
3cd8878999 This shouldn't be here :p 2008-07-07 13:13:32 -04:00
Sam Tobin-Hochstadt
e06a22c29b remove trace 2008-07-07 12:27:08 -04:00
Sam Tobin-Hochstadt
c43c3baa67 values with dots 2008-07-07 11:01:42 -04:00
Stevie Strickland
1aaa6995a1 Try to handle type errors in non-original syntax a bit better. 2008-07-03 12:03:18 -04:00
Sam Tobin-Hochstadt
c9e8f6d6f6 Refactoring. 2008-07-01 16:44:49 -04:00
Sam Tobin-Hochstadt
12b7c6c459 Fix handling of dotted <: starred hard case 2008-06-24 11:43:30 -04:00
Stevie Strickland
705685af8b Add stuff that isn't useful yet, but might be useful for a lattice for future
work.
2008-06-20 20:03:56 -04:00
Stevie Strickland
6a8b7e2e14 We should infer on the dotted var also, for the case where the underlying
function's type and/or the arguments to said function use it.
2008-06-20 17:49:43 -04:00
Stevie Strickland
a6ea8d7954 Revert last change. 2008-06-20 15:47:56 -04:00
Sam Tobin-Hochstadt
0366745cbf Use the X from cgen/list to create the empty cmap.
This allows (vector) to have type (Vectorof (U))
2008-06-20 15:27:46 -04:00
Sam Tobin-Hochstadt
b57519d398 Be AR about order of arguments to cgen* (cgen/list took X V, not V X) 2008-06-20 14:52:53 -04:00
Sam Tobin-Hochstadt
a6cd9ea2cd * Fixed calls to infer that didn't give must-vars argument
* Fixed promote/demote so they check the dotted bound, not free vars of type
 * Stopped promote/demote from promoting/demoting away dotted bound
 * Stopped promotion/demotion of dotted bound in cgen/arr
 * Improved debug macro
2008-06-20 14:48:47 -04:00
Sam Tobin-Hochstadt
6296ffbfcf * 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)
2008-06-20 13:07:08 -04:00
Stevie Strickland
654d7e2f46 * 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.
2008-06-19 19:14:32 -04:00
Sam Tobin-Hochstadt
0f142d97e3 Do substitution properly from dmap. 2008-06-19 18:04:19 -04:00
Sam Tobin-Hochstadt
b9e1676a55 * 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
2008-06-19 16:55:06 -04:00
Sam Tobin-Hochstadt
bb8d8e23d8 * 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
2008-06-19 14:57:35 -04:00
Sam Tobin-Hochstadt
3fd969651f Fix type of filter, and inference w/ effects. 2008-06-19 11:57:07 -04:00
Sam Tobin-Hochstadt
23aeff8c3b Fix macro impl. 2008-06-19 11:12:32 -04:00
Stevie Strickland
f68efe9e31 Lift out the recursive call, since that'll be shared across all substitutions. 2008-06-18 23:48:31 -04:00
Stevie Strickland
51ec643172 I'm not sure what to do about this, given the recursive sb call. 2008-06-18 18:53:46 -04:00
Stevie Strickland
052849c1bb Otherwise we don't handle nesting. 2008-06-18 18:09:50 -04:00
Sam Tobin-Hochstadt
082545adc9 Just handle PolyDots of stuff not involving dots like the other cases. 2008-06-18 17:36:38 -04:00
Sam Tobin-Hochstadt
7f0a330c0c Adding drest capability to lambda formal checking. 2008-06-18 17:21:53 -04:00
Sam Tobin-Hochstadt
e77ad12feb Add debug macro, and fix check-below to return appropriate values. 2008-06-18 16:52:04 -04:00
Stevie Strickland
3e4e5af03c Thinkoed, all of them should have -lst added. 2008-06-18 16:10:54 -04:00
Stevie Strickland
6986b12618 Fix extra -lst call that shouldn't be there. 2008-06-18 16:03:33 -04:00
Stevie Strickland
5299c9fd5a Consolidate errors so they only happen once (could get rest arg-related
error and formal number mismatch error), and then consolidate code.
2008-06-18 15:57:41 -04:00
Stevie Strickland
948286f0c6 Rework how lambda formals are handled to try and guess something more
correct when there's a mismatch.
2008-06-18 15:02:54 -04:00
Stevie Strickland
17937f5451 Fix up lambda formal handling so that if we get too many or too few formals
for the appropriate type, we associate the correct types with the formals
we do have.  If we have more formals than types, then a rest-arg function
will have the extra formals as the type of the rest-arg, else we will just
make them bottom.
2008-06-18 13:39:58 -04:00
Stevie Strickland
4010a39c2d * 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.
2008-06-18 12:57:52 -04:00
Stevie Strickland
6a30c9dec9 No need for this, it's handled by a case lower down (and correctly, so why
force changes in two positions?)
2008-06-18 12:45:08 -04:00
Stevie Strickland
c2a53b316b * 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.
2008-06-18 12:31:08 -04:00
Stevie Strickland
2b4f1691fa Add an informative comment here. 2008-06-17 22:09:04 -04:00
Stevie Strickland
bd43b23f74 Both of these have the same errors right now, so factor that out into a
function.
2008-06-17 22:01:57 -04:00
Stevie Strickland
f86702122d Fix up error messages to take drests into account. 2008-06-17 21:47:10 -04:00
Stevie Strickland
8bb0890184 I dunno if I like this, but we really shouldn't delay this error, as
it should get caught when we attempt dotted vars for testing.
2008-06-17 21:38:05 -04:00
Sam Tobin-Hochstadt
dfdfae95d7 Checkpoint. 2008-06-17 18:10:17 -04:00
Sam Tobin-Hochstadt
c8a2810742 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.
2008-06-17 16:28:34 -04:00
Sam Tobin-Hochstadt
ddbb045a3e Handle polymorphic apply with more args than fixed formals. 2008-06-17 14:29:05 -04:00
Sam Tobin-Hochstadt
1bef5f9d0b Add handling of dotted functions when not wrapped with a big lambda. 2008-06-17 12:57:29 -04:00
Sam Tobin-Hochstadt
8bf60f9faf Mask exn's where necessary. 2008-06-17 10:46:28 -04:00
Sam Tobin-Hochstadt
8d810160f2 Only use free-identifier=? when it's an identifier. 2008-06-17 10:43:37 -04:00