aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/generics.rs
Commit message (Collapse)AuthorAgeFilesLines
* Finalize TypeBound grammarAleksey Kladov2020-07-311-1/+1
|
* Rename TypeRef -> TypeAleksey Kladov2020-07-311-1/+1
| | | | | | | | | | The TypeRef name comes from IntelliJ days, where you often have both type *syntax* as well as *semantical* representation of types in scope. And naming both Type is confusing. In rust-analyzer however, we use ast types as `ast::Type`, and have many more semantic counterparts to ast types, so avoiding name clash here is just confusing.
* Finalize Trait grammarAleksey Kladov2020-07-301-2/+2
|
* Rename TypeParamList -> GenericParamListAleksey Kladov2020-07-301-4/+4
|
* Don't allocate empty genericsJonas Schievink2020-06-241-7/+7
|
* Make generics and attr queries use ItemTreeJonas Schievink2020-06-241-2/+47
| | | | Now it's fast
* Lower genericsJonas Schievink2020-06-241-4/+9
|
* Introduce LowerCtx for path loweringEdwin Cheng2020-05-011-21/+47
|
* Be consistent about token accesorsAleksey Kladov2020-04-091-1/+1
|
* Simplify Arena to use a generic indexAleksey Kladov2020-03-191-1/+1
|
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-4/+4
| | | | | | | 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).
* Add profiling callsAleksey Kladov2020-03-051-0/+2
|
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-181-1/+1
|
* FormattingFlorian Diebold2020-02-071-6/+11
|
* First stab at desugaring bounds for APITFlorian Diebold2020-02-071-4/+23
|
* wip lower impl trait to type argsFlorian Diebold2020-02-071-5/+40
|
* Rename N! to name!Florian Diebold2019-12-131-3/+3
|
* Add macros for known names and pathsFlorian Diebold2019-12-131-3/+3
|
* Move enum&union to new locAleksey Kladov2019-12-121-3/+3
|
* Move structs to new locAleksey Kladov2019-12-121-1/+1
|
* Move traits to the new locAleksey Kladov2019-12-121-1/+1
|
* Switch to the new location for implsAleksey Kladov2019-12-121-1/+1
|
* Rename GenericParam -> TypeParamAleksey Kladov2019-12-071-14/+14
| | | | We don't have LifetimeParam yet, but they are planned!
* Classify name works for TypeParamsAleksey Kladov2019-12-071-1/+19
|
* Track source of type parametersAleksey Kladov2019-12-071-21/+72
|
* MinorAleksey Kladov2019-12-071-3/+4
|
* Remove idx and parent generics from genericsAleksey Kladov2019-12-071-71/+19
| | | | | This makes `hir_def::GenericParams` flatter. The logic for re-numbering the params is moved to hir instead.
* Store GenericParams in arenaAleksey Kladov2019-12-071-12/+13
|
* Move source-related traits to a separate moduleAleksey Kladov2019-11-281-1/+2
|
* Fix hir for ast::UnionDefAleksey Kladov2019-11-251-4/+2
|
* Get rid of DefDatabase2Aleksey Kladov2019-11-231-4/+4
|
* Simplify generic paramsAleksey Kladov2019-11-201-2/+1
|
* Move generic_params query to HIRAleksey Kladov2019-11-201-3/+26
|
* Switch type aliases to new sourcesAleksey Kladov2019-11-201-1/+1
|
* Next gen IDs for functionsAleksey Kladov2019-11-201-2/+2
| | | | | | | | | | | | | | | | | The current system with AstIds has two primaraly drawbacks: * It is possible to manufacture IDs out of thin air. For example, it's possible to create IDs for items which are not considered in CrateDefMap due to cfg. Or it is possible to mixup structs and unions, because they share ID space. * Getting the ID of a parent requires a secondary index. Instead, the plan is to pursue the more traditional approach, where each items stores the id of the parent declaration. This makes `FromSource` more awkward, but also more correct: now, to get from an AST to HIR, we first do this recursively for the parent item, and the just search the children of the parent for the matching def
* Move Generics to hir_defAleksey Kladov2019-11-201-0/+163