about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-08-01Handle bang functions correctly in typestateTim Chevalier-59/+113
The logic for how the "returns" constraint was handled was always dodgy, for reasons explained in the comments I added to auxiliary::fn_info in this commit. Fixed it by adding distinct "returns" and "diverges" constraints for each function, which are both handled positively (that is: for a ! function, the "diverges" constraint must be true on every exit path; for any other function, the "returns" constraint must be true on every exit path). Closes #779
2011-08-01Fix incorrect uses of str::buf()Paul Stansifer-11/+18
2011-08-01Fix closures over dynamically-sized polymorphic values.Michael Sullivan-17/+44
2011-08-01Fix closures over known-size polymorphic values.Michael Sullivan-15/+15
2011-08-01Add a GEPi function that wraps GEP with integer arguments.Michael Sullivan-12/+22
2011-08-01Add check for irrefutable patterns in destructuring localsMarijn Haverbeke-4/+35
2011-08-01Partially implement destructuring localsMarijn Haverbeke-249/+307
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-07-31Get rid of walk.rsMarijn Haverbeke-463/+0
And we're down to a single AST walker again
2011-07-31Remove unused importsTim Chevalier-2/+0
2011-07-31Change bitvectors::relax_precond_block to use visit instead of walkTim Chevalier-24/+28
2011-07-29Fix bug in typechecker counting occurrences of typarams in instantiation ↵Graydon Hoare-6/+6
rather than checking formals list.
2011-07-29Enable kind checking on typarams, fix kind constraints in library and comp.Graydon Hoare-15/+38
2011-07-29Switch the heap build and load environment functions to use GEP_tup_like.Michael Sullivan-25/+29
2011-07-29Initial trans of lambdas. Doesn't work with polymorphism yet.Michael Sullivan-8/+61
2011-07-29Refactor typestate code involving stmt_declsTim Chevalier-94/+129
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-29Encode, decode, and thread through typechecking all the param kinds, not ↵Graydon Hoare-104/+143
just the counts.
2011-07-29Do some cleanup in load_environment.Michael Sullivan-30/+23
2011-07-29Add in some missing cases for typestate with closures.Michael Sullivan-2/+5
2011-07-29Don't confuse backwards and forwards.Lindsey Kuper-3/+7
Oops. If we already have a backwarding vtable, that means that we are currently building a forwarding fn. (Progress toward issue #702.)
2011-07-29Comments and cleanup, in preparation for more work on issue #702.Lindsey Kuper-19/+56
2011-07-29Get rid of an obsolete comment now that obj dtors are gone.Lindsey Kuper-3/+0
2011-07-29Disallow overloading a method with one of different type. Closes #703.Lindsey Kuper-7/+12
2011-07-29Turn on kind propagation for typarams. Annotate a bunch of typarams in rustc ↵Graydon Hoare-5/+2
and libstd.
2011-07-29Remove unreachable statementsMarijn Haverbeke-33/+25
2011-07-29Track failures in typeck, assign proper type to failing blocksMarijn Haverbeke-90/+126
(and warn for unreachable statements) Closes #727
2011-07-29Typechecking bugfix for anon objs. Removes duplicate methods in outerLindsey Kuper-0/+20
object types.
2011-07-29Formatting tweaks.Lindsey Kuper-8/+5
2011-07-29Parse anonymous objs in statement positionMarijn Haverbeke-32/+21
Closes #761
2011-07-29Clean up old FIXME regarding or-patternsMarijn Haverbeke-10/+2
2011-07-29Remove support for obj dtorsMarijn Haverbeke-138/+19
2011-07-29Replace obj dtors with resources in stdlib and rustcMarijn Haverbeke-28/+29
2011-07-29Make sure resources always have their drop glue calledMarijn Haverbeke-1/+9
Even when their content does not contain pointers
2011-07-29Missed another instance of walk in typeckMarijn Haverbeke-5/+4
2011-07-29Fix iter_structural_ty_full for resource typesMarijn Haverbeke-21/+16
The compiler would blow up when compiling a structural type containing a resource.
2011-07-28Change the way freevars stores its information again.Michael Sullivan-46/+37
2011-07-28Factor out a bunch of environment construction code from trans_bind.Michael Sullivan-84/+99
2011-07-28Drop the previous reference when receiving. Closes #763Brian Anderson-5/+18
2011-07-28Factor out box initializing code into trans_malloc_boxed.Michael Sullivan-66/+36
2011-07-28Updated alt indenting.Lindsey Kuper-11/+11
2011-07-28The names 'outer' and 'inner' make more sense than 'self' and 'with'.Lindsey Kuper-100/+103
(Also, some formatting and long-string cleanup.)
2011-07-28Thread kinds into the type system. Don't quite activate yet, since it breaks ↵Graydon Hoare-44/+72
stdlib and snapshot isn't ready to compile modified stdlib.
2011-07-28Change macro syntax to accept a single expr, not a sequence of exprs.Paul Stansifer-67/+69
2011-07-28Adding upcalls to to ref() and deref() tasks. This is the first step towards ↵Eric Holk-2/+22
atomic reference counting of tasks.
2011-07-28Parse, store and print type parameter kind constraints.Graydon Hoare-7/+24
2011-07-27Fix stale 'copy' occurrences to 'move' in comments.Graydon Hoare-2/+2
2011-07-28:: is allowed to start an expression. Close #762.Josh Matthews-0/+1
2011-07-28Replace walk with visit in the typecheckerMarijn Haverbeke-35/+35
2011-07-28Remove walk instance from kind.rsMarijn Haverbeke-6/+6
2011-07-28Show millisecond precision for time_passes timesMarijn Haverbeke-5/+26
Closes #713
2011-07-27Further refinement to kind system lattice and type-kind rules; first ↵Graydon Hoare-27/+62
successful caught kind error (prohibits copying a pinned resource, though trans already caught it later).