aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Rename to associated_type_shorthand_candidatesJonas Schievink2020-04-291-2/+2
|
* Complete assoc. items on type parametersJonas Schievink2020-04-291-1/+2
|
* For associated type shorthand (T::Item), use the substs from the where clauseFlorian Diebold2020-04-261-0/+12
| | | | | So e.g. if we have `fn foo<T: SomeTrait<u32>>() -> T::Item`, we want to lower that to `<T as SomeTrait<u32>>::Item` and not `<T as SomeTrait<_>>::Item`.
* Fix wrong substitution codeFlorian Diebold2020-04-231-1/+1
| | | | | | | We need to shift in when we're substituting inside a binder. This should fix #4053 (it doesn't fix the occasional overflow that also occurs on the Diesel codebase though).
* Fix another crash from wrong bindersFlorian Diebold2020-04-171-2/+2
| | | | | | | Basically, if we had something like `dyn Trait<T>` (where `T` is a type parameter) in an impl we lowered that to `dyn Trait<^0.0>`, when it should be `dyn Trait<^1.0>` because the `dyn` introduces a new binder. With one type parameter, that's just wrong, with two, it'll lead to crashes.
* fix false positive for enum with no variantsJosh Mcguigan2020-04-161-0/+10
|
* missing match arms diagnosticJosh Mcguigan2020-04-071-0/+1
|
* Fix Chalk panicFlorian Diebold2020-04-061-1/+2
| | | | | Fixes #3865. Basically I forgot to shift 'back' when we got `dyn Trait`s back from Chalk, so after going through Chalk a few times, the panic happened.
* Check for eprintln on CIAleksey Kladov2020-04-061-0/+5
|
* Upgrade Chalk againFlorian Diebold2020-04-051-30/+73
| | | | | | | The big change here is counting binders, not variables (https://github.com/rust-lang/chalk/pull/360). We have to adapt to the same scheme for our `Ty::Bound`. It's mostly fine though, even makes some things more clear.
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-17/+19
| | | | | | | It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
* Normalize waiting queries namesAleksey Kladov2020-03-061-2/+2
|
* Fix #3373Florian Diebold2020-03-011-0/+4
| | | | | | | Basically, we need to allow variables in the caller self type to unify with the impl's declared self type. That requires some more contortions in the variable handling. I'm looking forward to (hopefully) handling this in a cleaner way when we switch to Chalk's types and unification code.
* Rework find_super_trait_path to protect against cyclesFlorian Diebold2020-02-221-7/+10
|
* Fix shift_bound_varsFlorian Diebold2020-02-221-3/+3
| | | | It should only shift free vars (maybe the name isn't the best...)
* Add &dyn Trait -> &dyn SuperTrait coercion, and fix &T -> &dyn TraitFlorian Diebold2020-02-221-0/+20
|
* Implement dyn Trait unsizing as wellFlorian Diebold2020-02-221-0/+11
|
* More manual clippy fixesKirill Bulatov2020-02-181-3/+2
|
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-181-2/+2
|
* Move hir_fmt code to display moduleFlorian Diebold2020-02-141-371/+4
|
* Rename Ty::Param => Ty::PlaceholderFlorian Diebold2020-02-141-5/+5
| | | | This aligns more with Chalk.
* Fix some TODOsFlorian Diebold2020-02-071-7/+10
|
* Don't print implicit type args from impl TraitFlorian Diebold2020-02-071-3/+10
|
* FormattingFlorian Diebold2020-02-071-1/+4
|
* Fix compilation of other cratesFlorian Diebold2020-02-071-2/+8
|
* Use variables in predicates as wellFlorian Diebold2020-02-071-24/+4
|
* Comment fixes / todosFlorian Diebold2020-02-071-0/+2
|
* Fix APIT some moreFlorian Diebold2020-02-071-73/+80
|
* Change Ty::Param to contain param IDFlorian Diebold2020-02-071-22/+27
|
* Fix printing of function typesFlorian Diebold2020-02-071-3/+4
|
* Lower impl trait to variables, move away from using placeholders where they ↵Florian Diebold2020-02-071-2/+32
| | | | don't belong
* wip lower impl trait to type argsFlorian Diebold2020-02-071-1/+1
|
* Add impl trait lowering modeFlorian Diebold2020-02-071-1/+3
|
* Introduce TyLoweringContextFlorian Diebold2020-02-071-1/+1
|
* Standard formatting for array typesAleksey Kladov2020-01-281-1/+1
|
* Omit default parameters for reference typesKirill Bulatov2020-01-221-1/+6
|
* Split `infer` query into two for better profilingMichal Terepeta2020-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the same change as we did with `crate_def_map` and it does seem that we mostly spend time in salsa, without recomputing much on rust-analyzer side. Example output: ``` 233ms - handle_inlay_hints 163ms - get_inlay_hints 163ms - SourceAnalyzer::new 67ms - def_with_body_from_child_node 67ms - analyze_container 67ms - analyze_container 67ms - Module::from_definition 67ms - Module::from_file 67ms - crate_def_map 0ms - parse_macro_query (6 calls) 0ms - raw_items_query (1 calls) 66ms - ??? 0ms - crate_def_map (1 calls) 0ms - crate_def_map (1 calls) 96ms - infer 2ms - trait_solve_query (2 calls) 94ms - ??? 0ms - body_with_source_map_query (1 calls) 0ms - crate_def_map (1 calls) [...] ``` Signed-off-by: Michal Terepeta <[email protected]>
* Omit closure parametersKirill Bulatov2019-12-231-11/+20
|
* Clippy lintskjeremy2019-12-201-1/+1
|
* Rename ContainerId -> AssocContainerIdAleksey Kladov2019-12-201-4/+4
|
* Omit default parameter typesKirill Bulatov2019-12-191-1/+32
|
* ReformatAleksey Kladov2019-12-071-2/+2
|
* Refactor parameter count trackingAleksey Kladov2019-12-071-5/+5
|
* Remove idx and parent generics from genericsAleksey Kladov2019-12-071-21/+11
| | | | | This makes `hir_def::GenericParams` flatter. The logic for re-numbering the params is moved to hir instead.
* Handle cycles in impl types betterFlorian Diebold2019-11-301-15/+0
| | | | | | - impl Trait<Self> for S is allowed - impl Trait for S<Self> is an invalid cycle, but we can add cycle recovery for it in Salsa now
* Use Name::missing consistentlyAleksey Kladov2019-11-271-18/+7
|
* Memoize impl resolutionsAleksey Kladov2019-11-271-0/+15
|
* Move TyAleksey Kladov2019-11-271-2/+1132
|
* Doc primitivesAleksey Kladov2019-11-261-1/+2
|
* Introduce hir_tyAleksey Kladov2019-11-261-0/+3