about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-09-22Add support for mutable unique boxesBrian Anderson-1/+1
Issue #409
2011-09-22Convert ty::ty_uniq to contain a mutable typeBrian Anderson-26/+42
Issue #409
2011-09-22Call drop glue on the thing in a unique boxBrian Anderson-5/+16
Issue #409
2011-09-21Remove unused arg from revoke_cleanBrian Anderson-5/+5
2011-09-21Add ability to deref unique boxes. Make unique boxes immediates.Brian Anderson-20/+27
Issue #409
2011-09-21Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. ↵Marijn Haverbeke-1/+1
Closes #935." This reverts commit f19ab1ff3c85973a54cc98e3f98ae240e2d0d816.
2011-09-21rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935.Patrick Walton-1/+1
2011-09-21rustc: Don't try to spill bottom types, since we can't make any assumptions ↵Patrick Walton-0/+5
about the type of the ValueRef
2011-09-21Revert "Implement pattern ranges for all numeric types."Marijn Haverbeke-151/+22
This reverts commit ce0f054f9d56df4e60291fc2e1b89ce979cf374f.
2011-09-21Don't write to retptr when returning nil, pass undef for unused paramsMarijn Haverbeke-15/+18
2011-09-21Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. ↵Marijn Haverbeke-1/+1
Closes #935." This reverts commit e6a84f252ab7a016dd923adbf31e8c86deab1d72.
2011-09-21Implement pattern ranges for all numeric types.Josh Matthews-22/+151
2011-09-20rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935.Patrick Walton-1/+1
2011-09-20Represent unique creation as a unop in the AST instead of its own exprBrian Anderson-10/+6
Like the box unop. Issue #409
2011-09-20Make creation of unique boxes work againBrian Anderson-3/+12
Issue #409
2011-09-20Parse unique box typesBrian Anderson-0/+3
Issue #409
2011-09-20rustc: Pass actual tydescs to upcall_mallocPatrick Walton-4/+8
2011-09-20rustc: Remove trans_raw_malloc, as it's only called from one placePatrick Walton-17/+10
2011-09-20Zero locals that are inited via alt expressions. Closes #945Brian Anderson-0/+1
2011-09-20Remove some obsolete 'copy' operators from transMarijn Haverbeke-12/+12
2011-09-20Properly handle 'put;' in transMarijn Haverbeke-1/+3
Closes #947
2011-09-19Build tuples in two phases to avoid cleaning up partial tuplesBrian Anderson-1/+12
2011-09-19Register tuple cleanups after the tuple is builtBrian Anderson-1/+3
Issue #936
2011-09-19Build records in two phases to avoid cleanups on partial recordsBrian Anderson-5/+42
2011-09-19Don't register record cleanups until the record is builtBrian Anderson-1/+1
2011-09-18Stop creating function pairs for static functionsMarijn Haverbeke-86/+43
These are now called directly. When taking their value, a null pointer is added to create a pair.
2011-09-17Add a precondition to GEP_tup_likeTim Chevalier-4/+73
2011-09-17Add a type_is_tup_like predicate that takes a block ctxt, and make some fns pureTim Chevalier-15/+18
2011-09-17In trans, replace another impossible case with a preconditionTim Chevalier-11/+8
2011-09-16Make move-mode arguments unwind correctly. Closes #939Brian Anderson-31/+56
2011-09-16Dead code elimTim Chevalier-14/+0
2011-09-16Add a constraint on trans::type_of_fn_from_tyTim Chevalier-23/+49
And change callers appropriately.
2011-09-16Add a returns_non_ty_var predicateTim Chevalier-0/+4
which just calls non_ty_var on the return type of t, assuming t is a function type.
2011-09-16Make ty_fn_ret pure and get rid of a duplicate functionTim Chevalier-16/+14
2011-09-16Work around an apparent compiler bug to make my patch runMarijn Haverbeke-5/+6
Without this, it would fail when optimization is turned on. The result of the Load(bcx, llclosure) call would end up in llenv in a corrupted form.
2011-09-16Saner approach to lvalues and callable values in transMarijn Haverbeke-194/+217
LValues no longer carry information about generics and objs, instead there's an extended form of lvalue, lval_maybe_callee, only used by call and bind, which holds this info. This makes it possible to take the value of a method and get a working closure, and will (with some more work) allow us to call statically known functions without loading from their pair. Closes #435 Closes #758
2011-09-16Add non_ty_var precondition for type_of_fn, plus minor cleanupTim Chevalier-10/+17
2011-09-16Revert "Saner approach to lvalues and callable values in trans"Marijn Haverbeke-217/+194
This reverts commit 66153436c9070386786c8a38cde199b5d3e71289.
2011-09-16Require body of else-less if expressions to be a value-less blockMarijn Haverbeke-2/+2
For consistency with other constructs that could not possibly return a value (say, loops).
2011-09-16Saner approach to lvalues and callable values in transMarijn Haverbeke-194/+217
LValues no longer carry information about generics and objs, instead there's an extended form of lvalue, lval_maybe_callee, only used by call and bind, which holds this info. This makes it possible to take the value of a method and get a working closure, and will (with some more work) allow us to call statically known functions without loading from their pair. Closes #435 Closes #758
2011-09-16Move expr_uniq case in trans to a saner placeMarijn Haverbeke-12/+4
Note that unique pointers are still broken in more ways than I can count.
2011-09-16Remove autoderef for callsMarijn Haverbeke-22/+10
We were only using it in a single place, and there for no discernable reason (probably as part of the bare-fn-vals-are-not-copyable plan). It seems more surprising than useful.
2011-09-16Remove unused method_ty field from lval_resultMarijn Haverbeke-10/+5
2011-09-16Clean up (and optimize) root-mutability analysis in alias.rsMarijn Haverbeke-70/+64
2011-09-16Change convention for specifying referenced argumentMarijn Haverbeke-18/+27
It is now 1-based, rather than 0 based. (Seems more natural, and allows 0 to be used to refer to self and maybe to closure.) Also allows non-referenced args to be implicitly copied again. Issue #918
2011-09-15Actually call unreachable() in impossible case in type_of_innerTim Chevalier-3/+5
2011-09-15Added non_ty_var precondition to trans::type_of_innerTim Chevalier-57/+109
This allows us to legitimately call unreachable() in the ty_var case.
2011-09-15Added an extra check in trans_altTim Chevalier-0/+1
Gratuitous right now, but I'm going to change the type of trans::type_of
2011-09-15Added more predicates in transTim Chevalier-2/+16
Added the non_ty_var predicate (soon to be used) Added a check in get_res_dtor (will be necessary for a future change to type_of_fn) Removed a gratuitous ret
2011-09-15Change a few span_fatals to span_errTim Chevalier-5/+5