| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2011-06-24 | Use visit_fn_{pre,post} to avoid going past lambdas during writeback instead ↵ | Michael Sullivan | -10/+13 | |
| of explicitly casing. | ||||
| 2011-06-24 | Have walk call visit_fn_pre and visit_fn_post on fn expressions. | Michael Sullivan | -2/+1 | |
| As a side effect, this fixes a bug where typestate would not properly be checked inside of fn expressions. | ||||
| 2011-06-24 | Modify the fn vistors in walk so that they can handle functions without ↵ | Michael Sullivan | -25/+33 | |
| names. Update the typestate code to understand this. | ||||
| 2011-06-24 | rustc: Increment by the unit size in iter_structural_ty when iterating over ↵ | Patrick Walton | -2/+10 | |
| interior vectors if the unit size is dynamic | ||||
| 2011-06-24 | Sanitize use of ids for obj constructors. | Marijn Haverbeke | -14/+12 | |
| Typeck and trans used to, by historical coincidence, use the item_obj node id, which was used to identify the obj type by the rest of the system, for the constructor function. This is now identified by the ctor id stored in the tag throughout. | ||||
| 2011-06-24 | Remove uses of variable name 'res' from rustc | Marijn Haverbeke | -309/+300 | |
| This in preparation of making 'res' a keyword for defining resources. Please don't introduce too many new ones in the meantime... | ||||
| 2011-06-24 | Remove def_obj | Marijn Haverbeke | -18/+5 | |
| Since obj constructors and types have different def_ids now, their def can simply be a def_fn and a def_ty. | ||||
| 2011-06-24 | rustc: If needed, duplicate types' heap parts recursively through structural ↵ | Patrick Walton | -32/+65 | |
| types | ||||
| 2011-06-23 | rustc: Cleanup trans_if, trans_alt | Brian Anderson | -36/+6 | |
| 2011-06-23 | rustc: Add ternary operator. Closes #565 | Brian Anderson | -1/+22 | |
| The implementation is so simple it might be considered cheating: at almost every step the expr_ternary is just converted to expr_if. | ||||
| 2011-06-23 | Fix type inference inside of anonymous functions. | Michael Sullivan | -2/+11 | |
| 2011-06-23 | rustc: Load immediate types when iterating over interior vectors | Patrick Walton | -2/+30 | |
| 2011-06-23 | Correct error message for argument mode mismatch | Tim Chevalier | -3/+9 | |
| If you use a function expecting an alias argument in a context that expects a function expecting a value argument, or vice versa, the previous error message complained that the number of arguments was wrong. Fixed the error message to be accurate. | ||||
| 2011-06-22 | Compute typestate properly for move | Tim Chevalier | -219/+609 | |
| typestate now drops constraints correctly in the post-state of a move expression or a declaration whose op is a move. It doesn't yet drop constraints mentioning variables that get updated. To do this, I had to change typestate to use trit-vectors instead of bit-vectors, because for every constraint, there are three possible values: known-to-be-false (e.g. after x <- y, init(y) is known-to-be-false), known-to-be-true, and unknown. Before, we conflated known-to-be-false with unknown. But move requires them to be treated differently. Consider: (program a) (a1) x = 1; (a2) y <- x; (a3) log x; (program b) (b1) x = 1; (b2) y <- z; (b3) log x; With only two values, the postcondition of statement a2 for constraint init(x) is the same as that of b2: 0. But in (a2)'s postcondition, init(x) *must* be false, but in (b2)'s condition, it's just whatever it was in the postcondition of the preceding statement. | ||||
| 2011-06-22 | rustc: Convert field access on invalid types from an ICE to a fatal error | Brian Anderson | -5/+4 | |
| Closes #367 | ||||
| 2011-06-22 | Some work on supporting forwarding slots in vtables (issue #539). | Lindsey Kuper | -42/+70 | |
| 2011-06-22 | rustc: Use the rhs span when unifying binops | Brian Anderson | -1/+1 | |
| This makes the error message correctly identify the term that wasn't the expected type. Issue #516. | ||||
| 2011-06-22 | rustc: Remove some unneeded type annotations | Brian Anderson | -9/+9 | |
| 2011-06-22 | rustc: Don't commit unification changes until unify succeeds | Brian Anderson | -8/+16 | |
| This is so that subsequent reports about type mismatches get the types correct. Issue #516 | ||||
| 2011-06-22 | rustc: Downcase metadata::Encode | Brian Anderson | -2/+2 | |
| 2011-06-22 | Fix bug: globbed imports were importing everything visible from the other | Paul Stansifer | -4/+8 | |
| module, not just everything exported. | ||||
| 2011-06-22 | rustc: Introduce and parse additional meta_item forms | Brian Anderson | -6/+14 | |
| Examples: #[test], #[link(name = "vers")] Issue #487 | ||||
| 2011-06-22 | Pull environment loading out into a function. | Michael Sullivan | -36/+50 | |
| 2011-06-22 | Pull building the environment for for_each into a seperate function. | Michael Sullivan | -47/+61 | |
| 2011-06-22 | Removing out-of-date comment. | Michael Sullivan | -1/+1 | |
| 2011-06-21 | Emit a better error message for unbound type parameters in nested functions | Tim Chevalier | -7/+12 | |
| This code was causing a bounds check failure: fn hd[U](&vec[U] v) -> U { fn hd1(&vec[U] w) -> U { ret w.(0); } ret hd1(v); } because in hd1, U was being treated as if it referred to a type parameter of hd1, rather than referring to the lexically enclosing binding for U that's part of hd. I'm actually not sure whether this is a legit program or not. But I wanted to get rid of the bounds check error, so I assumed that program shouldn't compile and made it a proper error message. | ||||
| 2011-06-21 | Serialize constraints in types (literal arguments still not supported) | Tim Chevalier | -79/+44 | |
| This involved, in part, changing the ast::def type so that a def_fn has a "purity" field. This lets the typechecker determine whether functions defined in other crates are pure. It also required updating some error messages in tests. As a test for cross-crate constrained functions, I added a safe_slice function to std::str (slice(), with one of the asserts replaced with a function precondition) and some test cases (various versions of fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for some of the boolean functions in std::uint. | ||||
| 2011-06-21 | Move names and ids of native items into their recs, rather than their tags | Marijn Haverbeke | -57/+37 | |
| 2011-06-21 | Puts out burning tinderbox (oops, AST nodes don't have def_ids/anns). | Lindsey Kuper | -3/+3 | |
| 2011-06-21 | Some progress on support for extending objects with new fields (issue | Lindsey Kuper | -48/+198 | |
| into four separate issues (#538, #539, #540, #543) with corresponding tests. | ||||
| 2011-06-21 | Move expr ids into the expr record type | Marijn Haverbeke | -683/+579 | |
| This simplifies the tag variants a bit and makes expr_node_id obsolete. | ||||
| 2011-06-21 | rustc: Output an unimplemented message when alias encounters an unknown ↵ | Patrick Walton | -0/+4 | |
| sequence type | ||||
| 2011-06-21 | rustc: Implement "for" over interior vectors | Patrick Walton | -15/+41 | |
| 2011-06-20 | Fix some uses of span_warn in alias.rs that should be span_fatal | Marijn Haverbeke | -2/+2 | |
| 2011-06-20 | Make trans use the new ast_map instead of building its own | Marijn Haverbeke | -26/+22 | |
| 2011-06-20 | Use ast_map in typeck, instead of building another index | Marijn Haverbeke | -47/+10 | |
| 2011-06-20 | Add a separate AST mapping phase | Marijn Haverbeke | -20/+10 | |
| This will replace the various node_id-to-node mappings done in several other passes. This commit already uses the new map in resolve, dropping the ast_map that was built there before. | ||||
| 2011-06-20 | Reduce confusing variable naming in resolve | Marijn Haverbeke | -51/+55 | |
| 'id' is now used for node_ids, 'name' for idents | ||||
| 2011-06-20 | Get rid of def_ids and anns in AST nodes, use single node_id | Marijn Haverbeke | -1233/+1319 | |
| This reduces some redundancy in the AST data structures and cruft in the code that works with them. To get a def_id from a node_id, apply ast::local_def, which adds the local crate_num to the given node_id. Most code only deals with crate-local node_ids, and won't have to create def_ids at all. | ||||
| 2011-06-20 | Added string duplication to deep_copy. Closes #520. | Eric Holk | -22/+15 | |
| 2011-06-20 | Removed duplicated ret_ty_of_fn. This also means the native function branch ↵ | Eric Holk | -21/+12 | |
| is working now, so this commit closes #506. | ||||
| 2011-06-20 | Teach ret_ty_of_fn_ty to understand native functions. Closes #506. | Eric Holk | -0/+1 | |
| 2011-06-20 | Fix pp blank-lines insertion at beginning of file and before 'let' decls. | Graydon Hoare | -2/+0 | |
| 2011-06-19 | Remove various rustboot workarounds | Brian Anderson | -15/+8 | |
| 2011-06-19 | rustc: Change smallintmap to use an ivec and use it for the node type table. ↵ | Patrick Walton | -18/+6 | |
| 3x typechecking speedup. | ||||
| 2011-06-19 | rustc: Make name resolution errors less fatal | Brian Anderson | -51/+80 | |
| Failure happens at the end of name resolution Issue #440 | ||||
| 2011-06-19 | rustc: Make import resolution errors less fatal | Brian Anderson | -12/+57 | |
| Failure happens at the end of import resolution Issue #440 | ||||
| 2011-06-19 | rustc: Export only what's needed from middle::ty | Brian Anderson | -3/+164 | |
| The list is formidable. | ||||
| 2011-06-19 | rustc: Export only what's used from middle::resolve | Brian Anderson | -0/+3 | |
| 2011-06-19 | rustc: Rename session.span_err -> span_fatal, err -> fatal | Brian Anderson | -79/+80 | |
| Issue #440 | ||||
