Vadim Petrochenkov
b3ee735993
resolve: Remove struct_field_names_untracked
2023-03-13 17:31:55 +04:00
Vadim Petrochenkov
2a716f3563
resolve: Centralize retrieval of items span and item name
2023-03-13 17:31:54 +04:00
Vadim Petrochenkov
c7f424b80a
resolve: Remove fn_has_self_parameter_untracked
2023-03-13 17:31:54 +04:00
Vadim Petrochenkov
c05b7bd7d0
resolve: Remove struct_field_visibilities_untracked
2023-03-13 17:31:54 +04:00
Maybe Waffle
775bacd1b8
Simplify sort_by
calls
2023-03-07 18:13:41 +00:00
bors
0d439f8181
Auto merge of #108351 - petrochenkov:rmdit, r=cjgillot
...
rustc_middle: Remove trait `DefIdTree`
This trait was a way to generalize over both `TyCtxt` and `Resolver`, but now `Resolver` has access to `TyCtxt`, so this trait is no longer necessary.
2023-03-05 10:37:02 +00:00
est31
6df5ae4fb0
Match unmatched backticks in comments in compiler/
2023-03-03 08:39:00 +01:00
Vadim Petrochenkov
c83553da31
rustc_middle: Remove trait DefIdTree
...
This trait was a way to generalize over both `TyCtxt` and `Resolver`, but now `Resolver` has access to `TyCtxt`, so this trait is no longer necessary.
2023-03-02 23:46:44 +04:00
bors
2deff71719
Auto merge of #105462 - oli-obk:feeding_full, r=cjgillot,petrochenkov
...
give the resolver access to TyCtxt
The resolver is now created after TyCtxt is created. Then macro expansion and name resolution are run and the results fed into queries just like before this PR.
Since the resolver had (before this PR) mutable access to the `CStore` and the source span table, these two datastructures are now behind a `RwLock`. To ensure that these are not mutated anymore after the resolver is done, a read lock to them is leaked right after the resolver finishes.
### PRs split out of this one and leading up to it:
* https://github.com/rust-lang/rust/pull/105423
* https://github.com/rust-lang/rust/pull/105357
* https://github.com/rust-lang/rust/pull/105603
* https://github.com/rust-lang/rust/pull/106776
* https://github.com/rust-lang/rust/pull/106810
* https://github.com/rust-lang/rust/pull/106812
* https://github.com/rust-lang/rust/pull/108032
2023-02-21 01:19:25 +00:00
Oli Scherer
e8e227aec8
Prepare crate loader for LockGuard
2023-02-20 10:49:42 +00:00
Oli Scherer
d191de63f0
Prepare for adding a TyCtxt
to Resolver
2023-02-20 10:38:48 +00:00
Jacob Pratt
378c4ab9ab
Make public API, docs algorithm-agnostic
2023-02-19 04:11:10 +00:00
Maybe Waffle
8751fa1a9a
if $c:expr { Some($r:expr) } else { None }
=>> $c.then(|| $r)
2023-02-16 15:26:00 +00:00
Oli Scherer
43a5cc383d
Separate the lifetime of the session and the arena in the resolver
2023-02-14 10:01:25 +00:00
Vadim Petrochenkov
9080b79f2b
rustdoc: Eliminate remaining uses of resolver
2023-02-13 00:10:15 +04:00
Matthias Krüger
a3637032db
unused-lifetimes: don't warn about lifetimes originating from expanded code
...
previously, we would warn like this:
````
warning: lifetime parameter `'s` never used
--> /tmp/unusedlif/code.rs:6:62
|
5 | #[derive(Clone)]
| - help: elide the unused lifetime
6 | struct ShimMethod4<T: Trait2 + 'static>(pub &'static dyn for<'s> Fn(&'s mut T::As));
| ^^
|
= note: requested on the command line with `-W unused-lifetimes`
````
Fixes #104432
2023-02-03 21:18:34 +01:00
Maybe Waffle
9fe8ae792e
Rename rust_2015
=> is_rust_2015
2023-02-02 08:17:13 +00:00
Andy Russell
8b12d5f42f
suggest qualifying bare associated constants
2023-01-25 08:58:27 -05:00
Takayuki Maeda
fe96c11aba
fix #104440
2023-01-16 21:06:34 +09:00
Michael Goulet
bf0623e363
Don't suggest dyn as parameter to add
2023-01-12 22:04:30 +00:00
Esteban Küber
41e66d9025
review comments: Tweak output
...
* Account for `struct S(pub(super)Ty);` in suggestion
* Suggest changing field visibility in E0603 too
2023-01-11 21:36:02 +00:00
Esteban Küber
eb835093a3
review comment
2023-01-11 21:35:42 +00:00
Esteban Küber
ad13d9fbbe
Suggest making private tuple struct field public
...
Fix #52144 .
2023-01-11 21:35:42 +00:00
Nilstrieb
9067e4417e
Rename Rptr
to Ref
in AST and HIR
...
The name makes a lot more sense, and `ty::TyKind` calls it `Ref` already
as well.
2022-12-28 18:52:36 +01:00
Matthias Krüger
3af7df91fc
use &str / String literals instead of format!()
2022-12-18 16:17:46 +01:00
Matthias Krüger
6dbaf86672
Rollup merge of #104864 - chenyukang:yukang/fix-104700-binding, r=estebank
...
Account for item-local in inner scope for E0425
Fixes #104700
2022-12-13 01:17:08 +01:00
Oli Scherer
2cd36f2c89
Generate crate loaders on the fly
2022-12-09 14:53:23 +00:00
Rageking8
c95dceb63a
clean up pr 104954
2022-11-29 10:41:21 +08:00
Vincenzo Palazzo
ee6f18ef59
make simple check of prinf function.
...
With this commit we start to make some simple
check when the name resolution fails, and
we generate some helper message in case the
name is a C name like in the case of the `printf`
and suggest the correct rust method.
Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
2022-11-27 11:50:02 +01:00
yukang
68ea51602a
fix the crossing function issue
2022-11-25 15:25:04 +08:00
yukang
7cd4b673d0
fix #104700 , account for item-local in inner scope for E0425
2022-11-25 13:19:21 +08:00
Vadim Petrochenkov
5fc359f1ef
resolve: Don't use constructor def ids in the map for field names
...
Also do some minor cleanup to insertion of those field names
2022-11-23 00:53:50 +03:00
Vadim Petrochenkov
7a5376d23c
Unreserve braced enum variants in value namespace
2022-11-21 22:40:06 +03:00
Nicholas Nethercote
67d5cc0462
Use ThinVec
in ast::Path
.
2022-11-17 13:56:38 +11:00
Nicholas Nethercote
6b7ca2fcf2
Box ExprKind::{Closure,MethodCall}
, and QSelf
in expressions, types, and patterns.
2022-11-17 13:45:59 +11:00
Dylan DPC
fcbe990093
Rollup merge of #103970 - oli-obk:unhide_unknown_spans, r=estebank
...
Unhide unknown spans
r? ```@estebank```
2022-11-12 12:02:51 +05:30
Manish Goregaokar
f00897e2f4
Rollup merge of #103531 - chenyukang:yukang/fix-103474, r=estebank
...
Suggest calling the instance method of the same name when method not found
Fixes #103474
2022-11-11 12:12:30 -05:00
Oli Scherer
df2adc4760
Print all labels, even if they have no span. Fall back to main item's span.
2022-11-11 14:45:28 +00:00
Manish Goregaokar
819c9315c3
Rollup merge of #104186 - chenyukang:yukang/fix-104086-let-binding-issue, r=oli-obk
...
Tighten the 'introduce new binding' suggestion
Fixes #104086
2022-11-10 10:47:40 -05:00
Michael Goulet
e807cb3c41
Make span_suggestions take IntoIterator
2022-11-09 19:42:23 +00:00
Michael Goulet
fbce7decd8
DiagnosticBuilder -> Diagnostic
2022-11-09 19:42:23 +00:00
yukang
c69872bb6c
add 'is_assign_rhs' to avoid weird suggesting 'let'
2022-11-10 00:43:12 +08:00
yukang
5689f9c679
fix tests and code cleanup
2022-11-09 17:10:33 +08:00
yukang
952df48948
Fix #104086 , Tighten the 'introduce new binding' suggestion
2022-11-09 16:46:13 +08:00
Deadbeef
b1994ce806
Do not make typo suggestions when suggesting pattern matching
...
Fixes #103909 .
2022-11-05 15:33:25 +00:00
Dylan DPC
3143472863
Rollup merge of #103560 - zbyrn:issue-103358-fix, r=cjgillot
...
Point only to the identifiers in the typo suggestions of shadowed names instead of the entire struct
Fixes #103358 .
As discussed in the issue, the `Span` of the candidate `Ident` for a typo replacement is stored alongside its `Symbol` in `TypoSuggestion`. Then, the span of the identifier is what the "you might have meant to refer to" note is pointed at, rather than the entire struct definition.
Comments in #103111 and the issue both suggest that it is desirable to:
1. include names defined in the same crate as the typo,
2. ignore names defined elsewhere such as in `std`, _and_
3. include names introduced indirectly via `use`.
Since a name from another crate but introduced via `use` has non-local `def_id`, to achieve this, a suggestion is displayed if either the `def_id` of the suggested name is local, or the `span` of the suggested name is in the same file as the typo itself.
Some UI tests have also been modified to reflect this change.
r? `@cjgillot`
2022-10-30 11:50:26 +05:30
Takayuki Maeda
a3a3f4d840
avoid unnecessary &str
to String
conversions
2022-10-29 17:14:44 +09:00
Byron Zhong
775328c290
Modify check to output 'you might have meant' for indirect reference
2022-10-25 22:08:41 -05:00
Byron Zhong
0b936d2da7
Add check to only output 'you might have meant' when the candidate name is in the same crate
2022-10-25 22:08:41 -05:00
Byron Zhong
be61f0237b
Add Span in TypoSuggestion and TypoCandidate
2022-10-25 22:08:41 -05:00