aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/resolve.rs
Commit message (Collapse)AuthorAgeFilesLines
* account for impls generated by macrosAleksey Kladov2019-09-181-2/+2
|
* Refactor some moreFlorian Diebold2019-09-171-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 itemsFlorian Diebold2019-09-171-4/+4
|
* Move store TypeRef of type based path in PathKinduHOOCCOOHu2019-09-151-1/+1
|
* Support path starting with a typeuHOOCCOOHu2019-09-151-11/+17
|
* make PerNs non-genericAleksey Kladov2019-09-131-7/+3
|
* Specify desirable namespace when calling resolveAleksey Kladov2019-09-131-172/+233
| | | | That way, we are able to get rid of a number of unreachable statements
* rename AdtDef -> AdtAleksey Kladov2019-09-121-3/+3
|
* make various enums "inherit" from AdtDefAleksey Kladov2019-09-121-3/+3
|
* start cleaning up the resolutionAleksey Kladov2019-09-121-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 scopeuHOOCCOOHu2019-09-091-6/+8
| | | | Fix some details about module scoping
* Constify KnownName'sMuhammad Mominul Huque2019-07-071-5/+5
|
* Add trait obligations for where clauses when calling functions/methodsFlorian Diebold2019-07-061-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.36Jeremy Kolb2019-07-041-2/+2
|
* allow rustfmt to reorder importsAleksey Kladov2019-07-041-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 hirAleksey Kladov2019-06-101-2/+2
|
* remove some hacks from nameresolution for macrosAleksey Kladov2019-06-081-7/+10
|
* somewhat better nameAleksey Kladov2019-06-081-1/+5
|
* add a fixmeAleksey Kladov2019-06-081-2/+2
|
* Improve goto definition for MBEEdwin Cheng2019-06-011-3/+7
|
* rename code_model_api -> code_modelAleksey Kladov2019-05-231-1/+1
|
* simplifyAleksey Kladov2019-05-121-14/+3
|
* simplifyAleksey Kladov2019-05-121-1/+1
|
* Use traits from prelude for method resolutionFlorian Diebold2019-05-121-13/+12
|
* Chalk integrationFlorian Diebold2019-05-041-2/+1
| | | | | - add proper canonicalization logic - add conversions from/to Chalk IR
* Use correct FileId when expanding macros in expressionsAleksey Kladov2019-05-011-18/+6
|
* Introduced resolve_macro_call on resolverLenard Pratt2019-04-231-4/+28
| | | | | | changed to manual expansion fix for nested macros
* Added macro resolution and expansionLenard Pratt2019-04-221-1/+6
|
* New krate() method in Resolver.Marco Groppo2019-04-191-2/+8
| | | | Renamed Impl to ImplBlock.
* Initial support for lang items.Marco Groppo2019-04-191-1/+1
|
* make resolver privateAleksey Kladov2019-04-131-13/+5
|
* Clean up comments / use nicer Iterator methodsFlorian Diebold2019-03-251-1/+1
|
* Basics for trait method resolutionFlorian Diebold2019-03-251-1/+16
|
* replace todo with fixmeAleksey Kladov2019-03-231-2/+2
|
* rename ModuleId -> CrateModuleIdAleksey Kladov2019-03-171-4/+4
|
* remove ItemMapAleksey Kladov2019-03-171-15/+21
|
* Change resolve_path to return the fully resolved path or PerNs::noneVille Penttinen2019-02-221-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 PathResultVille Penttinen2019-02-211-19/+59
|
* Implement basic support for Associated Methods and ConstantsVille Penttinen2019-02-211-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 preludeFlorian Diebold2019-02-131-3/+9
|
* Import the preludeFlorian Diebold2019-02-131-6/+6
|
* rename combine -> orAleksey Kladov2019-02-111-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 ResolverAleksey Kladov2019-02-111-5/+2
| | | | | | | This fixes two bugs: - completion for paths works again - we handle extern prelude shadowing more correctly
* reformat the worldAleksey Kladov2019-02-081-26/+9
|
* Some clippy cleanupskjeremy2019-02-061-1/+1
|
* Complete extern prelude (again)Florian Diebold2019-02-041-1/+4
|
* Some cleanup and additional testsFlorian Diebold2019-02-011-2/+1
|
* Make the Resolution variants tuple variantsFlorian Diebold2019-02-011-19/+11
|
* CleanupFlorian Diebold2019-02-011-9/+7
|
* Use the new Resolver API for goto defFlorian Diebold2019-02-011-10/+16
|