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
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
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
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
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
Michael Sullivan
4de0b3d947
Allow already bound functions to be bound again.
...
This commit just disables the check. All of the real work was in previous
commits that moved the target function into the bindings part of the closure
that is tracked by the tydesc.
Closes #754 .
2011-07-27 18:46:46 -07:00
Michael Sullivan
63fa765e0e
Fix binding a bare fn argument with type parameters.
...
Closes #642 .
2011-07-27 18:46:46 -07:00
Graydon Hoare
63f74f3771
Remove vestiges of "layers", insert skeletal do-nothing "kind" pass plus cached calculation of kind for each type.
2011-07-27 17:49:00 -07:00
Michael Sullivan
55a65a51aa
Eliminate "target" field in closures.
2011-07-27 15:22:11 -07:00
Michael Sullivan
b977b5c508
Put the bound function in bind in the bindings, not in a distinguished spot.
2011-07-27 15:22:11 -07:00
Michael Sullivan
db19231596
Mess around with the casting in trans_bind.
2011-07-27 14:43:35 -07:00
Michael Sullivan
e3f9648096
Some cleanup in trans.
2011-07-27 14:41:08 -07:00
Michael Sullivan
1c612ebdcc
Associate names with taskptr and tydesc types for better debugging.
2011-07-27 14:30:16 -07:00
Michael Sullivan
ab8d91dcfd
Make trand_bind_1 use create_real_fn_pair.
2011-07-27 14:28:07 -07:00
Marijn Haverbeke
f379c97913
Don't allow globals or immutable locals to be passed by mut alias
...
Closes #747
2011-07-27 17:19:46 +02:00
Marijn Haverbeke
6e2a7bff7f
Fix damage done by the pretty-printer
2011-07-27 15:54:33 +02:00
Marijn Haverbeke
df7f21db09
Reformat for new syntax
2011-07-27 15:54:33 +02:00
Marijn Haverbeke
95b926f675
Add missing case for view_item_use in resolve.rs
...
Closes #748
2011-07-27 10:01:21 +02:00
Lindsey Kuper
e1769ab76f
Clean up long strings and indentation.
2011-07-26 15:53:00 -07:00
Michael Sullivan
a17735cfb5
Some simple cleanup of trans_bind.
2011-07-26 14:47:44 -07:00
Michael Sullivan
be0629d880
Convert a bunch of cx.fcx.lcx... paths into bcx_...(cx)
2011-07-26 13:02:26 -07:00
Michael Sullivan
9ca0ce91bf
Initial implementation of typestate for closures.
...
There are still things not handled properly: relying on other preconditions
of upvars is likely to cause bad things to happen. We probably want to
disallow it.
2011-07-26 12:30:14 -07:00
Michael Sullivan
166d4f5fe9
Translate anonymous block closures.
2011-07-26 12:30:14 -07:00
Michael Sullivan
ac948b4ccd
Resolve and typecheck alias-environment-capturing blocks.
2011-07-26 12:30:14 -07:00
Michael Sullivan
eaab0db4ea
Fix the freevars pass to actually work on top of visit.
2011-07-26 12:30:14 -07:00
Marijn Haverbeke
e133f929b7
Convert all code that uses walk.rs in the straightforward way to simple_visit
...
Code that needs the keep_going functionality is still using walk. I will
add an equivalent to visit.rs later.
2011-07-26 17:13:48 +02:00
Marijn Haverbeke
2509a3dcae
Resolve loop collection expressions in the right scope
...
Closes #745
2011-07-26 15:52:59 +02:00
Marijn Haverbeke
bfaa85b735
Detect duplicate field names in record literals and types
...
Closes #746
2011-07-26 15:32:16 +02:00
Marijn Haverbeke
2c1250780d
Remove tuple support from the compiler
2011-07-26 15:19:56 +02:00
Marijn Haverbeke
aea537779e
Remove all uses of tuples from the compiler and stdlib
2011-07-26 14:06:02 +02:00
Michael Sullivan
25a89e068d
Rename the block type to be blk also. Sorry.
2011-07-25 14:18:07 -07:00