aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #5766bors[bot]2020-08-161-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5766: Hacky support for fn-like proc macros r=matklad a=jonas-schievink It turns out that this is all that's needed to get something like this working: ```rust #[proc_macro] pub fn function_like_macro(_args: TokenStream) -> TokenStream { TokenStream::from_str("fn fn_success() {}").unwrap() } ``` ```rust function_like_macro!(); fn f() { fn_success(); } ``` The drawback is that it also makes this work, because there is no distinction between different proc macro kinds in the rest of r-a: ```rust #[derive(function_like_macro)] struct S {} fn f() { fn_success(); } ``` Another issue is that it seems to panic, and then panic, when using this on the rustc code base, due to some issue in the inscrutable proc macro bridge code. Co-authored-by: Jonas Schievink <[email protected]>
| * Hacky support for fn-like proc macrosJonas Schievink2020-08-151-3/+3
| |
* | Chalk 0.23Jeremy Kolb2020-08-162-5/+5
| |
* | Bump rustc_lexerJeremy Kolb2020-08-161-1/+1
| |
* | Fix typo in commentDave Lage2020-08-151-1/+1
| |
* | Don't expose hir::Path out of hirAleksey Kladov2020-08-159-92/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conjecture: it's impossible to use hir::Path *correctly* from an IDE. I am not entirely sure about this, and we might need to add it back at some point, but I have to arguments that convince me that we probably won't: * `hir::Path` has to know about hygiene, which an IDE can't set up properly. * `hir::Path` lacks identity, but you actually have to know identity to resolve it correctly
* | Remove deprecated Path::from_astAleksey Kladov2020-08-152-25/+13
|/ | | | Long term, we probably should make hir::Path private to hir.
* Add a proc_macro_test crateJonas Schievink2020-08-145-3/+46
| | | | This exports all 3 kinds of proc macros and is useful for testing
* Merge #5347bors[bot]2020-08-142-14/+30
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5347: Chalk writer integration r=flodiebold a=detrumi ~~This adds a `rust-analyzer dump-chalk` command, similar to analysis-stats, which writes out the whole chalk progam (see [chalk#365](https://github.com/rust-lang/chalk/issues/365) for more info about the .chalk writer)~~ Write out chalk programs in debug output if chalk debugging is active (using `CHALK_DEBUG`). Example output: ``` [DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [] }, universes: 1 }) => None [INFO ra_hir_ty::traits] trait_solve_query(Implements(fn min<?0.0>(?0.0, ?0.0) -> ?0.0: Deref)) [DEBUG ra_hir_ty::traits] solve goal: UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 } [DEBUG ra_hir_ty::traits::chalk] impls_for_trait Deref [DEBUG ra_hir_ty::traits::chalk] impls_for_trait returned 0 impls [DEBUG ra_hir_ty::traits::chalk] trait_datum Ord [DEBUG ra_hir_ty::traits::chalk] trait Ord = Name(Text("Ord")) [DEBUG ra_hir_ty::traits] chalk program: #[upstream] #[non_enumerable] #[object_safe] trait Ord {} #[upstream] #[non_enumerable] #[object_safe] #[lang(sized)] trait Sized {} fn fn_0<_1_0>(arg_0: _1_0, arg_1: _1_0) -> _1_0 where _1_0: Ord; #[upstream] #[non_enumerable] #[object_safe] trait Deref { type Assoc_1829: Sized; } [DEBUG ra_hir_ty::traits] solve(UCanonical { canonical: Canonical { value: InEnvironment { environment: Env([]), goal: Implemented(SeparatorTraitRef(?)) }, binders: [U0 with kind type] }, universes: 1 }) => None [INFO ra_hir_ty::traits] trait_solve_query(Implements(?0.0: Ord)) ``` Co-authored-by: Wilco Kusee <[email protected]>
| * Only print chalk programs with CHALK_PRINTWilco Kusee2020-08-141-10/+15
| |
| * Lookup adt namesWilco Kusee2020-08-141-1/+2
| |
| * Only use logging db if CHALK_DEBUG is activeWilco Kusee2020-08-141-12/+15
| |
| * Print chalk programs in debug outputWilco Kusee2020-08-142-12/+19
| |
* | Rename hypothetical -> speculativeAleksey Kladov2020-08-143-8/+7
| |
* | Sophisticate Windows path encodingArmin Sander2020-08-141-7/+132
|/
* Make hygiene private to hirAleksey Kladov2020-08-134-16/+39
|
* Merge #5753bors[bot]2020-08-133-59/+65
|\ | | | | | | | | | | | | | | | | | | 5753: Remove Hygiene from completion r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Remove Hygiene from completionAleksey Kladov2020-08-133-59/+65
| |
* | display correctly 'impl Trait<T> + Trait<T>' #4814Benjamin Coenen2020-08-132-0/+20
|/ | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Better recovery in `use foo::;`Aleksey Kladov2020-08-132-7/+17
|
* MinorAleksey Kladov2020-08-131-6/+12
|
* Align parser names with grammarAleksey Kladov2020-08-1317-223/+124
|
* Rename ra_ide -> ideAleksey Kladov2020-08-1390-70/+67
|
* Rename ra_assists -> assistsAleksey Kladov2020-08-1354-14/+13
|
* Rename ra_ssr -> ssrAleksey Kladov2020-08-1317-94/+79
|
* Rename ra_ide_db -> ide_dbAleksey Kladov2020-08-1358-76/+70
|
* Rename ra_hir -> hirAleksey Kladov2020-08-1316-13/+12
|
* Rename ra_hir_ty -> hir_tyAleksey Kladov2020-08-1338-16/+13
|
* Rename ra_hir_def -> hir_defAleksey Kladov2020-08-1350-21/+21
|
* Rename ra_hir_expand -> hir_expandAleksey Kladov2020-08-1317-10/+9
|
* Rename ra_db -> base_dbAleksey Kladov2020-08-13108-153/+153
|
* Merge #5746bors[bot]2020-08-133-15/+114
|\ | | | | | | | | | | | | | | 5746: Structured search replace now handles UFCS calls to trait methods r=matklad a=davidlattimore Co-authored-by: David Lattimore <[email protected]>
| * Structured search replace now handles UFCS calls to trait methodsDavid Lattimore2020-08-133-15/+114
| |
* | Rename ra_proc_macro -> proc_macro_apiAleksey Kladov2020-08-1312-11/+12
| |
* | Merge #5732bors[bot]2020-08-131-8/+14
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 5732: Consider only IdentPats for param name hints r=matklad a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/4960 Avoid displaying any param name hints like <img width="590" alt="image" src="https://user-images.githubusercontent.com/2690773/90071461-47a4ad80-dcfe-11ea-9330-fb4f4e2d1b71.png"> Those hints seem to occupy plenty of space for no apparent benefit, with their destructured content not used in the code with the function hints. I'm not entirely sure if we should show something else than `IdentPat`s, since I don't understand some of the `Pat` variant meanings: https://github.com/rust-analyzer/rust-analyzer/blob/a1c187eef3ba08076aedb5154929f7eda8d1b424/crates/syntax/src/ast/generated/nodes.rs#L1336-L1352 Co-authored-by: Kirill Bulatov <[email protected]>
| * Consider only IdentPats for param name hintsKirill Bulatov2020-08-121-8/+14
| |
* | Merge #5744bors[bot]2020-08-1316-22/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | 5744: Rename ra_project_model -> project_model r=matklad a=pksunkara Co-authored-by: Pavan Kumar Sunkara <[email protected]>
| * | Rename ra_project_model -> project_modelPavan Kumar Sunkara2020-08-1316-22/+19
| | |
* | | Remove ra_fmt crateAleksey Kladov2020-08-137-59/+29
| | |
* | | MinorAleksey Kladov2020-08-131-4/+5
|/ /
* | MinorAleksey Kladov2020-08-132-28/+25
| |
* | MinorAleksey Kladov2020-08-135-44/+46
| |
* | Remove deprecated functionAleksey Kladov2020-08-134-54/+48
| |
* | Cleanup **Move Guard** assistAleksey Kladov2020-08-133-117/+112
| |
* | fmtAleksey Kladov2020-08-136-6/+6
| |
* | Rename ra_cfg -> cfgAleksey Kladov2020-08-1321-24/+24
| |
* | SimplifyAleksey Kladov2020-08-131-8/+6
| |
* | Minimize depsAleksey Kladov2020-08-132-2/+2
| |
* | Rename ra_mbe -> mbeAleksey Kladov2020-08-1317-14/+15
| |
* | MinorAleksey Kladov2020-08-131-3/+5
| |