aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* internal: refactor macro errorAleksey Kladov2021-06-131-9/+11
|
* internal: refactor unresolved proc macro diagnosticAleksey Kladov2021-06-131-18/+15
|
* internal: refactor inactive code diagnosticsAleksey Kladov2021-06-131-12/+12
|
* internal: refactor unresolved macro call diagnosticAleksey Kladov2021-06-131-12/+10
|
* internal: refactor unresolved import diagnosticAleksey Kladov2021-06-131-1/+4
|
* internal: refactor unresolved extern crate diagnosticAleksey Kladov2021-06-131-4/+6
|
* internal: unified missing fields diagnosticAleksey Kladov2021-06-131-57/+60
|
* internal: move missing_fields diagnosticsAleksey Kladov2021-06-131-15/+18
|
* internal: start new diagnostics APIAleksey Kladov2021-06-131-14/+18
| | | | | | | | | | | | | | | | | | At the moment, this moves only a single diagnostic, but the idea is reafactor the rest to use the same pattern. We are going to have a single file per diagnostic. This file will define diagnostics code, rendering range and fixes, if any. It'll also have all of the tests. This is similar to how we deal with assists. After we refactor all diagnostics to follow this pattern, we'll probably move them to a new `ide_diagnostics` crate. Not that we intentionally want to test all diagnostics on this layer, despite the fact that they are generally emitted in the guts on the compiler. Diagnostics care to much about the end presentation details/fixes to be worth-while "unit" testing. So, we'll unit-test only the primary output of compilation process (types and name res tables), and will use integrated UI tests for diagnostics.
* clippy::clone_on_copyMaan20032021-06-131-1/+1
|
* clippy::redudant_borrowMaan20032021-06-131-4/+4
|
* internal: move diagnostics infra to hirAleksey Kladov2021-06-121-14/+18
|
* Move some hir_ty diagnostics to hirAleksey Kladov2021-06-121-12/+163
|
* minor: optimizeAleksey Kladov2021-06-121-3/+4
| | | | | We shouldn't be looking at the source map unless we actually have diagnostics.
* internal: move missing unsafe diagnostic to hirAleksey Kladov2021-06-121-4/+16
|
* internal: move inference diagnostics to hirAleksey Kladov2021-06-121-2/+20
|
* Merge #9218bors[bot]2021-06-111-0/+14
|\ | | | | | | | | | | | | | | 9218: Item search now respects trait impl items r=Veykril a=Veykril Fixes #2977 Co-authored-by: Lukas Wirth <[email protected]>
| * Item search now respects trait impl itemsLukas Wirth2021-06-111-0/+14
| |
* | Add more profiling for flyimportsKirill Bulatov2021-06-101-0/+4
|/
* Implement dummy expansions for builtin attributesLukas Wirth2021-06-091-0/+1
|
*-. Merge #9181 #9182bors[bot]2021-06-081-0/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9181: Don't complete values in type position r=jonas-schievink a=Veykril Will add some proper tests in a bit 9182: fix: don't complete derive macros as fn-like macros r=jonas-schievink a=jonas-schievink Part of https://github.com/rust-analyzer/rust-analyzer/issues/8518 bors r+ Co-authored-by: Lukas Wirth <[email protected]> Co-authored-by: Jonas Schievink <[email protected]>
| | * fix: don't complete derive macros as fn-like macrosJonas Schievink2021-06-081-0/+7
| |/ |/|
| * Don't complete values in type positionLukas Wirth2021-06-081-0/+12
|/
* feat: goto definition on an impl fn goes to that fn in the traitJade2021-06-071-4/+5
| | | | | | | e.g. if you have a trait T and `impl T for S` for some struct, if you goto definition on some function name inside the impl, it will go to the definition of that function inside the `trait T` block, rather than the current behaviour of not going anywhere at all.
* Expand procedural attribute macrosJonas Schievink2021-06-031-1/+15
|
* Diagnose unimplemented built-in macrosJonas Schievink2021-05-301-2/+10
|
* Thread proc-macro types through the HIRJonas Schievink2021-05-291-5/+13
|
* Stop expanding UseTrees during ItemTree loweringJonas Schievink2021-05-261-20/+6
|
* internal: move diagnostics to hirAleksey Kladov2021-05-251-4/+172
| | | | | | | | | | | | | | | | | | | | | | | The idea here is to eventually get rid of `dyn Diagnostic` and `DiagnosticSink` infrastructure altogether, and just have a `enum hir::Diagnostic` instead. The problem with `dyn Diagnostic` is that it is defined in the lowest level of the stack (hir_expand), but is used by the highest level (ide). As a first step, we free hir_expand and hir_def from `dyn Diagnostic` and kick the can up to `hir_ty`, as an intermediate state. The plan is then to move DiagnosticSink similarly to the hir crate, and, as final third step, remove its usage from the ide. One currently unsolved problem is testing. You can notice that the test which checks precise diagnostic ranges, unresolved_import_in_use_tree, was moved to the ide layer. Logically, only IDE should have the infra to render a specific range. At the same time, the range is determined with the data produced in hir_def and hir crates, so this layering is rather unfortunate. Working on hir_def shouldn't require compiling `ide` for testing.
* Merge #8942bors[bot]2021-05-251-32/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8942: Add `library` semantic token modifier to items from other crates r=arzg a=arzg Closes #5772. A lot of code here is pretty repetitive; please let me know if you have any ideas how to improve it, or whether it’s fine as-is. Side-note: How can I add tests for this? I don’t see a way for the test Rust code in `test_highlighting` to reference other crates to observe the new behaviour. Co-authored-by: Aramis Razzaghipour <[email protected]>
| * Remove hir krate methodsAramis Razzaghipour2021-05-241-48/+0
| |
| * Add highlighting of items from other cratesAramis Razzaghipour2021-05-241-0/+17
| |
* | Get rid of field_type againFlorian Diebold2021-05-231-14/+1
| |
* | Infer correct expected type for generic struct fieldsFlorian Diebold2021-05-231-3/+15
|/
* Give ‘unsafe’ semantic token modifier to unsafe traitsAramis Razzaghipour2021-05-231-0/+4
|
* Add test for #8931 and better checkingFlorian Diebold2021-05-231-2/+2
|
* Rework obligation handlingFlorian Diebold2021-05-211-4/+6
| | | | | | | | We can't do the easy hack that we did before anymore, where we kept track of whether any inference variables changed since the last time we rechecked obligations. Instead, we store the obligations in canonicalized form; that way we can easily check the inference variables to see whether they have changed since the goal was canonicalized.
* Fix HIR expecting errors to unify with anythingFlorian Diebold2021-05-211-6/+3
|
* Fix compilation of hir and ide cratesFlorian Diebold2021-05-211-2/+2
|
* Merge #8813bors[bot]2021-05-161-1/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | * rename ConstExtension->ConstExt * refactor a manual construction of a Const
| * Add more tests, refactor array lengths/consteval workJade2021-05-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | 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)
* | Apply async semantic token modifier to async/await keywordshi-rustin2021-05-141-0/+4
|/ | | | Only async semantic token modifier
* Correctly support SelfType when searching for usagesLukas Wirth2021-05-081-0/+4
|
* internal: expose cfg attrs from hir::CrateAleksey Kladov2021-05-071-0/+5
|
* Don't store call-site text offsets in hygiene infoJonas Schievink2021-05-061-1/+1
|
* simplifyLukas Tobias Wirth2021-05-051-0/+4
|
* internal: fix naming polarityAleksey Kladov2021-04-301-1/+1
| | | | | Type Constructors have *parameters*, when they are substituted with type *arguments*, we have a type.
* internal: normalize nameAleksey Kladov2021-04-301-1/+1
| | | | All def types in hir are unsubstituted
* Exclude inherent traits from flyimportsKirill Bulatov2021-04-161-0/+12
|