| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2011-07-11 | Add elipses, reorganize the macro components into their own AST node. | Paul Stansifer | -4/+4 | |
| 2011-07-11 | Move macro expansion to a separate phase, change macro syntax, and add ↵ | Paul Stansifer | -11/+8 | |
| parse_sess to session. | ||||
| 2011-07-11 | In typeck, check for dynamically sized by-value arguments to thunks | Tim Chevalier | -11/+36 | |
| A check in trans didn't have a corresponding check in typeck, causing some programs (to wit, compile-fail/chan-parameterized-args.rs - part of this commit) to fail with an assertion failure in trans instead of a type error. Fixed it. In short, arguments that are future thunk arguments (any spawn arguments, and _ arguments in bind) need to either not contain type params or type vars, or be by-reference. Closes #665. | ||||
| 2011-07-11 | rustc: Implement explicit global scope resolution via leading "::"; add a ↵ | Patrick Walton | -18/+27 | |
| test case | ||||
| 2011-07-11 | Unify the rhs and lhs types in a send | Tim Chevalier | -0/+1 | |
| Closes #662. One-line fixes are always the best :-D | ||||
| 2011-07-11 | rustc: Implement pointer dereference; add a test case | Patrick Walton | -2/+5 | |
| 2011-07-11 | Fix comparisons of the nil type to do something sensible. | Michael Sullivan | -21/+19 | |
| Closes #576. | ||||
| 2011-07-11 | Use some actual or-patterns in resolve.rs | Marijn Haverbeke | -70/+34 | |
| 2011-07-11 | Fix autoderef of function calls when the function is not an lval. | Michael Sullivan | -18/+4 | |
| As it turns out, the correct way to handle this is much simpler than what I did originally. Also add more tests. | ||||
| 2011-07-11 | Fix handling of derived tydescs in bind. | Michael Sullivan | -4/+10 | |
| In trans_bind_thunk, we need to load the tydescs from the environment *before* we try to construct derived tydescs from them. | ||||
| 2011-07-11 | Fix bind to work with boxed arguments with type parameters. | Michael Sullivan | -2/+6 | |
| This still doesn't work with bare fn arguments with type parameters. | ||||
| 2011-07-11 | Implement record patterns | Marijn Haverbeke | -2/+90 | |
| Closes #469. | ||||
| 2011-07-11 | Move visit to newtype-style nominal type | Marijn Haverbeke | -17/+16 | |
| This makes getting the function fields out of the visitor less cumbersome and more efficient (no take/drop). | ||||
| 2011-07-11 | Output a meaningful error when too few or too many type parameters given | Marijn Haverbeke | -3/+11 | |
| Closes #619 | ||||
| 2011-07-11 | Implement or-patterns in case clauses | Marijn Haverbeke | -22/+76 | |
| You can now say expr_move(?dst, ?src) | expr_assign(?dst, ?src) { ... } to match both expr_move and expr_assign. The names, types, and number of bound names have to match in all the patterns. Closes #449. | ||||
| 2011-07-11 | Spill instead of copy when binding a pattern that's only a var binding | Marijn Haverbeke | -17/+11 | |
| The alias rules guarantee that the alt-ed value will outlive the binding's last use, so this is safe. This is a preparation for or-patterns. Joining scoped bindings seems like it would get messy. | ||||
| 2011-07-10 | Use more encapsulation for metadata::cstore | Brian Anderson | -2/+2 | |
| 2011-07-09 | rustc: Make rust-intrinsics take an explicit return pointer | Patrick Walton | -23/+48 | |
| 2011-07-08 | Propagate constraints through copy, move, and swap | Tim Chevalier | -133/+442 | |
| Assignments and moves with a simple local variable reference on the RHS now propagate any typestate constraints the RHS was involved in to the LHS. Swaps where both sides are local variables exchange the constraints. This was a pain in the butt and I'm still not proud of the resulting code. Needs refactoring like whoa. | ||||
| 2011-07-08 | Minor refactoring | Tim Chevalier | -3/+11 | |
| 2011-07-08 | Improve impossible-case handling in ty::get_element_type | Tim Chevalier | -4/+5 | |
| 2011-07-08 | Improve the error message for import glob collisions. Closes #482 | Brian Anderson | -17/+31 | |
| Instead of noting where the imported things were defined, note where they were imported. This is more useful and avoids issue #482. | ||||
| 2011-07-08 | rustc: Use interior vectors for the union-find in rustc | Patrick Walton | -21/+24 | |
| 2011-07-08 | rustc: Fix a level-of-indirection problem by using size_of() to compute ↵ | Patrick Walton | -4/+2 | |
| dynamically sized interior vector element sizes instead of field_of_tydesc() | ||||
| 2011-07-08 | Add just enough logic to the driver so that we can link std statically. | Rafael Ávila de Espíndola | -0/+3 | |
| 2011-07-08 | rustc: Do dynamic size calculations properly when concatenating interior ↵ | Patrick Walton | -23/+40 | |
| vectors. Closes #640. | ||||
| 2011-07-08 | Don't export tyencode from the metadata module | Brian Anderson | -4/+0 | |
| This involves pulling the type_abbrev cache out of crate_ctxt | ||||
| 2011-07-08 | Make the interface to metadata::csearch more consistent | Brian Anderson | -5/+6 | |
| 2011-07-08 | Begin splitting metadata::decoder into decoding and crate search modules | Brian Anderson | -13/+12 | |
| 2011-07-08 | Move external crate/lib resolution to its own pass | Brian Anderson | -2/+0 | |
| The scope of external crate reading is beyond the resolve pass now, as it builds up tables of information needed for several different purposes. | ||||
| 2011-07-08 | Move crate_map from resolve to cstore | Brian Anderson | -7/+4 | |
| 2011-07-08 | Replace the crate cache in session with the one in cstore | Brian Anderson | -2/+4 | |
| 2011-07-08 | Ignore current scope when resolving self-shadowing imports | Marijn Haverbeke | -18/+15 | |
| That is, for example, import x::y::x, which defines a local x, and thus wouldn't be able to find x::y anymore. Closes issue #624 | ||||
| 2011-07-08 | Don't unbox types in ty::is_binopable, do it on typeck side instead | Marijn Haverbeke | -17/+4 | |
| Closes issue #631 Removes ty::strip_boxes entirely, since unboxing is now more complicated anyway. | ||||
| 2011-07-08 | Remove useless return value in typeck::check_decl_local | Marijn Haverbeke | -6/+2 | |
| 2011-07-08 | Auto-bind generic functions when their value is taken in non-call context | Marijn Haverbeke | -4/+28 | |
| trans::trans_lval will now autobind if the given expression was the name of a generic functions. Those callees (trans_call and trans_bind) that are interested in the generics information call trans_lval_gen now. | ||||
| 2011-07-08 | Avoid superfluous take/drop for temp values passes as arguments | Marijn Haverbeke | -8/+16 | |
| 2011-07-08 | Make for-each bodies close over their parent's iterbody | Marijn Haverbeke | -6/+19 | |
| Closes issue #639 | ||||
| 2011-07-07 | rustc: Check iter return types. Closes #638. | Patrick Walton | -0/+2 | |
| 2011-07-07 | rustc: Fix long line | Patrick Walton | -1/+2 | |
| 2011-07-07 | rustc: Make trans use interior vectors | Patrick Walton | -679/+651 | |
| 2011-07-07 | rustc: Remove all exterior vectors from the AST | Patrick Walton | -14/+11 | |
| 2011-07-07 | Fix a bug that was interfering with method overriding. Issue #543. | Lindsey Kuper | -23/+36 | |
| Previously, we were creating both a normal vtable entry and a forwarding function for overriding methods, when they should have just gotten a vtable entry. This patch fixes that. | ||||
| 2011-07-07 | Merge pull request #634 from robarnold/upstream-stable | Patrick Walton | -6/+26 | |
| Allocate ivecs out of the kernel pool | ||||
| 2011-07-07 | Remove duplicate definition of def_to_str from middle::ty | Brian Anderson | -4/+0 | |
| 2011-07-07 | rustc: Change lots of AST nodes to use interior vectors | Patrick Walton | -191/+208 | |
| 2011-07-07 | Command line changes for adding support for static libraries. | Rafael Ávila de Espíndola | -4/+4 | |
| 2011-07-07 | Clean up trans_arg_expr | Marijn Haverbeke | -45/+25 | |
| As a preparation for implementing the temporary-move optimization for argument passing. The optimization itself isn't in yet, since it mysteriously corrupts memory. | ||||
| 2011-07-07 | Make moving of temporaries do the right thing, use it to optimize | Marijn Haverbeke | -135/+174 | |
| This adds support for dropping cleanups for temporary values when they are moved somewhere else. It then adds wraps most copy operations (return, put in data structure, box, etc) in a way that will fall back to a move when it is safe. This saves a lot of taking/dropping, shaving over a megabyte off the stage2/rustc binary size. In some cases, most notably function returns, we could detect that the returned value is a local variable, and can thus be safely moved even though it is not a temporary. This will require putting some more information in lvals. I did not yet handle function arguments, since the logic for passing them looked too convoluted to touch. I'll probably try that in the near future, since it's bound to be a big win. | ||||
| 2011-07-07 | Improve handling of move and swap by alias checker | Marijn Haverbeke | -10/+24 | |
| Closes issue #541. Closes issue #591 | ||||
