aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge #2008bors[bot]2019-10-144-43/+27
|\ | | | | | | | | | | | | | | 2008: Prepare SourceDatabase API for lazy file loading r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * Prepare SourceDatabase API for lazy file loadingAleksey Kladov2019-10-144-43/+27
| |
* | Merge #2006bors[bot]2019-10-147-50/+49
|\ \ | |/ |/| | | | | | | | | | | 2006: Improvements around `Arc<[T]>` r=matklad a=sinkuu First commit tries to avoid cloning `Arc<[T]>` to a temporary `Vec` for mutating it, if there are no other strong references. Second commit utilizes [`FromIterator for Arc<[T]>`](https://doc.rust-lang.org/std/sync/struct.Arc.html#impl-FromIterator%3CT%3E) instead of `.collect::<Vec<_>>().into()` to avoid allocation in `From<Vec<T>> for Arc<[T]>`. Co-authored-by: Shotaro Yamada <[email protected]>
| * make_mut_sliceShotaro Yamada2019-10-144-42/+23
| |
| * import make_mut_arc_sliceShotaro Yamada2019-10-141-1/+2
| |
| * `.collect()` directly into `Arc<[T]>`Shotaro Yamada2019-10-144-25/+18
| |
| * Avoid cloning `Arc<[T]>` into a vec if possibleShotaro Yamada2019-10-145-31/+55
| |
* | remove one more dependency on source rootsAleksey Kladov2019-10-141-5/+3
|/
* Split up infer.rs furtherFlorian Diebold2019-10-124-1135/+1192
| | | | | | - coercion logic goes to `coerce.rs` - expression inference goes to `expr.rs` - pattern inference goes to `pat.rs`
* Merge #1989bors[bot]2019-10-111-24/+34
|\ | | | | | | | | | | | | | | 1989: Chalk update to simplified IR r=flodiebold a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * Chalk update to simplified IRkjeremy2019-10-101-24/+34
| |
* | Merge #1994bors[bot]2019-10-113-45/+37
|\ \ | | | | | | | | | | | | | | | | | | | | | 1994: remove last traces of source roots from hir r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | remove last traces of source roots from hirAleksey Kladov2019-10-113-45/+37
| |/
* / Remove `as_original_file`Shotaro Yamada2019-10-101-10/+0
|/
* don't special case macro_useAleksey Kladov2019-10-103-23/+13
|
* don't special case path attrAleksey Kladov2019-10-103-34/+31
|
* simplify a bitAleksey Kladov2019-10-102-10/+13
|
* simplify some testsAleksey Kladov2019-10-101-90/+24
|
* Refactor and fix some more edge cases around name resolutionAleksey Kladov2019-10-104-192/+209
|
* add `module` methodsEkaterina Babshukova2019-10-092-2/+42
|
* add <> for type aliases as wellAleksey Kladov2019-10-091-1/+1
|
* refactorAleksey Kladov2019-10-081-11/+9
|
* Merge #1969bors[bot]2019-10-083-11/+24
|\ | | | | | | | | | | | | | | 1969: restore coloring of attributes r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * macro DSL for cfg in testsAleksey Kladov2019-10-083-16/+23
| |
| * use slightly more idiomatic api for cfgAleksey Kladov2019-10-082-7/+13
| |
* | Address comments: fix docs, add completion test for `Self`.ice10002019-10-083-5/+3
| |
* | Support inferring `Self` type in enum definitionsice10002019-10-086-8/+53
|/ | | | Signed-off-by: ice1000 <[email protected]>
* Merge #1928bors[bot]2019-10-058-38/+322
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1928: Support `#[cfg(..)]` r=matklad a=oxalica This PR implement `#[cfg(..)]` conditional compilation. It read default cfg options from `rustc --print cfg` with also hard-coded `test` and `debug_assertion` enabled. Front-end settings are **not** included in this PR. There is also a known issue that inner control attributes are totally ignored. I think it is **not** a part of `cfg` and create a separated issue for it. #1949 Fixes #1920 Related: #1073 Co-authored-by: uHOOCCOOHu <[email protected]> Co-authored-by: oxalica <[email protected]>
| * Add docsuHOOCCOOHu2019-10-021-0/+2
| |
| * OptimizeuHOOCCOOHu2019-10-024-12/+27
| |
| * Refactor CfgOptions insideuHOOCCOOHu2019-10-021-3/+3
| |
| * Support cfg attribute on impl blocksuHOOCCOOHu2019-10-025-13/+90
| |
| * Enable CfgOptions `test` for workspace cratesuHOOCCOOHu2019-10-022-7/+86
| |
| * Introduce ra_cfg to parse and evaluate CfgExpruHOOCCOOHu2019-10-024-26/+106
| |
| * Pass attributes as token tree to DefCollectoruHOOCCOOHu2019-10-022-20/+51
| |
* | Handle divergence in type inference for blocksLaurențiu Nicola2019-10-022-3/+72
|/
* Merge branch 'master' into feature/issue/1856Alexander Andreev2019-09-303-7/+12
|\ | | | | | | | | # Conflicts: # crates/ra_assists/src/ast_editor.rs
| * Fix API of AttruHOOCCOOHu2019-09-302-4/+3
| |
| * correctly reset chalk state after a panicAleksey Kladov2019-09-281-6/+9
| |
| * replace horrible hack with a slightly less horrible oneAleksey Kladov2019-09-271-0/+3
| |
* | Added test for check doc strings in crates.Alexander Andreev2019-09-3027-9/+59
|/ | | | #1856
* Merge #1815bors[bot]2019-09-2717-124/+361
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1815: Support correct `$crate` expansion in macros r=uHOOCCOOHu a=uHOOCCOOHu This PR makes normal use cases of `$crate` from macros work as expected. It makes more macros from `std` work. Type inference works well with `panic`, `unimplemented`, `format`, and maybe more. Sadly that `vec![1, 2, 3]` still not works, but it is not longer an issue about macro. Screenshot: ![Screenshot_20190927_022136](https://user-images.githubusercontent.com/14816024/65714465-b4568f80-e0cd-11e9-8043-dd44c2ae8040.png) Co-authored-by: uHOOCCOOHu <[email protected]>
| * FixuHOOCCOOHu2019-09-272-2/+2
| |
| * Support `$crate` in item and expr place.uHOOCCOOHu2019-09-2612-35/+266
| |
| * Store crate info in `MacroDefId`uHOOCCOOHu2019-09-263-5/+11
| |
| * Refactor `Name` ready for hygienic macrouHOOCCOOHu2019-09-263-84/+84
| |
* | Add SubstsBuilderFlorian Diebold2019-09-2611-126/+212
|/ | | | + further refactoring.
* Support all coercion placesuHOOCCOOHu2019-09-253-96/+216
|
* Support custom `CoerceUnsized`uHOOCCOOHu2019-09-254-247/+476
| | | | Split out tests about coercion
* Better handle never type and branch merginguHOOCCOOHu2019-09-255-181/+392
| | | | Split out tests for never type to another file