aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def
Commit message (Collapse)AuthorAgeFilesLines
...
* Next gen IDs for functionsAleksey Kladov2019-11-207-22/+105
| | | | | | | | | | | | | | | | | The current system with AstIds has two primaraly drawbacks: * It is possible to manufacture IDs out of thin air. For example, it's possible to create IDs for items which are not considered in CrateDefMap due to cfg. Or it is possible to mixup structs and unions, because they share ID space. * Getting the ID of a parent requires a secondary index. Instead, the plan is to pursue the more traditional approach, where each items stores the id of the parent declaration. This makes `FromSource` more awkward, but also more correct: now, to get from an AST to HIR, we first do this recursively for the parent item, and the just search the children of the parent for the matching def
* Move traits to hir_defAleksey Kladov2019-11-205-3/+86
|
* Move Generics to hir_defAleksey Kladov2019-11-202-0/+187
|
* Rename Source::ast -> Source::valueAleksey Kladov2019-11-208-24/+25
|
* Disable doctestsAleksey Kladov2019-11-172-1/+4
|
* Remove wrong cloneAleksey Kladov2019-11-151-2/+2
|
* Sourcify some thingsAleksey Kladov2019-11-151-6/+5
| | | | | If we want to support macros properly, we need to get rid of those FileIds everywhere...
* Remove old impls infrastructureAleksey Kladov2019-11-153-1/+89
|
* Store impls in CrateDefMapAleksey Kladov2019-11-153-4/+39
|
* Add ImplIdAleksey Kladov2019-11-152-9/+22
|
* Reduce visibilityAleksey Kladov2019-11-151-1/+1
|
* Move scope tests to hir_defAleksey Kladov2019-11-153-3/+228
|
* Add convenience method for testingAleksey Kladov2019-11-153-5/+5
|
* Privatize modulesAleksey Kladov2019-11-151-1/+5
|
* Refactor Module::from_source to properly descend from root fileAleksey Kladov2019-11-151-0/+7
|
* Move body queries to hir_defAleksey Kladov2019-11-144-4/+62
|
* Move scopes to hir_defAleksey Kladov2019-11-142-0/+158
|
* Slightly better namingAleksey Kladov2019-11-142-10/+7
|
* Handle macro-generated expressions slightly less wrongAleksey Kladov2019-11-142-32/+20
|
* Move expansion to ExpanderAleksey Kladov2019-11-142-27/+41
|
* Move parse_path to ExpanderAleksey Kladov2019-11-142-10/+10
|
* Expansion stack scaffoldAleksey Kladov2019-11-142-8/+38
|
* Add Expader::to_sourceAleksey Kladov2019-11-142-10/+8
|
* Move original_file to ExpanderAleksey Kladov2019-11-142-9/+11
|
* Rename MacroResolver -> ExpanderAleksey Kladov2019-11-142-27/+23
|
* Move current file to MacroResolverAleksey Kladov2019-11-142-19/+25
|
* Reduce visibilityAleksey Kladov2019-11-141-5/+1
|
* Add helpful pointer to module docsAleksey Kladov2019-11-121-0/+2
|
* Drop obsolete commentAleksey Kladov2019-11-121-4/+0
|
* Move expression lowering to hir_defAleksey Kladov2019-11-122-2/+730
|
* Move definition of exprs to hir_defAleksey Kladov2019-11-125-16/+542
|
* Minor refactoringAleksey Kladov2019-11-121-18/+29
|
* Merge #2205bors[bot]2019-11-112-3/+29
|\ | | | | | | | | | | | | | | | | | | | | | | | | 2205: Implement bulitin line! macro r=matklad a=edwin0cheng This PR implements bulitin macro `line!` and add basic infra-structure for other bulitin macros: 1. Extend `MacroDefId` to support builtin macros 2. Add a `quote!` macro for simple quasi quoting. Note that for support others builtin macros, eager macro expansion have to be supported first, this PR not try to handle it. :) Co-authored-by: Edwin Cheng <[email protected]>
| * Add MacroDefKindEdwin Cheng2019-11-111-8/+7
| |
| * Add basic bultin macro infrastructureEdwin Cheng2019-11-112-4/+31
| |
* | impl fmt::Display for BuiltinTypeAleksey Kladov2019-11-111-0/+32
| |
* | Overwrite the prelude with one defined in a later dependencyMatthias Einwag2019-11-101-9/+6
| | | | | | | | | | | | | | This removes the special casing for the "core" prelude. Whenever a later dependency also exports a prelude, it will replace the formerly imported prelude. The utilized prelude then depends purely on import order.
* | Add tests for resolving types in core and std preludesMatthias Einwag2019-11-101-0/+31
| |
* | Resolve core typesMatthias Einwag2019-11-091-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for completion and goto definition of types defined within the "core" crate. The core crate is added as a dependency to each crate in the project. The core crate exported it's own prelude. This caused now all crates to inherit the core crates prelude instead of the std crates. In order to avoid the problem the prelude resolution has been changed to overwrite an already resolved prelude if this was set to a crate named core - in order to pick a better prelude like std. Fixes #2199
* | Unfork struct and union idsAleksey Kladov2019-11-094-34/+33
|/
* Touch up nameres doc commentAleksey Kladov2019-11-081-7/+6
|
* Reduce visibilityAleksey Kladov2019-11-081-9/+9
|
* Extract path resolution submoduleAleksey Kladov2019-11-083-243/+269
|
* SimplifyAleksey Kladov2019-11-082-7/+5
| | | | | There's only one call-site for the function, so it seems fine to inline
* Reduce visibilityAleksey Kladov2019-11-081-23/+23
|
* Reduce visibilityAleksey Kladov2019-11-041-2/+2
|
* Move Namespace enum closer to usageAleksey Kladov2019-11-041-8/+0
|
* Reduce visibilityAleksey Kladov2019-11-042-6/+10
|
* Reexport relative_path from ra_dbAleksey Kladov2019-11-035-8/+4
|
* Add small module-level docsAleksey Kladov2019-11-032-0/+4
|