aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix lowering of FnOnce() without return typeFlorian Diebold2021-05-251-12/+15
| | | | This should result in an implicit `-> ()`, not leaving out the binding.
* internal: intern `AttrInput`Jonas Schievink2021-05-243-13/+14
|
* Intern `GenericArgs`Jonas Schievink2021-05-244-11/+10
| | | | This shaves off another ~4 mb or so
* internal: intern `TypeBound`sJonas Schievink2021-05-249-25/+39
| | | | | Doesn't save much memory (~2 mb), but interning things is generally a good pattern to follow
* Merge #8945bors[bot]2021-05-231-0/+8
|\ | | | | | | | | | | | | | | | | | | | | | | 8945: fix: Make expected type work in more situations r=flodiebold a=flodiebold Also makes call info show the correct types for generic methods. ![2021-05-23-182952_1134x616_scrot](https://user-images.githubusercontent.com/906069/119269023-dd5a5b00-bbf5-11eb-993a-b6e122c3b9a6.png) ![2021-05-23-183117_922x696_scrot](https://user-images.githubusercontent.com/906069/119269025-dfbcb500-bbf5-11eb-983c-fc415b8428e0.png) Co-authored-by: Florian Diebold <[email protected]>
| * Infer correct expected type for generic struct fieldsFlorian Diebold2021-05-231-0/+8
| |
* | internal: document ItemTree designJonas Schievink2021-05-231-2/+32
|/
* Explain why nested `TypeRef` aren't internedJonas Schievink2021-05-231-0/+4
|
* Render where clauses and more generic paramsJonas Schievink2021-05-232-34/+155
|
* Pretty-print generic parametersJonas Schievink2021-05-232-22/+99
|
* ItemTree: pretty-print all pathsJonas Schievink2021-05-222-9/+119
|
* Work around non-unique AttrIdsJonas Schievink2021-05-222-9/+39
|
* Add an ItemTree pretty-printerJonas Schievink2021-05-213-0/+780
|
* impl Display for AttrInput/ImportAliasJonas Schievink2021-05-212-1/+19
|
* Remove `StructDefKind`Jonas Schievink2021-05-213-20/+4
|
* Don't lower extern block in the ItemTreeJonas Schievink2021-05-214-20/+79
|
* Support `#[register_attr]` and `#[register_tool]`Jonas Schievink2021-05-202-32/+92
|
* Rename `ignore_attrs_on` to `skip_attrs`Jonas Schievink2021-05-201-6/+6
|
* SimplifyJonas Schievink2021-05-201-4/+2
|
* Refactor name resolution to resolve derive helpersJonas Schievink2021-05-202-85/+135
|
* Rename `unexpanded_macros` to `unresolved_macros`Jonas Schievink2021-05-201-15/+31
|
* 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
| |