Michael Sullivan
7a05f1db7c
Fix closures over dynamically-sized polymorphic values.
2011-08-01 15:19:55 -07:00
Michael Sullivan
601c299d52
Fix closures over known-size polymorphic values.
2011-08-01 15:18:44 -07:00
Michael Sullivan
a32f287c8a
Add a GEPi function that wraps GEP with integer arguments.
2011-08-01 15:18:44 -07:00
Marijn Haverbeke
92240eb25b
Add check for irrefutable patterns in destructuring locals
2011-08-01 17:52:43 +02:00
Marijn Haverbeke
985c32ef4c
Partially implement destructuring locals
...
You can now say
let {bcx, val} = some_result_returner();
Similar for loop variables. Assigning to such variables is not safe
yet. Function arguments also remain a TODO.
2011-08-01 17:51:37 +02:00
Marijn Haverbeke
48ec25da42
Get rid of walk.rs
...
And we're down to a single AST walker again
2011-07-31 12:24:14 +02:00
Tim Chevalier
2971cfb145
Remove unused imports
2011-07-31 00:06:25 -07:00
Tim Chevalier
28f7c6af24
Change bitvectors::relax_precond_block to use visit instead of walk
2011-07-31 00:06:25 -07:00
Graydon Hoare
bc4e9afe25
Fix bug in typechecker counting occurrences of typarams in instantiation rather than checking formals list.
2011-07-29 18:48:15 -07:00
Graydon Hoare
0c9b749d20
Enable kind checking on typarams, fix kind constraints in library and comp.
2011-07-29 18:48:15 -07:00
Michael Sullivan
a34f7c8cb3
Switch the heap build and load environment functions to use GEP_tup_like.
2011-07-29 18:22:41 -07:00
Michael Sullivan
56f0fbeafc
Initial trans of lambdas. Doesn't work with polymorphism yet.
2011-07-29 18:22:41 -07:00
Tim Chevalier
126cd44c38
Refactor typestate code involving stmt_decls
...
To handle multiple-LHS declarations with initializers properly,
I changed seq_states to take a list of expressions paired with optional
names, not just a list of expressions. Then, the same logic that handles
ordered lists of subexpressions everywhere else can handle multi-
declarations.
2011-07-29 18:00:10 -07:00
Graydon Hoare
59c441a66a
Encode, decode, and thread through typechecking all the param kinds, not just the counts.
2011-07-29 16:40:30 -07:00
Michael Sullivan
a684f6078f
Do some cleanup in load_environment.
2011-07-29 15:29:38 -07:00
Michael Sullivan
6a4d0ce829
Add in some missing cases for typestate with closures.
2011-07-29 15:29:38 -07:00
Lindsey Kuper
7efbad674a
Don't confuse backwards and forwards.
...
Oops. If we already have a backwarding vtable, that means that we are
currently building a forwarding fn. (Progress toward issue #702.)
2011-07-29 15:21:40 -07:00
Lindsey Kuper
6423cc7b52
Comments and cleanup, in preparation for more work on issue #702 .
2011-07-29 15:21:40 -07:00
Lindsey Kuper
f4eacbb3b4
Get rid of an obsolete comment now that obj dtors are gone.
2011-07-29 15:21:40 -07:00
Lindsey Kuper
3595f1f966
Disallow overloading a method with one of different type. Closes #703 .
2011-07-29 13:44:34 -07:00
Graydon Hoare
f3c05b9fae
Turn on kind propagation for typarams. Annotate a bunch of typarams in rustc and libstd.
2011-07-29 12:58:52 -07:00
Marijn Haverbeke
c34d74315f
Remove unreachable statements
2011-07-29 20:54:44 +02:00
Marijn Haverbeke
aa3b89610e
Track failures in typeck, assign proper type to failing blocks
...
(and warn for unreachable statements)
Closes #727
2011-07-29 20:54:44 +02:00
Lindsey Kuper
9705f97ead
Typechecking bugfix for anon objs. Removes duplicate methods in outer
...
object types.
2011-07-29 10:33:00 -07:00
Lindsey Kuper
a6151aa9a8
Formatting tweaks.
2011-07-29 10:33:00 -07:00
Marijn Haverbeke
48cc11631c
Parse anonymous objs in statement position
...
Closes #761
2011-07-29 15:01:06 +02:00
Marijn Haverbeke
451ec03c2d
Clean up old FIXME regarding or-patterns
2011-07-29 14:03:52 +02:00
Marijn Haverbeke
b1d2a00b4a
Remove support for obj dtors
2011-07-29 14:03:24 +02:00
Marijn Haverbeke
30d2e358be
Replace obj dtors with resources in stdlib and rustc
2011-07-29 14:03:24 +02:00
Marijn Haverbeke
ae46c154f0
Make sure resources always have their drop glue called
...
Even when their content does not contain pointers
2011-07-29 12:53:58 +02:00
Marijn Haverbeke
4c09d4a770
Missed another instance of walk in typeck
2011-07-29 12:18:26 +02:00
Marijn Haverbeke
5adf87a2c6
Fix iter_structural_ty_full for resource types
...
The compiler would blow up when compiling a structural type
containing a resource.
2011-07-29 11:44:29 +02:00
Michael Sullivan
2c0f4d51f9
Change the way freevars stores its information again.
2011-07-28 18:40:17 -07:00
Michael Sullivan
5068ae4771
Factor out a bunch of environment construction code from trans_bind.
2011-07-28 18:40:17 -07:00
Brian Anderson
3896524750
Drop the previous reference when receiving. Closes #763
2011-07-28 18:22:15 -07:00
Michael Sullivan
d0cb62ac90
Factor out box initializing code into trans_malloc_boxed.
2011-07-28 15:49:06 -07:00
Lindsey Kuper
0ea5a8a6ed
Updated alt indenting.
2011-07-28 15:01:12 -07:00
Lindsey Kuper
b24da1c2e5
The names 'outer' and 'inner' make more sense than 'self' and 'with'.
...
(Also, some formatting and long-string cleanup.)
2011-07-28 14:54:32 -07:00
Graydon Hoare
3e63fdc4c9
Thread kinds into the type system. Don't quite activate yet, since it breaks stdlib and snapshot isn't ready to compile modified stdlib.
2011-07-28 13:29:39 -07:00
Paul Stansifer
86f337484e
Change macro syntax to accept a single expr, not a sequence of exprs.
2011-07-28 12:12:08 -07:00
Eric Holk
a5fe66e706
Adding upcalls to to ref() and deref() tasks. This is the first step towards atomic reference counting of tasks.
2011-07-28 10:47:28 -07:00
Graydon Hoare
acac6abc85
Parse, store and print type parameter kind constraints.
2011-07-28 17:22:59 +00:00
Graydon Hoare
2749ef5ede
Fix stale 'copy' occurrences to 'move' in comments.
2011-07-27 23:43:17 -07:00
Josh Matthews
f0e29c92aa
:: is allowed to start an expression. Close #762 .
2011-07-28 02:33:24 -04:00
Marijn Haverbeke
c141718952
Replace walk with visit in the typechecker
2011-07-28 08:05:04 +02:00
Marijn Haverbeke
757b7ec534
Remove walk instance from kind.rs
2011-07-28 07:42:51 +02:00
Marijn Haverbeke
c78ac29002
Show millisecond precision for time_passes times
...
Closes #713
2011-07-28 07:22:16 +02:00
Graydon Hoare
a11bb404a5
Further refinement to kind system lattice and type-kind rules; first successful caught kind error (prohibits copying a pinned resource, though trans already caught it later).
2011-07-27 21:23:54 -07:00
Lindsey Kuper
7073ee4e31
Some work on backwarding for issue #702 .
2011-07-27 19:43:21 -07:00
Michael Sullivan
d1298f768c
Have bind support non-alias parametric non-bound arguments.
...
This was previously disallowed by the typechecker and not properly handled
in trans. I removed the typechecker check (replacing it with a simpler
check that spawned functions don't have type params) and fixed trans.
Closes #756 .
2011-07-27 18:46:46 -07:00