]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoMerge #9646
bors[bot] [Tue, 20 Jul 2021 14:09:24 +0000 (14:09 +0000)]
Merge #9646

9646: add 'use' prefix for any auto-import r=Veykril a=mahdi-frms

Fixes #9643

looks like there was an if condition that had to be removed.

Co-authored-by: mahdi-frms <mahdif1380@outlook.com>
2 years agoadd 'use' prefix for any auto-import
mahdi-frms [Tue, 20 Jul 2021 14:01:35 +0000 (18:31 +0430)]
add 'use' prefix for any auto-import

2 years agoMerge #9644
bors[bot] [Tue, 20 Jul 2021 13:31:11 +0000 (13:31 +0000)]
Merge #9644

9644: internal: add simple smoke test for project model r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agointernal: add simple smoke test for project model
Aleksey Kladov [Tue, 20 Jul 2021 12:38:20 +0000 (15:38 +0300)]
internal: add simple smoke test for project model

Our project model code is rather complicated -- the logic for lowering
from `cargo metadata` to `CrateGraph` is fiddly and special-case. So
far, we survived without testing this at all, but this increasingly
seems like a poor option.

So this PR introduces a simple tests just to detect the most obvious
failures. The idea here is that, although we rely on external processes
(cargo & rustc), we are actually using their stable interfaces, so we
might just mock out the outputs.

Long term, I would like to try to virtualize IO here, so as to do such
mocking in a more principled way, but lets start simple.

Should we forgo the mocking and just call `cargo metadata` directly
perhaps? Touch question -- I personally feel that fast, in-process tests
are more important in this case than any extra assurance we get from
running the real thing.

Super-long term, we would probably want to extend our heavy tests to
cover more use-cases, but we should figure a way to do that without
slowing the tests down for everyone.

Perhaps we need two-tiered bors system, where we pull from `master` into
`release` branch only when an additional set of tests passes?

2 years agoMerge #9645
bors[bot] [Tue, 20 Jul 2021 12:58:31 +0000 (12:58 +0000)]
Merge #9645

9645: internal: easier to skim CI logs r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agointernal: easier to skim CI logs
Aleksey Kladov [Tue, 20 Jul 2021 12:55:44 +0000 (15:55 +0300)]
internal: easier to skim CI logs

2 years agoMerge #9642
bors[bot] [Tue, 20 Jul 2021 11:33:34 +0000 (11:33 +0000)]
Merge #9642

9642: minor: publish la_arena r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agominor: publish la_arena
Aleksey Kladov [Tue, 20 Jul 2021 11:33:08 +0000 (14:33 +0300)]
minor: publish la_arena

2 years agoMerge #9641
bors[bot] [Tue, 20 Jul 2021 09:57:12 +0000 (09:57 +0000)]
Merge #9641

9641: docs: publish Explaining Rust Analyzer series r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agodocs: publish Explaining Rust Analyzer series
Aleksey Kladov [Mon, 19 Jul 2021 20:40:20 +0000 (23:40 +0300)]
docs: publish Explaining Rust Analyzer series

2 years agoMerge #9638
bors[bot] [Mon, 19 Jul 2021 18:22:30 +0000 (18:22 +0000)]
Merge #9638

9638: internal: replace some unwraps with types r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agominor: simplify
Aleksey Kladov [Mon, 19 Jul 2021 18:21:41 +0000 (21:21 +0300)]
minor: simplify

2 years agointernal: use types to remove some unwraps
Aleksey Kladov [Mon, 19 Jul 2021 18:20:10 +0000 (21:20 +0300)]
internal: use types to remove some unwraps

2 years agominor: typo
Aleksey Kladov [Mon, 19 Jul 2021 16:18:39 +0000 (19:18 +0300)]
minor: typo

2 years agoMerge #9625
bors[bot] [Mon, 19 Jul 2021 15:28:36 +0000 (15:28 +0000)]
Merge #9625

9625: internal: simplify handling of the build scripts r=matklad a=matklad

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agoMerge #9635
bors[bot] [Mon, 19 Jul 2021 15:18:01 +0000 (15:18 +0000)]
Merge #9635

9635: internal: explain why we avoid serializing everything r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agointernal: explain why we avoid serializing everything
Aleksey Kladov [Mon, 19 Jul 2021 14:47:56 +0000 (17:47 +0300)]
internal: explain why we avoid serializing everything

