aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/data.rs
Commit message (Collapse)AuthorAgeFilesLines
*-. Merge #3966 #3968bors[bot]2020-04-151-4/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3966: Add support for bounds on associated types in trait definitions r=matklad a=flodiebold E.g. ```rust trait Trait { type Item: SomeOtherTrait; } ``` Note that these don't simply desugar to where clauses; as I understand it, where clauses have to be proved by the *user* of the trait, but these bounds are proved by the *implementor*. (Also, where clauses on associated types are unstable.) (Another one from my recursive solver branch...) 3968: Remove format from syntax_bridge hot path r=matklad a=edwin0cheng Although only around 1% speed up by running: ``` Measure-Command {start-process .\target\release\rust-analyzer "analysis-stats -q ." -NoNewWindow -wait} ``` Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Edwin Cheng <[email protected]>
| * | Add support for bounds on associated types in trait definitionsFlorian Diebold2020-04-131-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E.g. ``` trait Trait { type Item: SomeOtherTrait; } ``` Note that these don't simply desugar to where clauses; as I understand it, where clauses have to be proved by the *user* of the trait, but these bounds are proved by the *implementor*. (Also, where clauses on associated types are unstable.)
* | | Implement inline associated type boundsFlorian Diebold2020-04-131-2/+6
|/ / | | | | | | | | | | | | Like `Iterator<Item: SomeTrait>`. This is an unstable feature, but it's used in the standard library e.g. in the definition of Flatten, so we can't get away with not implementing it :)
* | Align namingAleksey Kladov2020-04-111-1/+1
| |
* | Use Expander for cfg handling in implsAleksey Kladov2020-04-111-13/+14
| |
* | Pull Expander upAleksey Kladov2020-04-111-5/+5
|/
* Simpler acessors for keywordsAleksey Kladov2020-04-091-2/+2
|
* Merge #3918bors[bot]2020-04-091-9/+5
|\ | | | | | | | | | | | | | | | | 3918: Add support for feature attributes in struct literal r=matklad a=bnjjj As promised here is the next PR to solve 2 different scenarios with feature flag on struct literal. close #3870 Co-authored-by: Benjamin Coenen <[email protected]>
| * feat: add support for feature attributes in struct literalBenjamin Coenen2020-04-091-9/+5
| | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | Be consistent about token accesorsAleksey Kladov2020-04-091-3/+3
|/
* feat: add attributes support on struct fields and method #3870Benjamin Coenen2020-04-081-4/+21
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* feat: add attributes support on struct fields #3870Benjamin Coenen2020-04-071-1/+5
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Use `dyn Trait` for working with databseAleksey Kladov2020-03-161-9/+9
| | | | | | | 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).
* Merge #3591bors[bot]2020-03-151-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 3591: Support local macro_rules r=matklad a=edwin0cheng This PR implement local `macro_rules` in function body, by adding following things: 1. While lowering, add a `MacroDefId` in body's `ItemScope` as a textual legacy macro. 2. Make `Expander::enter_expand` search with given `ItemScope`. 3. Make `Resolver::resolve_path_as_macro` search with `LocalItemScope`. Fix #2181 Co-authored-by: Edwin Cheng <[email protected]>
| * Support local macro_rulesEdwin Cheng2020-03-141-1/+1
| |
* | Fix completion of trait itemsFlorian Diebold2020-03-141-8/+18
|/ | | | Trait items should be public by default.
* Handle visibility for assoc item path completion as wellFlorian Diebold2020-03-081-12/+19
|
* Handle visibility in method call completionFlorian Diebold2020-03-071-3/+9
|
* Add profiling callsAleksey Kladov2020-03-051-0/+2
|
* Rename ast::ImplBlock -> ast::ImplDefAleksey Kladov2020-02-291-3/+3
|
* Remove AsyncOwnerEdwin Cheng2019-12-241-3/+1
|
* FormattingEdwin Cheng2019-12-241-2/+0
|
* Implement infer await from async funcEdwin Cheng2019-12-241-2/+25
|
* Add a limit for protect against infinite recursionEdwin Cheng2019-12-201-2/+10
|
* Recursive collect macros in impl itemsEdwin Cheng2019-12-201-10/+28
|
* Add support macros in impl blocksEdwin Cheng2019-12-201-39/+80
|
* Rename ContainerId -> AssocContainerIdAleksey Kladov2019-12-201-6/+6
|
* Rename N! to name!Florian Diebold2019-12-131-2/+2
|
* Add macros for known names and pathsFlorian Diebold2019-12-131-2/+2
|
* Move traits to the new locAleksey Kladov2019-12-121-3/+3
|
* Switch to the new location for implsAleksey Kladov2019-12-121-1/+1
|
* Move source-related traits to a separate moduleAleksey Kladov2019-11-281-2/+3
|
* Use Name::missing consistentlyAleksey Kladov2019-11-271-5/+6
|
* Store names in TraitDataAleksey Kladov2019-11-261-17/+38
|
* Some docsAleksey Kladov2019-11-241-8/+7
|
* Switch to StaticLoc for staticsAleksey Kladov2019-11-241-1/+1
|
* Get rid of DefDatabase2Aleksey Kladov2019-11-231-7/+7
|
* Move const&static date to hir_defAleksey Kladov2019-11-221-2/+27
|
* Make ImplData's fields publicAleksey Kladov2019-11-221-22/+8
|
* Move data to a single fileAleksey Kladov2019-11-221-0/+206