Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Support inferring `Self` type in enum definitions | ice1000 | 2019-10-08 | 1 | -5/+27 |
| | | | | Signed-off-by: ice1000 <[email protected]> | ||||
* | Handle associated type shorthand (`T::Item`) | Florian Diebold | 2019-09-22 | 1 | -0/+7 |
| | | | | | | | | | | | | 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... | ||||
* | account for impls generated by macros | Aleksey Kladov | 2019-09-18 | 1 | -2/+2 |
| | |||||
* | Refactor some more | Florian Diebold | 2019-09-17 | 1 | -8/+8 |
| | | | | | | 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 a bit to prepare for resolving trait assoc items | Florian Diebold | 2019-09-17 | 1 | -4/+4 |
| | |||||
* | Move store TypeRef of type based path in PathKind | uHOOCCOOHu | 2019-09-15 | 1 | -1/+1 |
| | |||||
* | Support path starting with a type | uHOOCCOOHu | 2019-09-15 | 1 | -11/+17 |
| | |||||
* | make PerNs non-generic | Aleksey Kladov | 2019-09-13 | 1 | -7/+3 |
| | |||||
* | Specify desirable namespace when calling resolve | Aleksey Kladov | 2019-09-13 | 1 | -172/+233 |
| | | | | That way, we are able to get rid of a number of unreachable statements | ||||
* | rename AdtDef -> Adt | Aleksey Kladov | 2019-09-12 | 1 | -3/+3 |
| | |||||
* | make various enums "inherit" from AdtDef | Aleksey Kladov | 2019-09-12 | 1 | -3/+3 |
| | |||||
* | start cleaning up the resolution | Aleksey Kladov | 2019-09-12 | 1 | -1/+37 |
| | | | | | | | 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. | ||||
* | Make macro scope a real name scope | uHOOCCOOHu | 2019-09-09 | 1 | -6/+8 |
| | | | | Fix some details about module scoping | ||||
* | Constify KnownName's | Muhammad Mominul Huque | 2019-07-07 | 1 | -5/+5 |
| | |||||
* | Add trait obligations for where clauses when calling functions/methods | Florian Diebold | 2019-07-06 | 1 | -0/+12 |
| | | | | | E.g. if we call `foo<T: Into<u32>>(x)`, that adds an obligation that `x: Into<u32>`, etc. | ||||
* | Some clippy fixes for 1.36 | Jeremy Kolb | 2019-07-04 | 1 | -2/+2 |
| | |||||
* | allow rustfmt to reorder imports | Aleksey Kladov | 2019-07-04 | 1 | -5/+8 |
| | | | | | | This wasn't a right decision in the first place, the feature flag was broken in the last rustfmt release, and syntax highlighting of imports is more important anyway | ||||
* | use single version of either in hir | Aleksey Kladov | 2019-06-10 | 1 | -2/+2 |
| | |||||
* | remove some hacks from nameresolution for macros | Aleksey Kladov | 2019-06-08 | 1 | -7/+10 |
| | |||||
* | somewhat better name | Aleksey Kladov | 2019-06-08 | 1 | -1/+5 |
| | |||||
* | add a fixme | Aleksey Kladov | 2019-06-08 | 1 | -2/+2 |
| | |||||
* | Improve goto definition for MBE | Edwin Cheng | 2019-06-01 | 1 | -3/+7 |
| | |||||
* | rename code_model_api -> code_model | Aleksey Kladov | 2019-05-23 | 1 | -1/+1 |
| | |||||
* | simplify | Aleksey Kladov | 2019-05-12 | 1 | -14/+3 |
| | |||||
* | simplify | Aleksey Kladov | 2019-05-12 | 1 | -1/+1 |
| | |||||
* | Use traits from prelude for method resolution | Florian Diebold | 2019-05-12 | 1 | -13/+12 |
| | |||||
* | Chalk integration | Florian Diebold | 2019-05-04 | 1 | -2/+1 |
| | | | | | - add proper canonicalization logic - add conversions from/to Chalk IR | ||||
* | Use correct FileId when expanding macros in expressions | Aleksey Kladov | 2019-05-01 | 1 | -18/+6 |
| | |||||
* | Introduced resolve_macro_call on resolver | Lenard Pratt | 2019-04-23 | 1 | -4/+28 |
| | | | | | | changed to manual expansion fix for nested macros | ||||
* | Added macro resolution and expansion | Lenard Pratt | 2019-04-22 | 1 | -1/+6 |
| | |||||
* | New krate() method in Resolver. | Marco Groppo | 2019-04-19 | 1 | -2/+8 |
| | | | | Renamed Impl to ImplBlock. | ||||
* | Initial support for lang items. | Marco Groppo | 2019-04-19 | 1 | -1/+1 |
| | |||||
* | make resolver private | Aleksey Kladov | 2019-04-13 | 1 | -13/+5 |
| | |||||
* | Clean up comments / use nicer Iterator methods | Florian Diebold | 2019-03-25 | 1 | -1/+1 |
| | |||||
* | Basics for trait method resolution | Florian Diebold | 2019-03-25 | 1 | -1/+16 |
| | |||||
* | replace todo with fixme | Aleksey Kladov | 2019-03-23 | 1 | -2/+2 |
| | |||||
* | rename ModuleId -> CrateModuleId | Aleksey Kladov | 2019-03-17 | 1 | -4/+4 |
| | |||||
* | remove ItemMap | Aleksey Kladov | 2019-03-17 | 1 | -15/+21 |
| | |||||
* | Change resolve_path to return the fully resolved path or PerNs::none | Ville Penttinen | 2019-02-22 | 1 | -13/+16 |
| | | | | | | This also adds new pub(crate) resolve_path_segments which returns the PathResult, which may or may not be fully resolved. PathResult is also now pub(crate) since it is an implementation detail. | ||||
* | Remove Const inference for now, refactor PathResult | Ville Penttinen | 2019-02-21 | 1 | -19/+59 |
| | |||||
* | Implement basic support for Associated Methods and Constants | Ville Penttinen | 2019-02-21 | 1 | -6/+40 |
| | | | | | | | This is done in `infer_path_expr`. When `Resolver::resolve_path` returns `PartiallyResolved`, we use the returned `Resolution` together with the given `segment_index` to check if we can find something matching the segment at segment_index in the impls for that particular type. | ||||
* | Complete names from prelude | Florian Diebold | 2019-02-13 | 1 | -3/+9 |
| | |||||
* | Import the prelude | Florian Diebold | 2019-02-13 | 1 | -6/+6 |
| | |||||
* | rename combine -> or | Aleksey Kladov | 2019-02-11 | 1 | -1/+1 |
| | | | | | | This way we match API of Option https://doc.rust-lang.org/std/option/enum.Option.html#method.or | ||||
* | use extern prelude in Resolver | Aleksey Kladov | 2019-02-11 | 1 | -5/+2 |
| | | | | | | | This fixes two bugs: - completion for paths works again - we handle extern prelude shadowing more correctly | ||||
* | reformat the world | Aleksey Kladov | 2019-02-08 | 1 | -26/+9 |
| | |||||
* | Some clippy cleanups | kjeremy | 2019-02-06 | 1 | -1/+1 |
| | |||||
* | Complete extern prelude (again) | Florian Diebold | 2019-02-04 | 1 | -1/+4 |
| | |||||
* | Some cleanup and additional tests | Florian Diebold | 2019-02-01 | 1 | -2/+1 |
| | |||||
* | Make the Resolution variants tuple variants | Florian Diebold | 2019-02-01 | 1 | -19/+11 |
| |