2 years agoMerge #9631
bors[bot] [Mon, 19 Jul 2021 13:39:28 +0000 (13:39 +0000)]
Merge #9631

9631: Added some metadata for rust-analyzer package sufficient to build a package using `cargo deb` r=matklad a=KOLANICH

Co-authored-by: KOLANICH <kolan_n@mail.ru>
2 years agoremove debug prints
Aleksey Kladov [Mon, 19 Jul 2021 13:35:29 +0000 (16:35 +0300)]
remove debug prints

2 years agofix tests
Aleksey Kladov [Mon, 19 Jul 2021 13:24:45 +0000 (16:24 +0300)]
fix tests

2 years agoAdded some metadata for rust-analyser package sufficient to build it using `cargo...
KOLANICH [Mon, 19 Jul 2021 12:39:49 +0000 (15:39 +0300)]
Added some metadata for rust-analyser package sufficient to build it using `cargo deb`

Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2 years agoMerge #9633
bors[bot] [Mon, 19 Jul 2021 13:00:57 +0000 (13:00 +0000)]
Merge #9633

9633: internal: Add `TreeId` to identify `ItemTree`s r=jonas-schievink a=jonas-schievink

With per-block `ItemTree`s, the file ID will not be enough to identify an `ItemTree`.

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2 years agoAdd `TreeId` to identify `ItemTree`s
Jonas Schievink [Mon, 19 Jul 2021 12:53:18 +0000 (14:53 +0200)]
Add `TreeId` to identify `ItemTree`s

With per-block `ItemTree`s, the file ID is not enough to identify an
`ItemTree`.

2 years agoMerge #9627
bors[bot] [Mon, 19 Jul 2021 02:54:09 +0000 (02:54 +0000)]
Merge #9627

9627: fix: Typo in architecture.md r=lnicola a=alexfertel

Co-authored-by: Alexander Gonzalez <alexfertel97@gmail.com>
2 years agofix: Typo in architecture.md
Alexander Gonzalez [Mon, 19 Jul 2021 02:17:45 +0000 (22:17 -0400)]
fix: Typo in architecture.md

2 years agofix: potential bugs when build scripts do not match the current project
Aleksey Kladov [Sun, 18 Jul 2021 10:13:03 +0000 (13:13 +0300)]
fix: potential bugs when build scripts do not match the current project

2 years agoMerge #9619
bors[bot] [Sun, 18 Jul 2021 09:10:56 +0000 (09:10 +0000)]
Merge #9619

9619: Support GATs for associated type arg parsing r=Veykril a=Veykril

Fixes #9602

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2 years agoSupport GATs for associated type arg parsing
Lukas Wirth [Sat, 17 Jul 2021 11:47:53 +0000 (13:47 +0200)]
Support GATs for associated type arg parsing

2 years agointernal: simplify handling of the build scripts
Aleksey Kladov [Sun, 18 Jul 2021 08:29:22 +0000 (11:29 +0300)]
internal: simplify handling of the build scripts

2 years agoMerge #9624
bors[bot] [Sun, 18 Jul 2021 07:26:05 +0000 (07:26 +0000)]
Merge #9624

9624: minor: Fix `AbsPath::ends_with` r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2 years agoFix AbsPath::ends_with
Laurențiu Nicola [Sun, 18 Jul 2021 07:25:14 +0000 (10:25 +0300)]
Fix AbsPath::ends_with

2 years agoMerge #9623
bors[bot] [Sat, 17 Jul 2021 21:16:43 +0000 (21:16 +0000)]
Merge #9623

9623: internal: make it clearer where IO happens r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agointernal: make it clearer where IO happens
Aleksey Kladov [Sat, 17 Jul 2021 20:43:54 +0000 (23:43 +0300)]
internal: make it clearer where IO happens

2 years agoMerge #9622
bors[bot] [Sat, 17 Jul 2021 19:41:42 +0000 (19:41 +0000)]
Merge #9622

9622: feat: improve parser error recovery for function parameters r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agofeat: improve parser error recovery for function parameters
Aleksey Kladov [Sat, 17 Jul 2021 19:41:04 +0000 (22:41 +0300)]
feat: improve parser error recovery for function parameters

2 years agoMerge #9620
bors[bot] [Sat, 17 Jul 2021 15:14:02 +0000 (15:14 +0000)]
Merge #9620

9620: internal: don't depend on cwd r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2 years agointernal: a bit more of cwd safety for flycheck
Aleksey Kladov [Sat, 17 Jul 2021 14:40:13 +0000 (17:40 +0300)]
internal: a bit more of cwd safety for flycheck

2 years agoMerge #9621
bors[bot] [Sat, 17 Jul 2021 15:04:55 +0000 (15:04 +0000)]
Merge #9621

9621: Remove outdated "(not yet released)" hint r=lnicola a=cakebaker

Neovim 0.5 has been released recently (see http://neovim.io/news/2021/07), hence the "(not yet released)" hint is no longer needed.

Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2 years agoRemove outdated "(not yet released)" hint
Daniel Hofstetter [Sat, 17 Jul 2021 14:56:26 +0000 (16:56 +0200)]
Remove outdated "(not yet released)" hint

Neovim 0.5 has been released recently (see http://neovim.io/news/2021/07), hence the "(not yet released)" hint is no longer needed.

2 years agointernal: make sure that proc macro machinery doesn't depend on cwd
Aleksey Kladov [Sat, 17 Jul 2021 13:54:48 +0000 (16:54 +0300)]
internal: make sure that proc macro machinery doesn't depend on cwd

2 years agointernal: make it easier to isolate IO
Aleksey Kladov [Sat, 17 Jul 2021 13:43:33 +0000 (16:43 +0300)]
internal: make it easier to isolate IO

3 years agoMerge #9614
bors[bot] [Fri, 16 Jul 2021 13:48:23 +0000 (13:48 +0000)]
Merge #9614

9614: Parse input expressions for dbg! invocations in remove_dbg r=Veykril a=Veykril

Instead of inspecting the input tokentree manually, parse the input as `,` delimited expressions instead and act on that. This simplifies the assist quite a bit.

Fixes #8455

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoCleanup tests
Lukas Wirth [Fri, 16 Jul 2021 13:46:29 +0000 (15:46 +0200)]
Cleanup tests

3 years agoParse input expressions in for dbg! in remove_dbg
Lukas Wirth [Fri, 16 Jul 2021 13:20:50 +0000 (15:20 +0200)]
Parse input expressions in for dbg! in remove_dbg

3 years agoMerge #9611
bors[bot] [Thu, 15 Jul 2021 21:42:47 +0000 (21:42 +0000)]
Merge #9611

9611: minor: Explicitly connect an ambiguous import path case logic with its test r=SomeoneToIgnore a=SomeoneToIgnore

Follows up https://github.com/rust-analyzer/rust-analyzer/pull/8820/

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
3 years agoExplicitly connect an ambiguous import path case logic with the test on it
Kirill Bulatov [Thu, 15 Jul 2021 21:41:00 +0000 (00:41 +0300)]
Explicitly connect an ambiguous import path case logic with the test on it

3 years agoMerge #9608
bors[bot] [Thu, 15 Jul 2021 20:24:22 +0000 (20:24 +0000)]
Merge #9608

9608: minor: Add regression test fo #7222 r=Veykril a=Veykril

Closes #7222
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoAdd regression test fo #7222
Lukas Wirth [Thu, 15 Jul 2021 20:23:34 +0000 (22:23 +0200)]
Add regression test fo #7222

3 years agoMerge #9607
bors[bot] [Thu, 15 Jul 2021 19:29:28 +0000 (19:29 +0000)]
Merge #9607

9607: minor: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoSimplify
Lukas Wirth [Thu, 15 Jul 2021 19:28:30 +0000 (21:28 +0200)]
Simplify

3 years agoMerge #9605
bors[bot] [Thu, 15 Jul 2021 15:54:55 +0000 (15:54 +0000)]
Merge #9605

9605: internal: Folding ranges respect item visibilities r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoFolding ranges respect item visibilities
Lukas Wirth [Thu, 15 Jul 2021 15:44:23 +0000 (17:44 +0200)]
Folding ranges respect item visibilities

3 years agoAdd nested region folding test
Lukas Wirth [Thu, 15 Jul 2021 15:02:45 +0000 (17:02 +0200)]
Add nested region folding test

3 years agoMerge #9604
bors[bot] [Thu, 15 Jul 2021 14:36:22 +0000 (14:36 +0000)]
Merge #9604

9604: fix: Don't fold consecutive modules with item lists r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoDon't fold consecutive modules with item lists
Lukas Wirth [Thu, 15 Jul 2021 14:35:31 +0000 (16:35 +0200)]
Don't fold consecutive modules with item lists

3 years agoMerge #9603
bors[bot] [Thu, 15 Jul 2021 14:27:57 +0000 (14:27 +0000)]
Merge #9603

9603: internal: Move attribute completion tests r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoMove attribute completion tests
Lukas Wirth [Thu, 15 Jul 2021 14:27:01 +0000 (16:27 +0200)]
Move attribute completion tests

3 years agoMerge #9600
bors[bot] [Thu, 15 Jul 2021 00:45:55 +0000 (00:45 +0000)]
Merge #9600

9600: fix: Single-line and nested blocks in the `unwrap_block` assist r=Veykril a=patrick-gu

Fixes #8411

Rework the system for stripping whitespace and braces in the unwrap_block assist to allow correct unwrapping of blocks such as:
```rust
{ $0 0 }
```
into
```rust
0
```

and nested blocks, such as:
```rust
$0{
    {
        3
    }
}
```
into
```rust
{
    3
}
```

This is done by creating the `update_expr_string_with_pat` function (along with `update_expr_string` and `update_expr_string_without_newline`), which strips whitespace and braces in a way that ensures that only whitespace and a maximum of one brace are removed from the start and end of the expression string.

I have also created several tests to ensure that this functionality works correctly.

Co-authored-by: patrick-gu <55641350+patrick-gu@users.noreply.github.com>
3 years agoMerge #9595
bors[bot] [Thu, 15 Jul 2021 00:20:44 +0000 (00:20 +0000)]
Merge #9595

9595: Show test mod runnable in outline modules r=Veykril a=Veykril

This shows a runnable inside outline test modules at the top of its file:
![image](https://user-images.githubusercontent.com/3757771/125494747-169c9238-3faa-4eed-9700-90bd730b4e3c.png)

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agofix: Single-line and nested blocks in unwrap_block
patrick-gu [Wed, 14 Jul 2021 19:00:48 +0000 (12:00 -0700)]
fix: Single-line and nested blocks in unwrap_block

Rework the system for stripping whitespace and braces in the
unwrap_block assist to allow correct unwrapping of `{$0 { 0 } }`

3 years agoMerge #9599
bors[bot] [Wed, 14 Jul 2021 16:29:25 +0000 (16:29 +0000)]
Merge #9599

9599: Complete true and false keywords r=Veykril a=fabledpig

Closes #9521.

Co-authored-by: Levente Gyozo Lenart <leviiibog@gmail.com>
3 years agoUpdate tests
Levente Gyozo Lenart [Wed, 14 Jul 2021 16:16:18 +0000 (18:16 +0200)]
Update tests

3 years agoAdd true and false as completion suggestions when expecting an expression
Levente Gyozo Lenart [Wed, 14 Jul 2021 16:15:00 +0000 (18:15 +0200)]
Add true and false as completion suggestions when expecting an expression

3 years agoShow test mod runnable in outline modules
Lukas Wirth [Tue, 13 Jul 2021 16:55:06 +0000 (18:55 +0200)]
Show test mod runnable in outline modules

3 years agoMerge #9597
bors[bot] [Tue, 13 Jul 2021 23:43:01 +0000 (23:43 +0000)]
Merge #9597

9597: Use Type::walk for goto_type_definition r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoUse Type::walk for goto_type_definition
Lukas Wirth [Tue, 13 Jul 2021 23:42:30 +0000 (01:42 +0200)]
Use Type::walk for goto_type_definition

3 years agoMerge #9596
bors[bot] [Tue, 13 Jul 2021 17:25:00 +0000 (17:25 +0000)]
Merge #9596

9596: Return type arguments in goto_type_definition result  r=Veykril a=Veykril

Fixes #9586
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoReturn type arguments in goto_type_definition result
Lukas Wirth [Tue, 13 Jul 2021 17:22:44 +0000 (19:22 +0200)]
Return type arguments in goto_type_definition result

3 years agoMerge #9594
bors[bot] [Tue, 13 Jul 2021 16:57:19 +0000 (16:57 +0000)]
Merge #9594

9594: Assign mutable semantic token modifier to assignment operators r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9578

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoAssign mutable semantic token modifier to assignment operators
Lukas Wirth [Tue, 13 Jul 2021 16:32:02 +0000 (18:32 +0200)]
Assign mutable semantic token modifier to assignment operators

3 years agoMerge #9592
bors[bot] [Tue, 13 Jul 2021 16:30:52 +0000 (16:30 +0000)]
Merge #9592

9592: internal: Split main highlighting function up into a few subfunctions  r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoSplit main highlighting function up into a few subfunctions
Lukas Wirth [Tue, 13 Jul 2021 16:21:20 +0000 (18:21 +0200)]
Split main highlighting function up into a few subfunctions

3 years agoMerge #9588
bors[bot] [Tue, 13 Jul 2021 12:02:52 +0000 (12:02 +0000)]
Merge #9588

9588: minor: make sure that project_root works correctly r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
3 years agominor: make sure that project_root works correctly
Aleksey Kladov [Tue, 13 Jul 2021 12:02:29 +0000 (15:02 +0300)]
minor: make sure that project_root works correctly

3 years agoMerge #9585
bors[bot] [Tue, 13 Jul 2021 10:43:01 +0000 (10:43 +0000)]
Merge #9585

9585: Rename the old server before update r=matklad a=lnicola

Kinda' fixes #6602

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
3 years agoMerge #9550
bors[bot] [Tue, 13 Jul 2021 10:35:20 +0000 (10:35 +0000)]
Merge #9550

9550: Proc macro multi abi proof of concept r=matklad a=alexjg

#8925 was irritating me so I thought I would have a bash at fixing it. What I've done here is copy the `crates/proc_macro_srv/src/proc_macro` code (which is copied from `<RUST>/library/proc_macro`) to `crates/proc_macro_srv/src/proc_macro_nightly` and the modified the nightly version to include the changes from https://github.com/rust-analyzer/rust-analyzer/pull/9047 and https://github.com/yotamofek/rust-analyzer/commit/aeb7b183a2302af968f1110fb3cbd00c76a34974

This gives us the code to support both stable and nightly ABIs. Then we use the `proc_macro_api::version::read_dylib_info` to determine which version of the ABI to load when creating a `ProcMacroLibraryLibLoading` (which is now an enum).

This seems to work for me.  The code could be cleaned up but I wanted to see if the approach makes sense before I spend more time on it.

I've split the change into two commits, the first is just copying and modifying the `proc_macro` crate, the second contains most of the interesting work around figuring out which ABI to use.

Co-authored-by: Alex Good <alex@memoryandthought.me>
Co-authored-by: alexjg <alex@memoryandthought.me>
3 years agoRename the old server before update
Laurențiu Nicola [Mon, 12 Jul 2021 19:09:01 +0000 (22:09 +0300)]
Rename the old server before update

3 years agoMerge #9583
bors[bot] [Mon, 12 Jul 2021 18:15:45 +0000 (18:15 +0000)]
Merge #9583

9583: internal: get rid of a call to slow O(N) visibility_of function r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
3 years agointernal: get rid of a call to slow O(N) visibility_of function
Aleksey Kladov [Mon, 12 Jul 2021 18:13:43 +0000 (21:13 +0300)]
internal: get rid of a call to slow O(N) visibility_of function

Instead of inferring module's declared visibility by looking at the
scope of its parent, let's just remeber the declared visibility in the
DefMap.

3 years agoMerge #9582
bors[bot] [Mon, 12 Jul 2021 17:18:43 +0000 (17:18 +0000)]
Merge #9582

9582: internal: remove erroneous default impl r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
3 years agointernal: remove erroneous default impl
Aleksey Kladov [Mon, 12 Jul 2021 17:14:58 +0000 (20:14 +0300)]
internal: remove erroneous default impl

3 years agointernal: remove deprecated fn
Aleksey Kladov [Mon, 12 Jul 2021 17:04:41 +0000 (20:04 +0300)]
internal: remove deprecated fn

3 years agointernal: perpare to remove ModuleData::default
Aleksey Kladov [Mon, 12 Jul 2021 17:02:56 +0000 (20:02 +0300)]
internal: perpare to remove ModuleData::default

3 years agointernal: remove erroneous Default impl for ModuleOrigin
Aleksey Kladov [Mon, 12 Jul 2021 17:00:17 +0000 (20:00 +0300)]
internal: remove erroneous Default impl for ModuleOrigin

In rust-analyzer, we avoid defualt impls for types which don't have
sensible, "empty" defaults. In particular, we avoid using invalid
indices for defaults and similar hacks.

3 years agoIntroduce proc_macro_srv::abis, impl 1.47 and 1.55
Alex Good [Mon, 12 Jul 2021 14:47:47 +0000 (15:47 +0100)]
Introduce proc_macro_srv::abis, impl 1.47 and 1.55

Rather than a "Stable" and "Nightly" ABI we instead name ABIs based on
the version of the rust compiler in which they were introduced. We place
these ABIs in a new module - `proc_macro_srv::abis` - where we also add
some mchinery to abstract over ABIs. This should make it easy to add new
ABIs at a later date as the rust compiler evolves.

3 years agocheck rustc major version == 1 not < 1
alexjg [Sat, 10 Jul 2021 16:07:12 +0000 (17:07 +0100)]
check rustc major version == 1 not < 1

Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
3 years agoUse rustc version of dylib to choose which proc macro ABI to use
Alex Good [Sat, 10 Jul 2021 14:12:41 +0000 (15:12 +0100)]
Use rustc version of dylib to choose which proc macro ABI to use

3 years agocopy proc_maco to proc_macro_nightly and modify for nightly ABI compatibility
Alex Good [Sat, 10 Jul 2021 14:11:17 +0000 (15:11 +0100)]
copy proc_maco to proc_macro_nightly and modify for nightly ABI compatibility

3 years agoMerge #9179
bors[bot] [Mon, 12 Jul 2021 14:45:48 +0000 (14:45 +0000)]
Merge #9179

9179: Update npm deps r=matklad a=lnicola

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
3 years agoMerge #9579
bors[bot] [Mon, 12 Jul 2021 13:37:12 +0000 (13:37 +0000)]
Merge #9579

9579: fix: Set more `CARGO_` env vars r=jonas-schievink a=jonas-schievink

Set `CARGO_CRATE_NAME` to the package name, with `-` replaced by `_`. This is wrong, but better than not setting the variable at all.

Also set `CARGO_PKG_HOMEPAGE` since it's easy.

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
3 years agoSet more `CARGO_` env vars
Jonas Schievink [Mon, 12 Jul 2021 13:34:49 +0000 (15:34 +0200)]
Set more `CARGO_` env vars

3 years agoMerge #9535
bors[bot] [Mon, 12 Jul 2021 13:23:26 +0000 (13:23 +0000)]
Merge #9535

9535: internal: remove proc macro management thread r=jonas-schievink a=jonas-schievink

Communication with the proc macro server process has always happened one request at a time, so the additional thread isn't really needed (it just forwarded each request, and sent back the response). This removes some indirection that was a bit hard to understand (a channel was allocated and sent over another channel to return the response).

Hope I'm not missing anything here

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
3 years agoAddress review comments
Jonas Schievink [Mon, 12 Jul 2021 13:19:53 +0000 (15:19 +0200)]
Address review comments

3 years agoMerge #9569
bors[bot] [Sun, 11 Jul 2021 14:28:08 +0000 (14:28 +0000)]
Merge #9569

9569: internal: Explicitly check for reference locals or fields in Name classification r=Veykril a=Veykril

Closes #7524
Inlines all the calls to reference related name classification as well as emits both goto definition targets for field shorthands.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
3 years agoMerge #9572
bors[bot] [Sun, 11 Jul 2021 14:19:25 +0000 (14:19 +0000)]
Merge #9572

9572: fix: Work around older synstructure derives r=lnicola a=flodiebold

Fixes #9562, until the proper fix rust-lang/chalk#717 works which requires mystor/synstructure#47 to be released.

Also add an unrelated test, for #9560.

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
3 years agoReturn both field and local references for shorthands in goto_def
Lukas Wirth [Sun, 11 Jul 2021 14:16:16 +0000 (16:16 +0200)]
Return both field and local references for shorthands in goto_def

3 years agoAdd test for #9560
Florian Diebold [Sun, 11 Jul 2021 14:14:22 +0000 (16:14 +0200)]
Add test for #9560

3 years agoAdd workaround for #9562
Florian Diebold [Sun, 11 Jul 2021 11:22:11 +0000 (13:22 +0200)]
Add workaround for #9562

This treats the consts generated by older synstructure versions like
unnamed consts. We should remove this at some point (at least after
Chalk has switched).

3 years agoInline name classification reference calls
Lukas Wirth [Sun, 11 Jul 2021 13:39:09 +0000 (15:39 +0200)]
Inline name classification reference calls

3 years agoExplicitly check for reference locals or fields in Name classification
Lukas Wirth [Sun, 11 Jul 2021 12:03:35 +0000 (14:03 +0200)]
Explicitly check for reference locals or fields in Name classification