aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def
Commit message (Collapse)AuthorAgeFilesLines
* Track in-scope derive helpers during nameresJonas Schievink2021-05-191-8/+26
|
* Fix unresolved attribute fallback againJonas Schievink2021-05-192-4/+33
|
*-. Merge #8885 #8887bors[bot]2021-05-192-14/+35
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8885: internal: greatly simplify eager macro representation r=jonas-schievink a=jonas-schievink - Share structures with lazy macros, make both use `MacroCallLoc`. - Remove `intern_eager_expansion`, `EagerCallLoc`, `EagerMacroId`, and *many* matches on `MacroCallId`. - Make a lot of FIXMEs obsolete since the code no longer distinguishes between eager and lazy macros. - Add `EagerCallInfo`, which is `Some` for calls to eager macros and holds the argument or expansion result and the included file. 8887: fix: fix derive collection after unresolved attribute fallback r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/pull/8882#issuecomment-844379170 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| | * Fix derive collection after unresolved attribute fallbackJonas Schievink2021-05-192-2/+26
| |/ |/|
| * Simplify eager macro representationJonas Schievink2021-05-191-12/+9
|/
* Merge #8882bors[bot]2021-05-192-28/+160
|\ | | | | | | | | | | | | | | | | | | | | | | 8882: internal: resolve attributes in name resolution (minimal version) r=jonas-schievink a=jonas-schievink Closes https://github.com/rust-analyzer/rust-analyzer/pull/7049 This should not have any observable effect, since we don't attempt to expand attribute macros yet, and I have implemented a fallback that treats items with unresolved attributes as if the attribute wasn't there. Derive helpers are not yet resolved. `#![register_{attr,tool}]` are not yet supported. Co-authored-by: Jonas Schievink <[email protected]>
| * Rewrite `resolve_imports` to use an iteratorJonas Schievink2021-05-191-19/+23
| | | | | | | | This allows reusing the original vector's allocation
| * Restructure nameres loop to be a bit clearerJonas Schievink2021-05-191-38/+41
| |
| * internal: resolve attributes in name resolutionJonas Schievink2021-05-192-3/+128
| |
* | Merge #8871bors[bot]2021-05-181-23/+13
|\ \ | | | | | | | | | | | | | | | | | | | | | 8871: internal: Simplify `DefCollector::resolve_macros` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Simplify `DefCollector::resolve_macros`Jonas Schievink2021-05-181-23/+13
| |/
* | Added cov markivan7702021-05-172-1/+3
| |
* | Fix #8834ivan7702021-05-162-0/+19
| |
* | Merge #8813bors[bot]2021-05-163-8/+79
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8813: Get some more array lengths! r=lf- a=lf- This is built on #8799 and thus contains its changes. I'll rebase it onto master when that one gets merged. It adds support for r-a understanding the length of: * `let a: [u8; 2] = ...` * `let a = b"aaa"` * `let a = [0u8; 4]` I have added support for getting the values of byte strings, which was not previously there. I am least confident in the correctness of this part and it probably needs some more tests, as we currently have only one test that exercised that part (!). Fixes #2922. Co-authored-by: Jade <[email protected]>
| * | Address final feedbackJade2021-05-161-0/+8
| | | | | | | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
| * | Add more tests, refactor array lengths/consteval workJade2021-05-141-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix #2922: add unknown length as a condition for a type having unknown. Incorporate reviews: * Extract some of the const evaluation workings into functions * Add fixmes on the hacks * Add tests for impls on specific array lengths (these work!!! 😁) * Add tests for const generics (indeed we don't support it yet)
| * | Add support for lengths in array repeats, if they are literalsJade2021-05-132-4/+5
| | | | | | | | | | | | Now we will get the type of `[0u8; 4]`.
| * | Support length for ByteStringsJade2021-05-131-1/+4
| | | | | | | | | | | | I am not confident that my added byte string parsing is right.
| * | Add lowering of array lengths in typesJade2021-05-131-3/+50
| |/ | | | | | | | | | | | | | | | | | | | | Now e.g. ```rust fn a(b: [u8; 2]) { } ``` will know about the length of b.
* | Merge #8822bors[bot]2021-05-131-2/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8822: minor: Cleanup imports r=Veykril a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Cleanup importsAleksey Kladov2021-05-131-2/+2
| |/
* | Merge #8820bors[bot]2021-05-131-2/+11
|\ \ | |/ |/| | | | | | | | | | | 8820: fix: Return absolute paths in find_path if crate start is ambiguous r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Return absolute paths in find_path if crate start is ambiguousLukas Wirth2021-05-131-2/+11
| |
* | Merge #8398bors[bot]2021-05-113-10/+20
|\ \ | | | | | | | | | | | | | | | | | | | | | 8398: Fix inference with conditionally compiled tails r=flodiebold a=DJMcNab Fixes #8378 Co-authored-by: Daniel McNab <[email protected]>
| * | Fix inference with conditionally compiled tailsDaniel McNab2021-05-033-10/+20
| | | | | | | | | | | | Fixes #8378
* | | Rewrite `attr.rs` to allow using syntax-based indicesJonas Schievink2021-05-102-59/+84
| | |
* | | Move `AttrId` back into `hir_def`Jonas Schievink2021-05-103-6/+9
| |/ |/|
* | Test that none of the macros are reparsedJonas Schievink2021-05-091-0/+6
| |
* | Precompute macro fragment kindJonas Schievink2021-05-095-11/+29
| |
* | Reuse database in LowerCtxJonas Schievink2021-05-064-15/+11
| |
* | Update crates/hir_def/src/nameres/tests/incremental.rsAleksey Kladov2021-05-061-1/+1
| | | | | | Co-authored-by: Jonas Schievink <[email protected]>
* | internal: add failing incremental testAleksey Kladov2021-05-061-0/+52
| |
* | Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-0612-63/+99
| |
* | Fix block comment intra doc link injection rangesLukas Tobias Wirth2021-05-041-4/+8
|/
* find_path: check only crate-level preludeJonas Schievink2021-04-301-2/+28
|
* Remove `ItemTree::all_inner_items`Jonas Schievink2021-04-211-7/+0
|
* Add failing local items testJonas Schievink2021-04-213-0/+46
|
* Fix some find_path bugs around inner itemsJonas Schievink2021-04-191-5/+58
|
* fix: false positive about inner attrs in docsAleksey Kladov2021-04-191-2/+2
| | | | closes #8541
* Merge #8462bors[bot]2021-04-197-36/+72
|\ | | | | | | | | | | | | | | 8462: Expand macros at type position r=jonas-schievink a=cynecx Co-authored-by: cynecx <[email protected]>
| * hir_ty: keep body::Expander in TyLoweringContextcynecx2021-04-182-45/+11
| |
| * hir_def: various cleanupscynecx2021-04-183-11/+9
| |
| * hir_def: refactor expand_macro_type and cleanupscynecx2021-04-172-120/+30
| |
| * hir_def: ignore ast::Type in file_item_tree querycynecx2021-04-172-10/+11
| |
| * hir_ty: Expand macros at type positioncynecx2021-04-178-49/+210
| |
* | Fix visibility of items in block modulesJonas Schievink2021-04-192-1/+21
|/
* Fix `TestDB::module_at_position` with submodulesJonas Schievink2021-04-172-2/+72
|
* Merge #8542bors[bot]2021-04-167-19/+39
|\ | | | | | | | | | | | | | | 8542: Include path in `unresolved-macro-call` diagnostic r=matklad a=jonas-schievink Co-authored-by: Jonas Schievink <[email protected]>
| * Include path in `unresolved-macro-call` diagnosticJonas Schievink2021-04-167-19/+39
| |
* | Fix primitive shadowing with inner itemsJonas Schievink2021-04-161-1/+7
|/