| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2013-04-10 | Reason about nested free variables that appear in a function | Niko Matsakis | -1/+4 | |
| signature. In a nutshell, the idea is to (1) report an error if, for a region pointer `'a T`, the lifetime `'a` is longer than any lifetimes that appear in `T` (in other words, if a borrowed pointer outlives any portion of its contents) and then (2) use this to assume that in a function like `fn(self: &'a &'b T)`, the relationship `'a <= 'b` holds. This is needed for #5656. Fixes #5728. | ||||
| 2013-04-09 | Cleanup substitutions and treatment of generics around traits in a number of ↵ | Niko Matsakis | -18/+24 | |
| ways. - In a TraitRef, use the self type consistently to refer to the Self type: - trait ref in `impl Trait<A,B,C> for S` has a self type of `S`. - trait ref in `A:Trait` has the self type `A` - trait ref associated with a trait decl has self type `Self` - trait ref associated with a supertype has self type `Self` - trait ref in an object type `@Trait` has no self type - Rewrite `each_bound_traits_and_supertraits` to perform substitutions as it goes, and thus yield a series of trait refs that are always in the same 'namespace' as the type parameter bound given as input. Before, we left this to the caller, but this doesn't work because the caller lacks adequare information to perform the type substitutions correctly. - For provided methods, substitute the generics involved in the provided method correctly. - Introduce TypeParameterDef, which tracks the bounds declared on a type parameter and brings them together with the def_id and (in the future) other information (maybe even the parameter's name!). - Introduce Subst trait, which helps to cleanup a lot of the repetitive code involved with doing type substitution. - Introduce Repr trait, which makes debug printouts far more convenient. Fixes #4183. Needed for #5656. | ||||
| 2013-04-05 | Refactor so that references to traits are not represented using a type with a | Niko Matsakis | -16/+24 | |
| bare function store (which is not in fact a kind of value) but rather ty::TraitRef. Removes many uses of fail!() and other telltale signs of type-semantic mismatch. cc #4183 (not a fix, but related) | ||||
| 2013-04-05 | Rather than storing a list of ty::method per trait, store one ty::method | Niko Matsakis | -0/+1 | |
| per method and list of def-ids per trait. | ||||
| 2013-03-30 | rustc: fix astencode test | Erick Tryzelaar | -12/+1 | |
| 2013-03-29 | Merge remote-tracking branch 'remotes/origin/incoming' into serial | Erick Tryzelaar | -4/+4 | |
| 2013-03-29 | Merge remote-tracking branch 'remotes/origin/incoming' into serial | Erick Tryzelaar | -39/+0 | |
| 2013-03-29 | librustc: Remove `fail_unless!` | Patrick Walton | -4/+4 | |
| 2013-03-29 | Register snapshots | Brian Anderson | -39/+0 | |
| 2013-03-29 | Merge remote-tracking branch 'remotes/origin/incoming' into serial | Erick Tryzelaar | -1/+1 | |
| 2013-03-29 | std: remove Encoder::read_rec and Decoder::emit_rec | Erick Tryzelaar | -4/+4 | |
| 2013-03-28 | Removing unused imports | Alex Crichton | -1/+1 | |
| 2013-03-27 | auto merge of #5578 : erickt/rust/incoming, r=jbclements,erickt | bors | -0/+39 | |
| Hey folks, This patch series does some work on the json decoder, specifically with auto decoding of enums. Previously, we would take this code: ``` enum A { B, C(~str, uint) } ``` and would encode a value of this enum to either `["B", []]` or `["C", ["D", 123]]`. I've changed this to `"B"` or `["C", "D", 123]`. This matches the style of the O'Caml json library [json-wheel](http://mjambon.com/json-wheel.html). I've added tests to make sure all this work. In order to make this change, I added passing a `&[&str]` vec to `Decode::emit_enum_variant` so the json decoder can convert the name of a variant into it's position. I also changed the impl of `Encodable` for `Option<T>` to have the right upper casing. I also did some work on the parser, which allows for `fn foo<T: ::cmp::Eq>() { ... }` statements (#5572), fixed the pretty printer properly expanding `debug!("...")` expressions, and removed `ast::expr_vstore_fixed`, which doesn't appear to be used anymore. | ||||
| 2013-03-27 | Autoref the argument to the index operator (#4920) | Niko Matsakis | -5/+5 | |
| 2013-03-27 | std: Decode::read_enum_variant should pass in the variant names | Erick Tryzelaar | -0/+39 | |
| Because the json::Decoder uses the string variant name, we need a way to correlate the string to the enum index. This passes in a static &[&str] to read_enum_variant, which allows the json::Decoder to know which branch it's trying to process. | ||||
| 2013-03-26 | rustc: Purge of HashMap, fixing segfaulting cases | Alex Crichton | -2/+4 | |
| Various FIXME comments added around to denote copies which when removed cause the compiler to segfault at some point before stage2. None of these copies should even be necessary. | ||||
| 2013-03-26 | rustc: Remove uses of oldmap::HashMap | Alex Crichton | -10/+10 | |
| 2013-03-20 | rustc: Remove some bad copies throughout | Alex Crichton | -3/+3 | |
| 2013-03-14 | librustc: Remove another deprecated use of `as Trait`. rs=burningtree | Patrick Walton | -2/+2 | |
| 2013-03-13 | librustc: Don't accept `as Trait` anymore; fix all occurrences of it. | Patrick Walton | -1/+1 | |
| 2013-03-13 | Remove `++` mode from the compiler (it is parsed as `+` mode) | Niko Matsakis | -1/+1 | |
| and obsolete `-` mode altogether (it *was* parsed as `+` mode). | ||||
| 2013-03-11 | librustc: Replace all uses of `fn()` with `&fn()`. rs=defun | Patrick Walton | -2/+2 | |
| 2013-03-08 | Finish de-implicit-selfing everything but the test suite | Ben Striegel | -3/+3 | |
| 2013-03-08 | test: Removing dvec uses | Alex Crichton | -1/+1 | |
| 2013-03-08 | rustc: Remove uses of DVec | Alex Crichton | -5/+4 | |
| 2013-03-07 | librustc: Convert all uses of `assert` over to `fail_unless!` | Patrick Walton | -5/+7 | |
| 2013-03-06 | Make object types not implement associated trait. Fixes #5087. | Niko Matsakis | -20/+0 | |
| 2013-03-06 | Fix bug in coherence that causes all cross-crate impls to be regarded as | Niko Matsakis | -2/+3 | |
| inherent impls, not just those of the `impl Type` variety. | ||||
| 2013-03-05 | rustc: remove some copies | Erick Tryzelaar | -1/+1 | |
| 2013-03-05 | auto merge of #5212 : thestinger/rust/iter, r=graydon | bors | -12/+13 | |
| A small step towards fixing #2827 | ||||
| 2013-03-04 | Adding missing imports for tests, and gate off others | Alex Crichton | -0/+5 | |
| 2013-03-04 | Remove unused imports throughout src/ | Alex Crichton | -9/+0 | |
| 2013-03-03 | replace option::iter with a BaseIter impl | Daniel Micay | -12/+13 | |
| 2013-03-02 | librustc: Remove `fn@`, `fn~`, and `fn&` from librustc. rs=defun | Patrick Walton | -1/+1 | |
| 2013-03-01 | Merge remote-tracking branch 'remotes/origin/incoming' into incoming | Erick Tryzelaar | -3/+11 | |
| 2013-03-01 | Merge remote branch 'nmatsakis/issue-4808-representation-of-extern-fn' into ↵ | Patrick Walton | -3/+11 | |
| incoming | ||||
| 2013-03-01 | Merge remote-tracking branch 'remotes/origin/incoming' into incoming | Erick Tryzelaar | -10/+2 | |
| 2013-02-28 | Remove legacy object creation mode, and convert remaining uses of it | Niko Matsakis | -9/+1 | |
| 2013-02-28 | Change bare functions so that they are represented by a single pointer. | Niko Matsakis | -3/+11 | |
| The basic idea is that we add a new kind of adjustment, AutoAddEnv, that pads an extern fn into a closure by adding the extra NULL word. Then there are a few misc changes in trans to get the LLVM types to match up. Fixes #4808. | ||||
| 2013-02-28 | librustc: Mark all type implementations public. rs=impl-publicity | Patrick Walton | -1/+1 | |
| 2013-02-28 | Merge remote-tracking branch 'remotes/origin/incoming' into incoming | Erick Tryzelaar | -3/+3 | |
| 2013-02-27 | Introduce lifetime declarations into the lists of type parameters. | Niko Matsakis | -4/+4 | |
| Major changes are: - replace ~[ty_param] with Generics structure, which includes both OptVec<TyParam> and OptVec<Lifetime>; - the use of syntax::opt_vec to avoid allocation for empty lists; cc #4846 | ||||
| 2013-02-27 | Merge remote-tracking branch 'remotes/origin/incoming' into incoming | Erick Tryzelaar | -2/+2 | |
| 2013-02-25 | libsyntax: progress on making syntax::visit vecs_implicitly_copyable-free | Erick Tryzelaar | -4/+4 | |
| 2013-02-23 | remove oldsmallintmap | Daniel Micay | -2/+2 | |
| Closes #4738 | ||||
| 2013-02-22 | De-implicit-self librustc | Ben Striegel | -87/+98 | |
| 2013-02-21 | librustc: Fix broken test. | Luqman Aden | -2/+2 | |
| 2013-02-21 | Get rid of structural records in libsyntax and the last bit in librustc. | Luqman Aden | -3/+3 | |
| 2013-02-20 | librustc: Separate most trait bounds with '+'. rs=plussing | Patrick Walton | -4/+4 | |
| 2013-02-20 | librustc: tidy | Luqman Aden | -2/+4 | |
