aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* internal: remove one more accidentally quadratic code-pathAleksey Kladov2021-06-221-20/+10
| | | | | | | | | | | | | | Definition::visibility was implemented in a rather roundabout way -- by asking the parent module about the effective visibility. This is problematic for a couple of reasons: * first, it doesn't work for local items * second, asking module about visibility of a child is a linear operation (that's a problem in itself, tracked in #9378) Instead, lets ask the declared visibility directly, we have all the code for it, and need only to actually us it.
* intenral: dont export impl detailsAleksey Kladov2021-06-221-5/+3
|
* Move features into potential_cfg_optionsJamie Cunliffe2021-06-211-2/+2
|
* Improve completion of cfg attributesJamie Cunliffe2021-06-211-0/+4
| | | | | | | | | | | | The completion of cfg will look at the enabled cfg keys when performing completion. It will also look crate features when completing a feature cfg option. A fixed list of known values for some cfg options are provided. For unknown keys it will look at the enabled values for that cfg key, which means that completion will only show enabled options for those.
* Apply some clippy suggestionsClemens Wasser2021-06-211-23/+19
|
* Filter out non-type completions in the respective completions modules insteadLukas Wirth2021-06-161-12/+0
|
* Merge #9260bors[bot]2021-06-141-1/+1
|\ | | | | | | | | | | | | | | 9260: tree-wide: make rustdoc links spiky so they are clickable r=matklad a=lf- Rustdoc was complaining about these while I was running with --document-private-items and I figure they should be fixed. Co-authored-by: Jade <[email protected]>
| * tree-wide: make rustdoc links spiky so they are clickableJade2021-06-141-1/+1
| |
* | internal: kill diagnostic sinkAleksey Kladov2021-06-131-22/+6
| |
* | internal: use cov-mark rather than bailing out diagnosticAleksey Kladov2021-06-131-22/+6
| |
* | internal: refactor missing match arms diagnosticsAleksey Kladov2021-06-131-5/+8
| |
* | internal: refactor incorrect case diagnosticsAleksey Kladov2021-06-131-8/+10
| |
* | internal: refactor find_map diagnosticAleksey Kladov2021-06-131-4/+7
| |
* | internal: refactor missing or or some diagnosticAleksey Kladov2021-06-131-5/+1
| |
* | internal: refactor remove this semicolon diagnosticsAleksey Kladov2021-06-131-4/+1
| |
* | internal: refactor mismatched args count diagnosticAleksey Kladov2021-06-131-6/+3
| |
* | internal: refactor missing unsafe diagnosticAleksey Kladov2021-06-131-3/+1
| |
* | internal: refactor BreakOutsideOfLoop diagnosticAleksey Kladov2021-06-131-2/+2
| |
* | internal: refactor NoSuchField diagnosticAleksey Kladov2021-06-131-1/+1
| |
* | internal: refactor unimplemented builtin macro diagnosticAleksey Kladov2021-06-131-2/+6
| |
* | 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]>