aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir
Commit message (Collapse)AuthorAgeFilesLines
* introduce hir debugging infraAleksey Kladov2019-09-094-3/+90
| | | | | | | | | | | | 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
* 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-083-9/+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-083-2/+9
|
* Resolve textual scoped macros inside itemuHOOCCOOHu2019-09-084-9/+65
|
* Support textual scoped macrosuHOOCCOOHu2019-09-084-34/+158
|
* cleanup hir db importsAleksey Kladov2019-09-0824-43/+65
|
* don't cycle when processing macros from prelude in preludeAleksey Kladov2019-09-072-2/+33
|
* Fix crash for super trait cyclesFlorian Diebold2019-09-073-19/+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-072-12/+48
|
* Lower bounds on trait definition, and resolve assoc types from super traitsFlorian Diebold2019-09-0710-38/+101
|
* Add some more testsFlorian Diebold2019-09-071-0/+205
|
* 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
| |
* | make source_root API more abstractAleksey Kladov2019-09-062-7/+9
|/
* 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
| |
* | 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 #1743bors[bot]2019-09-055-12/+117
|\ | | | | | | | | | | | | | | 1743: Support `#[macro_use]` on `extern crate` r=matklad a=uHOOCCOOHu Unfortunately, #1688 is still an issue. My guess is wrong :( Co-authored-by: uHOOCCOOHu <[email protected]>
| * Fix typouHOOCCOOHu2019-09-051-2/+2
| |
| * Let `macro_use` bypass module scopeuHOOCCOOHu2019-09-052-35/+52
| |
| * Fix import strategy of `macro_use` and its testuHOOCCOOHu2019-09-024-9/+26
| |
| * Add testuHOOCCOOHu2019-08-311-5/+50
| |
| * Support resolution of `#[macro_use] extern crate`uHOOCCOOHu2019-08-312-2/+28
| |
* | Make type walking infrastructure a bit nicerFlorian Diebold2019-09-038-133/+132
| | | | | | | | | | If/when we switch to using Chalk's Ty, we'll need to replace this by its `Fold` trait, but I didn't want to import the whole thing just yet.
* | Properly format `impl Trait<Type = Foo>` typesFlorian Diebold2019-09-032-23/+97
| | | | | | | | | | | | It's a bit complicated because we basically have to 'undo' the desugaring, and the result is very dependent on the specifics of the desugaring and will probably produce weird results otherwise.
* | Add support for associated type bindings (`where Trait<Type = X>`)Florian Diebold2019-09-036-52/+183
| |
* | Add test for assoc type bindingsFlorian Diebold2019-09-031-0/+65
| |
* | Correctly build BodySourceMap for macro-expanded expressionsAleksey Kladov2019-09-036-66/+119
| |
* | slightly simplify expr lowering flowAleksey Kladov2019-09-033-129/+136
| |
* | clearer ignoreAleksey Kladov2019-09-031-1/+1
| |
* | remove needless refsAleksey Kladov2019-09-031-2/+2
| |
* | use recrod terminology for hir::PatAleksey Kladov2019-09-033-8/+7
| |
* | move expr lowering to lowerAleksey Kladov2019-09-033-653/+667
| |
* | fix hir for new block syntaxAleksey Kladov2019-09-026-42/+50
| |
* | remove useless traitAleksey Kladov2019-09-021-2/+2
| |
* | Add an expr_source method analogous to the source methods in the code modelFlorian Diebold2019-09-026-30/+79
| | | | | | | | ... and use that instead of exposing the source map.
* | Report type mismatches in analysis-statsFlorian Diebold2019-09-022-7/+7
| | | | | | | | Only the number usually; each one individually when running with -v.
* | :arrow_up: once_cellAleksey Kladov2019-09-011-1/+1
|/
* :arrow_up: instaAleksey Kladov2019-08-298-1222/+1320
|
* Small fixesKirill Bulatov2019-08-262-13/+15
|
* Remove redundant testsKirill Bulatov2019-08-261-63/+5
|
* Fix 'missing Ok in tail expr' validationFlorian Diebold2019-08-261-3/+4
| | | | | Because of the coercion change, the type mismatch now only happens on the block expression.
* Make infer_block not unify; add back calculate_least_upper_boundFlorian Diebold2019-08-262-30/+66
|
* An attempt to add the coercion logic for NeverKirill Bulatov2019-08-262-51/+98
|