Commit Graph

12215 Commits

Author SHA1 Message Date
Aleksey Kladov
6a4c9fc9fd Don't make fields private unless you have to 2020-08-17 16:11:29 +02:00
bors[bot]
0b2b9a5508
Merge #5766
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 <jonasschievink@gmail.com>
2020-08-16 20:03:06 +00:00
bors[bot]
6deb9087bb
Merge #5778
5778: Chalk 0.23 r=kjeremy a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-08-16 16:18:55 +00:00
Jeremy Kolb
409090e74c Chalk 0.23 2020-08-16 12:15:44 -04:00
bors[bot]
76bd27be89
Merge #5777
5777: Bump rustc_lexer r=kjeremy a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-08-16 16:01:52 +00:00
Jeremy Kolb
7819e794db Bump rustc_lexer 2020-08-16 11:57:10 -04:00
bors[bot]
728feea086
Merge #5775
5775: Bump chrono r=kjeremy a=kjeremy



Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-08-16 15:40:09 +00:00
Jeremy Kolb
9aca8d6647 Update chrono 2020-08-16 11:34:13 -04:00
bors[bot]
3b206ff756
Merge #5770
5770: Fix typo in comment r=kjeremy a=rockerBOO



Co-authored-by: Dave Lage <rockerboo@gmail.com>
2020-08-15 20:47:08 +00:00
Dave Lage
d31634940d
Fix typo in comment 2020-08-15 16:37:44 -04:00
bors[bot]
b5023e25e3
Merge #5769
5769: Don't expose hir::Path out of hir
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-15 16:53:15 +00:00
Aleksey Kladov
0ca1ba29e8 Don't expose hir::Path out of hir
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
2020-08-15 18:50:41 +02:00
bors[bot]
19c41a9152
Merge #5768
5768: Remove deprecated Path::from_ast
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-15 16:23:13 +00:00
Aleksey Kladov
2052d33b9b Remove deprecated Path::from_ast
Long term, we probably should make hir::Path private to hir.
2020-08-15 18:22:16 +02:00
Jonas Schievink
bee56e68a3 Hacky support for fn-like proc macros 2020-08-15 15:34:56 +02:00
bors[bot]
f0ad68b962
Merge #5762
5762: Add a proc_macro_test crate r=jonas-schievink a=jonas-schievink

This exports all 3 kinds of proc macros and is useful for testing.

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2020-08-14 22:29:04 +00:00
Jonas Schievink
cb816b1ea8 Add a proc_macro_test crate
This exports all 3 kinds of proc macros and is useful for testing
2020-08-15 00:27:32 +02:00
bors[bot]
c2594daf29
Merge #5347
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 <wilcokusee@gmail.com>
2020-08-14 17:02:55 +00:00
bors[bot]
f7abd16a8c
Merge #5760
5760: Document xtask has few deps invariant
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-14 15:30:53 +00:00
Aleksey Kladov
1d11c9c91a Document xtask has few deps invariant 2020-08-14 17:30:27 +02:00
bors[bot]
3b5947e1cd
Merge #5759
5759: Rename hypothetical -> speculative
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-14 13:23:58 +00:00
Aleksey Kladov
125744c057 Rename hypothetical -> speculative 2020-08-14 15:23:27 +02:00
Wilco Kusee
de282ddd86 Only print chalk programs with CHALK_PRINT 2020-08-14 14:52:07 +02:00
bors[bot]
1ec23e7d33
Merge #5757
5757: Document the most important CI invariant
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-14 10:27:38 +00:00
Aleksey Kladov
200161c734 Document the most important CI invariant 2020-08-14 12:27:15 +02:00
bors[bot]
674af600f1
Merge #5756
5756: Sophisticate Windows path encoding r=matklad a=pragmatrix

As discussed in #5475, path encoding should be agnostic of the drive letter casing on Windows.

Compared to the problem it solves, the code added seems a lot and may introduce other problems. But I've not found a simpler way basing this on the public API surface that Rust offers.

Fixes #5484.

cc @Emilgardis 

Co-authored-by: Armin Sander <armin@replicator.org>
2020-08-14 10:06:03 +00:00
Wilco Kusee
36052ce1a1 Lookup adt names 2020-08-14 11:43:11 +02:00
Wilco Kusee
10c33275b0 Only use logging db if CHALK_DEBUG is active 2020-08-14 11:43:10 +02:00
Wilco Kusee
58e338a729 Print chalk programs in debug output 2020-08-14 11:43:10 +02:00
Armin Sander
8fc254597f Sophisticate Windows path encoding 2020-08-14 02:03:54 +02:00
bors[bot]
f1f73649a6
Merge #5755
5755: Make hygiene private to hir r=davidlattimore a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 22:16:31 +00:00
Aleksey Kladov
9664c57e60 Make hygiene private to hir 2020-08-13 23:54:37 +02:00
bors[bot]
9930ef2536
Merge #5753
5753: Remove Hygiene from completion
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 20:42:36 +00:00
Aleksey Kladov
86f89d9b31 Remove Hygiene from completion 2020-08-13 22:41:55 +02:00
bors[bot]
e5b17b6ad4
Merge #5752
5752: display correctly 'impl Trait<T> + Trait<T>' #4814 r=flodiebold a=bnjjj

close #4814 

Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-08-13 20:28:11 +00:00
Benjamin Coenen
947a27b797 display correctly 'impl Trait<T> + Trait<T>' #4814
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-08-13 22:13:34 +02:00
bors[bot]
3d6fd620e8
Merge #5751
5751: Better recovery in `use foo::;`
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 16:50:50 +00:00
Aleksey Kladov
ef462ed6af Better recovery in use foo::; 2020-08-13 18:50:21 +02:00
Aleksey Kladov
0e1cda3079 Minor 2020-08-13 18:17:53 +02:00
bors[bot]
018a6cac07
Merge #5750
5750: Rename ra_ide -> ide
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 15:59:50 +00:00
Aleksey Kladov
6bc2633c90 Align parser names with grammar 2020-08-13 17:59:27 +02:00
Aleksey Kladov
1b0c7701cc Rename ra_ide -> ide 2020-08-13 17:58:27 +02:00
bors[bot]
00fb411f3e
Merge #5749
5749: Rename ra_assists -> assists
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 15:34:51 +00:00
Aleksey Kladov
fc34403018 Rename ra_assists -> assists 2020-08-13 17:33:38 +02:00
bors[bot]
d2212a49f6
Merge #5748
5748: Rename ra_ssr -> ssr
 r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 15:03:57 +00:00
Aleksey Kladov
ae3abd6e57 Rename ra_ssr -> ssr 2020-08-13 17:02:44 +02:00
Aleksey Kladov
bb5c189b7d Rename ra_ide_db -> ide_db 2020-08-13 16:39:16 +02:00
Aleksey Kladov
ae71a631fd Rename ra_hir -> hir 2020-08-13 16:36:55 +02:00
Aleksey Kladov
6a77ec7bbe Rename ra_hir_ty -> hir_ty 2020-08-13 16:35:29 +02:00
bors[bot]
e9926948ca
Merge #5747
5747: Rename crate r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-08-13 14:31:49 +00:00