Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Resolve trait associated items | Florian Diebold | 2019-09-25 | 5 | -19/+78 | |
| | | | | E.g. `Default::default` or `<Foo as Default>::default`. | |||||
* | Fix retrieval of the Fn traits | Florian Diebold | 2019-09-25 | 3 | -7/+6 | |
| | | | | | I used the wrong query, so it only used the lang items from the respective crate... | |||||
* | Merge #1906 | bors[bot] | 2019-09-25 | 1 | -2/+5 | |
|\ | | | | | | | | | | | | | | | 1906: Add missing lang-items to `def_crates` r=matklad a=sinkuu Co-authored-by: Shotaro Yamada <[email protected]> | |||||
| * | Add missing lang-items to `def_crates` | Shotaro Yamada | 2019-09-25 | 1 | -2/+5 | |
| | | ||||||
* | | Remove redundant clone() | Shotaro Yamada | 2019-09-25 | 8 | -22/+14 | |
| | | ||||||
* | | Avoid intermediate allocation | Shotaro Yamada | 2019-09-25 | 1 | -1/+1 | |
|/ | ||||||
* | Implement the call argument checking order hack for closures | Florian Diebold | 2019-09-24 | 3 | -12/+108 | |
| | ||||||
* | Make the closure_1 test work | Florian Diebold | 2019-09-24 | 3 | -27/+40 | |
| | ||||||
* | Make closures impl closure traits | Florian Diebold | 2019-09-24 | 4 | -41/+188 | |
| | ||||||
* | Give closures types | Florian Diebold | 2019-09-24 | 5 | -21/+78 | |
| | ||||||
* | Upgrade Chalk again | Florian Diebold | 2019-09-24 | 1 | -3/+6 | |
| | ||||||
* | Merge #1898 | bors[bot] | 2019-09-23 | 2 | -2/+2 | |
|\ | | | | | | | | | | | | | | | | | 1898: Drive by lints r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]> Co-authored-by: Jeremy Kolb <[email protected]> | |||||
| * | Drive by lints | kjeremy | 2019-09-23 | 2 | -2/+2 | |
| | | ||||||
* | | Upgrade Chalk | Florian Diebold | 2019-09-23 | 1 | -4/+6 | |
|/ | ||||||
* | Split off path expression inference code into submodule | Florian Diebold | 2019-09-23 | 2 | -172/+199 | |
| | ||||||
* | Handle projection types from Chalk | Florian Diebold | 2019-09-22 | 1 | -1/+5 | |
| | ||||||
* | Handle associated type shorthand (`T::Item`) | Florian Diebold | 2019-09-22 | 6 | -22/+168 | |
| | | | | | | | | | | | | This is only allowed for generic parameters (including `Self` in traits), and special care needs to be taken to not run into cycles while resolving it, because we use the where clauses of the generic parameter to find candidates for the trait containing the associated type, but the where clauses may themselves contain instances of short-hand associated types. In some cases this is even fine, e.g. we might have `T: Trait<U::Item>, U: Iterator`. If there is a cycle, we'll currently panic, which isn't great, but better than overflowing the stack... | |||||
* | fix module attr path | gfreezy | 2019-09-20 | 3 | -2/+40 | |
| | ||||||
* | introduce FromSource trait | Ekaterina Babshukova | 2019-09-19 | 6 | -111/+247 | |
| | ||||||
* | account for impls generated by macros | Aleksey Kladov | 2019-09-18 | 3 | -28/+74 | |
| | ||||||
* | Merge #1862 | bors[bot] | 2019-09-17 | 12 | -242/+336 | |
|\ | | | | | | | | | | | | | | | 1862: Assoc item resolution refactoring (again) r=flodiebold a=flodiebold This is #1849, with the associated type selection code removed for now. Handling cycles there will need some more thought. Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | Remove assoc type selection code for now to fix crashes | Florian Diebold | 2019-09-17 | 2 | -25/+10 | |
| | | ||||||
| * | Add test for `T::Item` cycles | Florian Diebold | 2019-09-17 | 1 | -0/+42 | |
| | | ||||||
| * | Remove TraitItem and ImplItem in favor of AssocItem | Florian Diebold | 2019-09-17 | 7 | -88/+41 | |
| | | ||||||
| * | Small review improvements | Florian Diebold | 2019-09-17 | 1 | -5/+3 | |
| | | ||||||
| * | Add test for `<T>::Item` | Florian Diebold | 2019-09-17 | 1 | -10/+22 | |
| | | ||||||
| * | Refactor some more | Florian Diebold | 2019-09-17 | 4 | -57/+100 | |
| | | | | | | | | | | | | Type-relative paths (`<T>::foo`) also need to work in type context, for example `<T>::Item` is legal. So rather than returning the type ref from the resolver function, just check it before. | |||||
| * | Refactor associated item resolution more | Florian Diebold | 2019-09-17 | 2 | -124/+120 | |
| | | | | | | | | | | When resolving an associated item in value namespace, use the `Ty` lowering code for the segments before the last instead of replicating it. | |||||
| * | Refactor a bit to prepare for resolving trait assoc items | Florian Diebold | 2019-09-17 | 5 | -38/+66 | |
| | | ||||||
| * | Resolve assoc types on type parameters | Florian Diebold | 2019-09-17 | 2 | -24/+61 | |
| | | | | | | | | | | | | E.g. `fn foo<T: Iterator>() -> T::Item`. It seems that rustc does this only for type parameters and only based on their bounds, so we also only consider traits from bounds. | |||||
| * | Adapt some tests | Florian Diebold | 2019-09-17 | 1 | -12/+12 | |
| | | ||||||
* | | remove confusing code | Aleksey Kladov | 2019-09-17 | 1 | -31/+1 | |
|/ | | | | | | I must confess I don't really understand what this code is trying to do, but it definitely misreports changes during fixedpoint iteration, and no tests fail if I remove it, so... | |||||
* | Merge #1817 | bors[bot] | 2019-09-16 | 9 | -144/+227 | |
|\ | | | | | | | | | | | | | | | 1817: Support path starting with a type r=matklad a=uHOOCCOOHu The path syntax `<Ty>::foo` Co-authored-by: uHOOCCOOHu <[email protected]> | |||||
| * | Define known paths and group names | uHOOCCOOHu | 2019-09-15 | 6 | -49/+63 | |
| | | ||||||
| * | Move store TypeRef of type based path in PathKind | uHOOCCOOHu | 2019-09-15 | 3 | -20/+10 | |
| | | ||||||
| * | Support path starting with a type | uHOOCCOOHu | 2019-09-15 | 7 | -124/+203 | |
| | | ||||||
* | | Remove `is_unnamed` | Dylan MacKenzie | 2019-09-16 | 1 | -4/+0 | |
| | | ||||||
* | | Gracefully handle `const _` items in `ConstData` | Dylan MacKenzie | 2019-09-16 | 2 | -5/+9 | |
|/ | ||||||
* | Add `DotDotPat` to AST | Dylan MacKenzie | 2019-09-15 | 1 | -0/+1 | |
| | | | | This is modeled on `PlaceholderPat`. | |||||
* | Support bare `Trait` without dyn | Florian Diebold | 2019-09-14 | 2 | -12/+11 | |
| | ||||||
* | Upgrade Chalk | Florian Diebold | 2019-09-14 | 3 | -58/+0 | |
| | | | | ... and remove Ty::UnselectedProjection. It'll be handled differently. | |||||
* | make PerNs non-generic | Aleksey Kladov | 2019-09-13 | 4 | -34/+30 | |
| | ||||||
* | Specify desirable namespace when calling resolve | Aleksey Kladov | 2019-09-13 | 8 | -408/+458 | |
| | | | | That way, we are able to get rid of a number of unreachable statements | |||||
* | rename AdtDef -> Adt | Aleksey Kladov | 2019-09-12 | 11 | -67/+64 | |
| | ||||||
* | generalize impl_froms to nested enums | Aleksey Kladov | 2019-09-12 | 4 | -58/+26 | |
| | ||||||
* | make various enums "inherit" from AdtDef | Aleksey Kladov | 2019-09-12 | 11 | -98/+132 | |
| | ||||||
* | start cleaning up the resolution | Aleksey Kladov | 2019-09-12 | 5 | -49/+59 | |
| | | | | | | | Nameres related types, like `PerNs<Resolution>`, can represent unreasonable situations, like a local in a type namespace. We should clean this up, by requiring that call-site specifies the kind of resolution it expects. | |||||
* | add macros with local_inner_macros argument | JasperDeSutter | 2019-09-12 | 2 | -1/+40 | |
| | ||||||
* | Merge #1818 | bors[bot] | 2019-09-12 | 5 | -1/+68 | |
|\ | | | | | | | | | | | | | | | 1818: Infer box expression r=matklad a=uHOOCCOOHu Infer `box e` to be `std::boxed::Box<T>` where `e: T` Co-authored-by: uHOOCCOOHu <[email protected]> | |||||
| * | Infer box expression | uHOOCCOOHu | 2019-09-11 | 5 | -1/+68 | |
| | |