aboutsummaryrefslogtreecommitdiff
path: root/crates/hir
Commit message (Collapse)AuthorAgeFilesLines
* syntax: return owned string instead of leaking stringcynecx2021-03-261-1/+1
|
* completion relevance consider if types can be unifiedJosh Mcguigan2021-03-261-1/+5
|
* Use arrayvec 0.6Laurențiu Nicola2021-03-252-2/+2
|
* Merge #7907bors[bot]2021-03-241-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7907: Autoderef with visibility r=cynecx a=cynecx Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841. I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below Refs: - `rustc_typeck` checking fields: https://github.com/rust-lang/rust/blob/66ec64ccf31883cd2c28d045912a76179c0c6ed2/compiler/rustc_typeck/src/check/expr.rs#L1610 r? @flodiebold Co-authored-by: cynecx <[email protected]>
| * hir: don't use the self module as visible_from in iterate_method_candidatescynecx2021-03-241-6/+1
| |
| * hir_ty: introduce visible_from_module param into method resolutioncynecx2021-03-201-0/+7
| |
* | simplifyLukas Wirth2021-03-231-0/+15
| |
* | Make more use of the HIR in rename::rename_to_selfLukas Wirth2021-03-231-4/+17
| |
* | Merge hir::MacroDef::is_* into hir::MacroDef::kindLukas Wirth2021-03-231-14/+17
| |
* | Set up a search scope when searching for mbe macro referencesLukas Wirth2021-03-231-0/+5
| |
* | Align naming of deps and revdepsAleksey Kladov2021-03-231-5/+1
| |
* | Compute more mathematically well-rounded notion of transitive depsAleksey Kladov2021-03-231-2/+1
| | | | | | | | | | | | | | | | By including the crate itself, we make the resulting set closed with respect to `transitve_reveres_dependencies` operation, as it becomes a proper transitive closure. This just feels more proper and mathy. And, indeed, this actually allows us to simplify call sites somewhat.
* | Align InEnvironment with ChalkFlorian Diebold2021-03-212-78/+56
| | | | | | | | | | | | This in particular means storing a chalk_ir::Environment, not our TraitEnvironment. This makes InEnvironment not usable for Type, where we need to keep the full TraitEnvironment.
* | Align Canonical more with Chalk's versionFlorian Diebold2021-03-211-13/+28
| | | | | | | | In particular, use chalk_ir::CanonicalVarKinds.
* | Use QuantifiedWhereClause in generic_predicates as wellFlorian Diebold2021-03-212-6/+2
| | | | | | | | | | Still far too much binder skipping going on; I find it hard to imagine this is all correct, but the tests pass.
* | Introduce QuantifiedWhereClause and DynTy analogous to ChalkFlorian Diebold2021-03-212-7/+16
| | | | | | | | | | This introduces a bunch of new binders in lots of places, which we have to be careful about, but we had to add them at some point.
* | Merge #8133bors[bot]2021-03-211-1/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8133: Ignore type bindings in generic_predicates_for_param (fix panic on ena and crates depending on it) r=flodiebold a=flodiebold This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine. Co-authored-by: Florian Diebold <[email protected]>
| * | Ignore type bindings in generic_predicates_for_paramFlorian Diebold2021-03-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to handle more cases without a query cycle, which includes certain cases that rustc accepted. That in turn means we avoid triggering salsa-rs/salsa#257 on valid code (it will still happen if the user writes an actual cycle). We actually accept more definitions than rustc now; that's because rustc only ignores bindings when looking up super traits, whereas we now also ignore them when looking for predicates to disambiguate associated type shorthand. We could introduce a separate query for super traits if necessary, but for now I think this should be fine.
* | | clippy::complexity simplifications related to IteratorsMatthias Krüger2021-03-211-1/+1
|/ /
* / Track labels in scopesLukas Wirth2021-03-212-0/+5
|/
* Turn Obligation into something similar to chalk_ir::DomainGoalFlorian Diebold2021-03-201-5/+6
| | | | This includes starting to make use of Chalk's `Cast` trait.
* Rename GenericPredicate -> WhereClauseFlorian Diebold2021-03-201-6/+6
|
* Add `AttrsWithOwner` and clean up `source_map`Jonas Schievink2021-03-192-5/+5
|
* Return `Either` from `MacroDefId::ast_id`Jonas Schievink2021-03-191-10/+5
|
* Replace Projection variant in GenericPredicate with AliasEqLukas Wirth2021-03-191-11/+11
|
* Chalkify TraitRefFlorian Diebold2021-03-181-5/+5
|
* Store an `AstId` for procedural macrosJonas Schievink2021-03-182-6/+16
|
* Make MacroDefId's `AstId` mandatory when possibleJonas Schievink2021-03-183-6/+7
|
* Rename `item_tree` query to `file_item_tree`Jonas Schievink2021-03-181-4/+4
|
* Make `ItemTreeId` its own typeJonas Schievink2021-03-181-1/+1
|
* Merge #8059bors[bot]2021-03-174-3/+11
|\ | | | | | | | | | | | | | | 8059: Move doc-comment highlight injection from AST to HIR r=matklad,jonas-schievink a=Veykril Fixes #5016 Co-authored-by: Lukas Wirth <[email protected]>
| * Properly handle doc attributes in doc-comment highlight injectionLukas Wirth2021-03-161-1/+1
| |
| * Move doc-comment highlight injection from AST to HIRLukas Wirth2021-03-163-2/+10
| |
* | avoid converting types into themselves via .into() (clippy::useless-conversion)Matthias Krüger2021-03-174-9/+9
| | | | | | | | example: let x: String = String::from("hello world").into();
* | Rename Substs -> SubstitutionFlorian Diebold2021-03-163-12/+12
| |
* | Merge #8055bors[bot]2021-03-161-2/+28
|\ \ | |/ |/| | | | | | | | | | | 8055: Implement HirDisplay for some more types r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Implement HirDisplay for some more typesLukas Wirth2021-03-161-2/+28
| |
* | Merge #8034bors[bot]2021-03-161-4/+19
|\ \ | |/ |/| | | | | | | | | | | 8034: Implement Crate::transitive_reverse_dependencies r=matklad a=Veykril changelog internal Implement Crate::transitive_reverse_dependencies Co-authored-by: Lukas Wirth <[email protected]>
| * Implement Crate::transitive_reverse_dependenciesLukas Wirth2021-03-151-4/+19
| |
* | Merge #7498bors[bot]2021-03-161-6/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7498: Clone for update r=matklad a=matklad rowan counterpart https://github.com/rust-analyzer/rowan/pull/93 #6857 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Upgrade rowanAleksey Kladov2021-03-161-6/+24
| | | | | | | | | | | | Notably, new rowan comes with support for mutable syntax trees.
| | |
| \ \
*-. \ \ Merge #7900 #8000bors[bot]2021-03-162-24/+502
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7900: show function params in completion detail r=matklad a=JoshMcguigan This resolves #7842 by updating the detail for function completions from `-> T` to `fn(T, U) -> V`. I added an expicit unit test for this, `ide_completion::render::fn_detail_includes_args_and_return_type`, which passes. Lots of other unit tests fail (~60 of them) due to this change, although I believe the failures are purely cosmetic (they were testing the exact format of this output). I'm happy to go update those tests, but before I do that I'd like to make sure this is in fact the format we want for the detail? edit - I realized `UPDATE_EXPECT=1 cargo test` automatically updates `expect!` tests. Big :+1: to whoever worked on that! So I'll go ahead and update all these tests soon. But I still would like to confirm `fn(T, U) -> V` is the desired content in the `detail` field. 8000: Use hir formatter for hover text r=matklad a=oxalica Fix #2765 , (should) fix #4665 Co-authored-by: Josh Mcguigan <[email protected]> Co-authored-by: oxalica <[email protected]>
| | * | Pretty print root module of extern cratesoxalica2021-03-151-0/+4
| | | |
| | * | Fix trait type parameteroxalica2021-03-151-1/+7
| | | |
| | * | Use hir formatter moreoxalica2021-03-152-3/+213
| | | |
| | * | Impl HirDisplay for function hover messageoxalica2021-03-152-4/+247
| | | |
| | * | Introduce FunctionQualifier for hir::FunctionDataoxalica2021-03-151-1/+1
| | | |
| | * | Collect HirDisplay impls to a single fileoxalica2021-03-152-20/+27
| | |/
| * | show function params in completion detailJosh Mcguigan2021-03-121-0/+8
| | |
* | | 7709: Import changes.Chetan Khilosiya2021-03-151-4/+2
| | |