aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/impl_block.rs
Commit message (Collapse)AuthorAgeFilesLines
* make AstId untypedAleksey Kladov2019-05-131-1/+1
|
* Handle auto traits & negative implsFlorian Diebold2019-05-111-1/+7
| | | | | We don't pass field types to Chalk yet though, so the auto trait inference won't be correct.
* Extract generic_params method to a HasGenericParams traitFlorian Diebold2019-04-141-7/+4
|
* Add Container enum to handle both kinds of container (impl/trait)Florian Diebold2019-04-141-1/+1
|
* More trait infrastructureFlorian Diebold2019-04-141-1/+2
| | | | | | | | | | - make it possible to get parent trait from method - add 'obligation' machinery for checking that a type implements a trait (and inferring facts about type variables from that) - handle type parameters of traits (to a certain degree) - improve the hacky implements check to cover enough cases to exercise the handling of traits with type parameters - basic canonicalization (will probably also be done by Chalk)
* Get substs for trait refs in impl blocksFlorian Diebold2019-04-141-14/+4
|
* make resolver privateAleksey Kladov2019-04-131-1/+1
|
* rename persistent hir database -> def databaseAleksey Kladov2019-03-231-18/+11
|
* replace todo with fixmeAleksey Kladov2019-03-231-1/+1
|
* remove lower moduleAleksey Kladov2019-03-171-2/+3
|
* rename type to type_alias in the AST as wellAleksey Kladov2019-02-251-1/+1
|
* Rename Type => TypeAliasFlorian Diebold2019-02-241-10/+6
|
* Resolve impl generic paramsFlorian Diebold2019-02-161-1/+3
|
* Add generic params to impl blocksFlorian Diebold2019-02-161-6/+10
|
* Turn ImplBlock into a copy type just containing IDsFlorian Diebold2019-02-161-20/+23
| | | | | | | This makes it more like the other code model types. Also make Module::definition_source/declaration_source return HirFileIds, to make them more like the other source functions.
* reformat the worldAleksey Kladov2019-02-081-17/+6
|
* Some clippy cleanupskjeremy2019-02-061-1/+1
|
* Make the Resolution variants tuple variantsFlorian Diebold2019-02-011-4/+3
|
* Use new Resolver API in type inferenceFlorian Diebold2019-02-011-5/+22
|
* Implement methods to build a resolverFlorian Diebold2019-02-011-16/+29
|
* split HirDatabase apicsmoe2019-02-011-6/+14
|
* Go to Implementation for structs and enumsJeremy Kolb2019-01-301-6/+51
|
* kill DefKindcAleksey Kladov2019-01-241-32/+12
|
* remove boilerplateAleksey Kladov2019-01-241-1/+3
|
* remove DefKind::FunctionAleksey Kladov2019-01-241-4/+4
|
* Functions use new id schemeAleksey Kladov2019-01-241-16/+15
|
* Change ids strategyAleksey Kladov2019-01-241-15/+10
| | | | | | | this is a part of larghish hir refactoring which aims to * replace per-source-root module trees with per crate trees * switch from a monotyped DedId to type-specific ids
* encapsulate hir locationsAleksey Kladov2019-01-241-3/+3
|
* remove Cancelable from idsAleksey Kladov2019-01-151-7/+5
|
* remove Cancelable from Module APIAleksey Kladov2019-01-151-1/+1
|
* remove Cancelable from source bindersAleksey Kladov2019-01-151-1/+1
|
* Small improvements from review commentsFlorian Diebold2019-01-121-4/+4
|
* Implement basic inherent method resolutionFlorian Diebold2019-01-121-8/+28
|
* Fix typos in ARCHITECTURE.md and a number of cratesMarcus Klaas de Vries2019-01-091-6/+6
| | | | specifically: gen_lsp_server, ra_arena, ra_cli, ra_db, ra_hir
* Fix typo defenition -> definitionMarcus Klaas de Vries2019-01-081-1/+1
|
* migrate ra_hir to rowan 2.0Aleksey Kladov2019-01-081-11/+11
|
* flatten module structureAleksey Kladov2019-01-061-1/+1
|
* split module source into decl/definAleksey Kladov2019-01-061-7/+7
|
* kill old moduleAleksey Kladov2019-01-061-11/+13
|
* Do impl collection per module, not per crateFlorian Diebold2019-01-041-27/+25
|
* Rename ImplBlock::target -> target_type, and add target_trait alreadyFlorian Diebold2019-01-041-5/+15
|
* Add HIR for impl blocksFlorian Diebold2019-01-041-0/+172
Since we need to be able to go from def to containing impl block, as well as the other direction, and to find all impls for a certain type, a design similar to the one for modules, where we collect all impls for the whole crate and keep them in an arena, seemed fitting. The ImplBlock type, which provides the public interface, then consists only of an Arc to the arena containing all impls, and the index into it.