aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* introduce hir debugging infraAleksey Kladov2019-09-0911-18/+166
| | | | | | | | | | | | This is to make debugging rust-analyzer easier. The idea is that `dbg!(krate.debug(db))` will print the actual, fuzzy crate name, instead of precise ID. Debug printing infra is a separate thing, to make sure that the actual hir doesn't have access to global information. Do not use `.debug` for `log::` logging: debugging executes queries, and might introduce unneded dependencies to the crate graph
* Merge #1793bors[bot]2019-09-093-2/+44
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1793: Fix outer doc-comments of `macro_rules` r=matklad a=uHOOCCOOHu Document comments of `macro_rules!` is currently parsed outside the `MACRO_CALL` node, which makes `DocCommentsOwner::doc_comments()` always empty. For the input: ```rust /// Some docs macro_rules! foo { () => {}; } ``` Current parsing tree is: ``` SOURCE_FILE COMMENT // <- This should be children of MACRO_CALL WHITESPACE MACRO_CALL PATH <...omitted...> ``` It should be: ``` SOURCE_FILE MACRO_CALL COMMENT WHITESPACE PATH <...omitted...> ``` Co-authored-by: uHOOCCOOHu <[email protected]>
| * Fix outer doc-comments of `macro_rules`uHOOCCOOHu2019-09-093-2/+44
| |
* | Merge #1784bors[bot]2019-09-095-42/+229
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1784: Support textual scoped macros r=matklad a=uHOOCCOOHu Refactor the old simulation with `global_macro_scope`. Now it is quite accurate to resolve textual scoped macros. - Expand textual scoped macros in item and non-item place. - Support `#[macro_use]` on `mod`. - Textual scoped macros are collected into `nameres::ModuleScope`, so I think it makes #1727 easier to fix. - It is implemented in a simple way to `clone()` current scoped macro ids into sub-modules. Though only indices are cloned, it will still increase some resolving time. Well, I've not bench-marked yet. In my test with vscode extension, it can now successfully expand `dbg!` from `std` without `std::` prefix. "Goto definition" also works. Screenshot here: <img width="281" alt="Screenshot_20190907_043442" src="https://user-images.githubusercontent.com/14816024/64458794-ddb47900-d128-11e9-95e3-1c8569978825.png"> Co-authored-by: uHOOCCOOHu <[email protected]>
| * | Fix testuHOOCCOOHu2019-09-081-3/+0
| | |
| * | Rename `textual_macro` -> `legacy_macro`uHOOCCOOHu2019-09-084-29/+39
| | | | | | | | | | | | Add comments
| * | Revert "Replace with immutable map to avoid heavy cloning"uHOOCCOOHu2019-09-084-36/+2
| | | | | | | | | | | | | | | | | | This reverts commit 2c494eb803c88ef5d23607c3b156fce60c2b8076. See: https://github.com/rust-analyzer/rust-analyzer/pull/1784#issuecomment-529119924
| * | Replace with immutable map to avoid heavy cloninguHOOCCOOHu2019-09-084-2/+36
| | |
| * | Resolve textual scoped macros inside itemuHOOCCOOHu2019-09-084-9/+65
| | |
| * | Support textual scoped macrosuHOOCCOOHu2019-09-084-34/+158
| |/
* | Merge #1792bors[bot]2019-09-091-2/+3
|\ \ | |/ |/| | | | | | | | | | | 1792: Update README.md r=matklad a=fannheyward fixes base on #1755 reviews Co-authored-by: Heyward Fann <[email protected]>
| * Update README.mdHeyward Fann2019-09-091-1/+1
| |
| * Update README.mdHeyward Fann2019-09-091-2/+3
|/ | | fixes base on #1755 reviews
* Merge #1790bors[bot]2019-09-081-1/+1
|\ | | | | | | | | | | | | | | 1790: Minor typo fix for ra_assists code doc r=matklad a=nelsonjchen Co-authored-by: Nelson Chen <[email protected]>
| * Minor typo fix for ra_assists code docNelson Chen2019-09-081-1/+1
|/
* Merge #1788bors[bot]2019-09-0824-43/+65
|\ | | | | | | | | | | | | | | 1788: cleanup hir db imports r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * cleanup hir db importsAleksey Kladov2019-09-0824-43/+65
|/
* Merge #1787bors[bot]2019-09-072-2/+33
|\ | | | | | | | | | | | | | | 1787: don't cycle when processing macros from prelude in prelude r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * don't cycle when processing macros from prelude in preludeAleksey Kladov2019-09-072-2/+33
|/
* Merge #1786bors[bot]2019-09-0714-40/+394
|\ | | | | | | | | | | | | | | | | | | | | | | | | 1786: Various minor trait improvements r=matklad a=flodiebold - lower bounds on trait definition, i.e. super traits - use super traits for associated types - use traits from where clauses and their super traits for method resolution - lower fn-like paths (i.e. `Fn(X, Y) -> Z`) - pass the environment to Chalk in the correct way to make elaboration work, i.e. inferring things like `T: Clone` from `T: Copy`. The clauses need to be wrapped in `FromEnv` clauses for that to work, which I didn't do before. - add some tests for closure inference already Co-authored-by: Florian Diebold <[email protected]>
| * Fix crash for super trait cyclesFlorian Diebold2019-09-074-20/+39
| |
| * Fix Chalk environmentsFlorian Diebold2019-09-072-3/+4
| | | | | | | | | | The clauses need to be wrapped in `FromEnv` clauses for elaboration (i.e. things like inferring `T: Clone` from `T: Copy`) to work correctly.
| * Use traits from where clauses for method resolutionFlorian Diebold2019-09-074-21/+44
| | | | | | | | | | E.g. if we have `T: some::Trait`, we can call methods from that trait without it needing to be in scope.
| * Lower `Fn(X, Y) -> Z` pathsFlorian Diebold2019-09-074-13/+55
| |
| * Lower bounds on trait definition, and resolve assoc types from super traitsFlorian Diebold2019-09-0711-38/+102
| |
| * Add some more testsFlorian Diebold2019-09-071-0/+205
|/
* Merge #1783bors[bot]2019-09-061-38/+40
|\ | | | | | | | | | | | | | | 1783: simplify r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * simplifyAleksey Kladov2019-09-061-38/+40
| |
* | Merge #1781bors[bot]2019-09-063-4/+4
|\| | | | | | | | | | | | | | | 1781: don't deadlock on shutdown r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * don't deadlock on shutdownAleksey Kladov2019-09-063-4/+4
| | | | | | | | | | | | | | Specifically, when we tear down IO threads, we should take care to dispose connection. closes #1775
* | Merge #1755bors[bot]2019-09-061-27/+4
|\ \ | |/ |/| | | | | | | | | | | 1755: feat(docs): add coc-rust-analyzer r=JeanMertz a=fannheyward Co-authored-by: Heyward Fann <[email protected]>
| * feat(docs): add coc-rust-analyzerHeyward Fann2019-09-031-27/+4
| |
* | Merge #1780bors[bot]2019-09-0613-71/+151
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1780: add option to disable notify r=matklad a=matklad This should help if notify uses 100% of CPU. Put ``` { "rust-analyzer.useClientWatching": true, } ``` into `.vscode/settings.json` (or appropriate config of your editor) to use editor's file watching capabilites instead of notify Co-authored-by: Aleksey Kladov <[email protected]>
| * | add option to disable notifyAleksey Kladov2019-09-0613-71/+151
|/ /
* | Merge #1779bors[bot]2019-09-062-49/+51
|\ \ | | | | | | | | | | | | | | | | | | | | | 1779: minor r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | minorAleksey Kladov2019-09-062-49/+51
| | |
* | | Merge #1778bors[bot]2019-09-067-17/+31
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 1778: make source_root API more abstract r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * | make source_root API more abstractAleksey Kladov2019-09-067-17/+31
|/ /
* | Merge #1777bors[bot]2019-09-061-15/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | 1777: :arrow_up: deps r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: depsAleksey Kladov2019-09-061-15/+15
|/ /
* | Merge #1772bors[bot]2019-09-051-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | 1772: switch to rustc_lexer crate r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | switch to rustc_lexer crateAleksey Kladov2019-09-051-1/+1
| | |
* | | Merge #1771bors[bot]2019-09-053-18/+91
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 1771: Further tweak for macro_use on extern crate r=matklad a=uHOOCCOOHu Some more tweaks to #1743 to behave more like `rustc` 1. Hoist macros from `#[macro_use] extern crate`, so that they can be used before `extern crate`. 2. Implicit `#[macro_use]` for `prelude` if exists Co-authored-by: uHOOCCOOHu <[email protected]>
| * | Hoist macros from extern crate with macro_useuHOOCCOOHu2019-09-052-14/+20
| | |
| * | Consider prelude to be `macro_use`uHOOCCOOHu2019-09-053-4/+71
| | |
* | | Merge #1770bors[bot]2019-09-055-184/+191
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1770: rename test file to match impl file r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | rename test file to match impl fileAleksey Kladov2019-09-052-1/+1
| | | |
| * | | move mod resolution to a separate fileAleksey Kladov2019-09-053-183/+190
| | | |
* | | | Merge #1769bors[bot]2019-09-053-80/+92
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1769: fix renaming of modules r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | fix renaming of modulesAleksey Kladov2019-09-053-80/+92
|/ / / /