aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Escape characters in doc comments in macros correctlyChayim Refael Friedman2021-04-182-3/+23
| | | | | | | | | Previously they were escaped twice, both by `.escape_default()` and the debug view of strings (`{:?}`). This leads to things like newlines or tabs in documentation comments being `\\n`, but we unescape literals only once, ending up with `\n`. This was hard to spot because CMark unescaped them (at least for `'` and `"`), but it did not do so in code blocks. This also was the root cause of #7781. This issue was solved by using `.escape_debug()` instead of `.escape_default()`, but the real issue remained. We can bring the `.escape_default()` back by now, however I didn't do it because it is probably slower than `.escape_debug()` (more work to do), and also in order to change the code the least.
* Merge #8212bors[bot]2021-03-2821-96/+287
|\ | | | | | | | | | | | | | | | | | | | | | | | | 8212: Basic support macro 2.0 r=jonas-schievink a=edwin0cheng Turn out it is quite straight forward :) r @jonas-schievink ![m2](https://user-images.githubusercontent.com/11014119/112712565-6eb99380-8f0b-11eb-88de-5d7f974dfe6d.png) Co-authored-by: Edwin Cheng <[email protected]>
| * Remove unused test fixturesEdwin Cheng2021-03-281-4/+0
| |
| * Add support for doc on hover for macro 2.0Edwin Cheng2021-03-272-2/+33
| |
| * Unleash macro 2.0 in hightlight and moreEdwin Cheng2021-03-2712-31/+49
| |
| * Basic Support Macro 2.0Edwin Cheng2021-03-277-63/+209
| |
* | Merge #8221bors[bot]2021-03-271-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 8221: Prefer adding `mod` declaration to lib.rs over file.rs in UnlinkedFile fix r=Veykril a=Veykril When there is a `lib.rs` and `main.rs` in one crate, one usually wants the `lib.rs` file to declare the modules. bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Prefer add `mod` declaration to lib.rs over file.rs in UnlinkedFile fixLukas Wirth2021-03-271-1/+1
| | |
* | | Merge #8220bors[bot]2021-03-278-10/+15
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8220: Reorder some ide_db imports r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Cleanup ide_db importsLukas Wirth2021-03-278-10/+15
| |/ /
* | | Merge #8213bors[bot]2021-03-272-5/+21
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 8213: Added support for const generics in impl generation r=Veykril a=ivan770 Closes #8211 Co-authored-by: ivan770 <[email protected]>
| * | Added support for const generics in impl generationivan7702021-03-272-5/+21
| | |
* | | Merge #8201bors[bot]2021-03-277-70/+119
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8201: Fix recursive macro statements expansion r=edwin0cheng a=edwin0cheng This PR attempts to properly handle macro statement expansion by implementing the following: 1. Merge macro expanded statements to parent scope statements. 2. Add a new hir `Expr::MacroStmts` for handle tail expression infer. PS : The scope of macro expanded statements are so strange that it took more time than I thought to understand and implement it :( Fixes #8171 Co-authored-by: Edwin Cheng <[email protected]>
| * | | Fix recursive macro statement expansionEdwin Cheng2021-03-257-70/+119
| | | |
* | | | Add TokenTextAleksey Kladov2021-03-263-7/+89
| |_|/ |/| |
* | | syntax: return owned string instead of leaking stringcynecx2021-03-2616-27/+27
| | |
* | | completion relevance distinguish between exact type match and could unifyJosh Mcguigan2021-03-265-44/+81
| | |
* | | completion relevance consider if types can be unifiedJosh Mcguigan2021-03-265-3/+47
| | |
* | | Ignore main functions not in root moduleivan7702021-03-261-1/+7
| |/ |/|
* | Use more std::array::IntoIterLaurențiu Nicola2021-03-251-4/+3
| |
* | Use arrayvec 0.6Laurențiu Nicola2021-03-257-18/+16
|/
* Merge #7907bors[bot]2021-03-2410-37/+250
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7907: Autoderef with visibility r=cynecx a=cynecx Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841. I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below Refs: - `rustc_typeck` checking fields: https://github.com/rust-lang/rust/blob/66ec64ccf31883cd2c28d045912a76179c0c6ed2/compiler/rustc_typeck/src/check/expr.rs#L1610 r? @flodiebold Co-authored-by: cynecx <[email protected]>
| * hir: don't use the self module as visible_from in iterate_method_candidatescynecx2021-03-241-6/+1
| |
| * hir_ty: don't call write_field_resolution when field candidate isn't visiblecynecx2021-03-241-6/+4
| |
| * hir_def: move visibility queries from hir_ty to hir_defcynecx2021-03-245-35/+43
| |
| * hir_ty: add coverage testing for autoderef_visibility_method testcynecx2021-03-202-0/+2
| |
| * hir_ty: fix test by removing trailing whitespacecynecx2021-03-201-24/+23
| |
| * hir_ty: iterate_method_candidates_for_self_ty pass `visible_from_module` ↵cynecx2021-03-201-1/+6
| | | | | | | | down to `iterate_inherent_methods`
| * hir_ty: fix visibility in infer_inherent_method testcynecx2021-03-201-16/+16
| |
| * hir_ty: introduce visible_from_module param into method resolutioncynecx2021-03-204-4/+40
| |
| * hir_ty: check field visibility while iterating through autoderef candidatescynecx2021-03-201-14/+36
| |
| * hir_ty: add field_visibilities and fn_visibility queriescynecx2021-03-202-4/+33
| |
| * hir_ty: add tests around autoderef with visibility checkingcynecx2021-03-201-0/+119
| |
| * hir_ty: fix tests by making required methods publiccynecx2021-03-202-4/+4
| |
* | Merge #8190bors[bot]2021-03-244-18/+42
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8190: Fix chalk_ir assertion r=flodiebold a=flodiebold Fixes #8150. I implemented a validator that catches this in the tests, but it'd need to get merged in Chalk first. Co-authored-by: Florian Diebold <[email protected]>
| * | Fix chalk_ir assertionFlorian Diebold2021-03-244-18/+42
| | | | | | | | | | | | Fixes #8150.
* | | Document unlinked-file diagnosticJonas Schievink2021-03-241-0/+4
|/ /
* | Sweep the new TraitEnvironmentQueryJonas Schievink2021-03-241-0/+1
| |
* | refine comment style of testshi-rustin2021-03-242-48/+48
| |
* | Merge #8168bors[bot]2021-03-241-7/+70
|\ \ | | | | | | | | | | | | | | | | | | | | | 8168: correct `convert to guard return` let_stmt r=Veykril a=hi-rustin close https://github.com/rust-analyzer/rust-analyzer/issues/8074 Co-authored-by: hi-rustin <[email protected]>
| * | correct `convert to guard return` let_stmthi-rustin2021-03-241-7/+70
| | | | | | | | | | | | | | | | | | | | | | | | fix fix add check
* | | Merge #8183bors[bot]2021-03-241-8/+38
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8183: Fix missing command error with macros r=Veykril a=brandondong **Reproduction:** 1. Define a struct through a macro (can be via `macro_rules`, proc macro, or `include!()`). 2. !!MISSING: command!! annotation appears. Clicking on it results in an error message. No matter where the macro is called/defined, the annotation is always at the start of the file. ![image](https://user-images.githubusercontent.com/13722457/112268785-bce14500-8c34-11eb-9a23-bafd63ffd6ef.png) **Cause:** - For struct `A`, a `HasImpls` annotation is added just like for struct `B`. Unlike `B`, the file id for `A` is not the file we are adding annotations to but a macro file. - The resolving step of the code lens does not succeed. **Fix:** - Check that the files match before computing offsets and adding `HasImpls`/`HasReferences` annotations. Co-authored-by: Brandon <[email protected]>
| * | | Clean up implementationBrandon2021-03-242-14/+8
| | | |
| * | | Fix MISSING: command error with macrosBrandon2021-03-242-8/+44
| | | |
* | | | Merge #8177bors[bot]2021-03-241-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8177: Limit the hints size by default r=Veykril a=SomeoneToIgnore Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8175 Fixes https://github.com/rust-analyzer/rust-analyzer/issues/3138 Co-authored-by: Kirill Bulatov <[email protected]>
| * | | | Bump the default hint lengthKirill Bulatov2021-03-231-1/+1
| | | | |
| * | | | Limit the hints size by defaultKirill Bulatov2021-03-231-2/+2
| | | | |
* | | | | Trim down IPC json sizeEdwin Cheng2021-03-241-4/+26
| |/ / / |/| | |
* | | | Merge #8159bors[bot]2021-03-234-15/+38
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8159: Ignore proc-macro stdout to prevent IPC crash r=edwin0cheng a=edwin0cheng fixes #7954 r? @flodiebold Co-authored-by: Edwin Cheng <[email protected]>
| * | | | Improve message usage in proc-macroEdwin Cheng2021-03-233-9/+17
| | | | | | | | | | | | | | | | | | | | Reuse storage for the buffer send to child process of proc-macro.