Commit Graph

13919 Commits

Author SHA1 Message Date
bors
1fb9603022 Auto merge of #98020 - TaKO8Ki:use-create-snapshot-for-diagnostic-in-rustc-expand, r=Dylan-DPC
Use `create_snapshot_for_diagnostic` instead of `clone` for `Parser`

Use [`create_snapshot_for_diagnostic`](cd11905716/compiler/rustc_parse/src/parser/diagnostics.rs (L214-L223)) I implemented in https://github.com/rust-lang/rust/pull/94731 instead of `clone` to avoid duplicate unclosed delims errors being emitted when the `Parser` is dropped. I missed this one in #95068.
2022-06-12 23:25:35 +00:00
bors
546c826f0c Auto merge of #98018 - scottmcm:miri-yeet, r=RalfJung
Try out `yeet` in the MIR interpreter

Since we got a new bootstrap, we can give this a shot.

r? `@oli-obk`
2022-06-12 20:44:58 +00:00
bors
4153a2ec45 Auto merge of #97833 - tmiasko:borrowed-locals, r=nagisa
Remove duplicated implementations of borrowed locals analysis
2022-06-12 17:56:54 +00:00
Dylan DPC
53090fefd1
Rollup merge of #98012 - compiler-errors:poly-trait-refs-are-traits, r=cjgillot
`ValuePairs::PolyTraitRefs` should be called "trait"s in type error diagnostics

Pretty simple, we already do this for `ValuePairs::TraitRefs`...
2022-06-12 12:14:30 +02:00
Dylan DPC
265e0f0d4b
Rollup merge of #97991 - davidkna:fix-macos-strip, r=joshtriplett
Use safer `strip=symbols`-flag for dylibs on macOS

Closes #93988

To safely strip dylibs on macOS, the `-x` flag is needed per the manpage (see the discussion here: https://github.com/rust-lang/rust/issues/93988#issuecomment-1042574854).

Thus, when the current `crate_type` is producing a dylib (I assume this is the case for proc macros) use the `-x` flag instead of bare `strip` for `strip=symbols`.
2022-06-12 12:14:28 +02:00
Takayuki Maeda
84a13a28b7 use create_snapshot_for_diagnostic instead of clone 2022-06-12 17:27:36 +09:00
Scott McMurray
a6c6fa0e33 Try out yeet in the MIR interpreter 2022-06-11 23:08:06 -07:00
Tomasz Miąsko
777bf84f6c Merge arms in borrowed locals transfer function 2022-06-12 07:27:57 +02:00
Tomasz Miąsko
915f091819 Remove duplicated implementations of borrowed locals analysis 2022-06-12 07:27:57 +02:00
bors
37a42258ff Auto merge of #97778 - compiler-errors:misc-diagnostics-tidy, r=cjgillot
Tidy up miscellaneous bounds suggestions

Just some small fixes to suggestions

- Generalizes `Ty::is_suggestable` into a `TypeVisitor`, so that it can be called on things other than `Ty`
- Makes `impl Trait` in arg position no longer suggestible (generalizing the fix in #97640)
- Fixes `impl Trait` not being replaced with fresh type param when it's deeply nested in function signature (fixes #97760)
- Fixes some poor handling of `where` clauses with no predicates (also #97760)
- Uses `InferCtxt::resolve_numeric_literals_with_default` so we suggest `i32` instead of `{integer}` (fixes #97677)

Sorry there aren't many tests the fixes. Most of them would just be duplicates of other tests with empty `where` clauses or `impl Trait` in arg position instead of generic params. Let me know if you'd want more test coverage.
2022-06-12 00:47:54 +00:00
Michael Goulet
5f7474e6dc Address comments 2022-06-11 16:38:48 -07:00
Michael Goulet
38d7e2734f Properly replace impl Trait in fn args, turn {integer} to i32 2022-06-11 16:38:48 -07:00
Michael Goulet
55805ab473 Make is_suggestable work on all TypeFoldable 2022-06-11 16:38:48 -07:00
Michael Goulet
9c47afe9fa Handle empty where-clause better 2022-06-11 16:27:01 -07:00
Michael Goulet
8506b7d4e0 Make Ty::is_suggestable use a visitor 2022-06-11 16:27:01 -07:00
Michael Goulet
acab4464f6 ValuePairs::PolyTraitRefs should be called 'trait' 2022-06-11 16:25:35 -07:00
bors
e652caa679 Auto merge of #97705 - compiler-errors:guide-inference, r=lcnr
Fix inference issues with unconstrained base expr in `type_changing_struct_update`

Use fresh infer vars to guide inference along in `type_changing_struct_update`.

Fixes #96878
2022-06-11 22:32:20 +00:00
bors
99930ac7f8 Auto merge of #95880 - cjgillot:def-ident-span, r=petrochenkov
Handle `def_ident_span` like `def_span`.

`def_ident_span` had an ad-hoc status in the compiler.

This PR refactors it to be a first-class citizen like `def_span`:
- it gets encoded in the main metadata loop, instead of the visitor;
- its implementation is updated to mirror the one of `def_span`.

We do not remove the `Option` in the return type, since some items do not have an ident, AnonConsts for instance.
2022-06-11 20:08:48 +00:00
bors
c08b235a5c Auto merge of #97996 - matthiaskrgr:rollup-bvbjlid, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #97904 (Small grammar fix in the compile_error documentation)
 - #97943 (line 1352, change `self` to `*self`, other to `*other`)
 - #97969 (Make -Cpasses= only apply to pre-link optimization)
 - #97990 (Add more eslint checks)
 - #97994 (feat(fix): update some links in `hir.rs`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-11 17:49:22 +00:00
Michael Goulet
50529111f0 Stop using string equality to check if ADT is a union 2022-06-11 10:35:36 -07:00
Michael Goulet
d9ddaf0d6f Use if-let instead of match with guard 2022-06-11 10:24:56 -07:00
Michael Goulet
6c00e54667 Guide inference along during type_changing_struct_update 2022-06-11 09:30:37 -07:00
Matthias Krüger
178cffe563
Rollup merge of #97994 - kyoto7250:fix_hir_link, r=cjgillot
feat(fix): update some links in `hir.rs`

This PR fixes some links in `hir.rs`.

The relative paths seem to be different from when this comment was committed.

ref:

- related commit
1e6adad33f

- current page
https://doc.rust-lang.org/beta/nightly-rustc/rustc_hir/hir/enum.QPath.html
https://doc.rust-lang.org/beta/nightly-rustc/rustc_hir/hir/enum.ExprKind.html#variant.MethodCall

Thank you in advance.
2022-06-11 18:05:36 +02:00
Matthias Krüger
b3d8e71cf1
Rollup merge of #97969 - inglorion:prelinkpasses, r=nikic
Make -Cpasses= only apply to pre-link optimization

This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713
2022-06-11 18:05:34 +02:00
bors
85a26a9a96 Auto merge of #97989 - Dylan-DPC:rollup-wol1a1y, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #97761 (validating the vtable can lead to Stacked Borrows errors)
 - #97789 (Fix #71363's test by adding `-Z translate-remapped-path-to-local-path=no`)
 - #97913 (Wrap `HirId`s of locals into `LocalVarId`s for THIR nodes)
 - #97979 (Fix typos in Provider API docs)
 - #97987 (remove an unnecessary `String`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-11 15:08:41 +00:00
kyoto7250
3685a1e9d2 feat(fix): update some links 2022-06-11 23:19:58 +09:00
David Knaack
8558b35295 Use safer strip=symbols-flag for dylibs on macOS 2022-06-11 13:20:17 +02:00
Dylan DPC
b3c9a2fde4
Rollup merge of #97987 - TaKO8Ki:remove-unnecessary-format-macro, r=Dylan-DPC
remove an unnecessary `String`
2022-06-11 12:59:30 +02:00
Dylan DPC
825d28057e
Rollup merge of #97913 - dingxiangfei2009:wrap-into-local-var-id, r=nikomatsakis
Wrap `HirId`s of locals into `LocalVarId`s for THIR nodes

This is the first effort to decouple `HirId`s from THIR. `HirId` is not very relevant in building THIR and MIR.

Based on the changeset, I think there are a few other pending refactoring that we could perform after this, in case we want to eliminate use of `HirId` in THIR.
- `TypeckResults::closure_min_captures` could be remapped from the variable `HirId`s to `LocalVarId` while the THIR is getting built.
- Use of `ScopeTree::var_scope` could be eliminated as well, since we will consider deprecating `ScopeTree` in the future.
2022-06-11 12:59:28 +02:00
Dylan DPC
b7b5045364
Rollup merge of #97789 - ferrocene:pa-fix-issue-71363-test, r=cjgillot
Fix #71363's test by adding `-Z translate-remapped-path-to-local-path=no`

The test relies on `library/std/src/error.rs` not corresponding to a local path, but remapping might still find the related local file of a remapped path. To fix the test, this PR adds a new `-Z` flag to disable finding the corresponding local path of a remapped path.
2022-06-11 12:59:27 +02:00
Dylan DPC
11d8ae2c71
Rollup merge of #97761 - RalfJung:vtable-validation, r=cjgillot
validating the vtable can lead to Stacked Borrows errors

Fixes https://github.com/rust-lang/miri/issues/2123
2022-06-11 12:59:26 +02:00
Takayuki Maeda
f9a924d3c9 remove an unnecessary format macro 2022-06-11 18:35:10 +09:00
bors
fa68e73e99 Auto merge of #97903 - est31:unused_macro_rules_compile_error, r=petrochenkov
Never regard macro rules with compile_error! invocations as unused

The very point of compile_error! is to never be reached, and one of
the use cases of the macro, currently also listed as examples in the
documentation of compile_error, is to create nicer errors for wrong
macro invocations. Thus, we should never warn about unused macro arms
that contain invocations of compile_error.

See also https://github.com/rust-lang/rust/pull/96150#issuecomment-1126599107 and the discussion after that.

Furthermore, the PR also contains two commits to silence `unused_macro_rules` when a macro has an invalid rule, and to add a test that `unused_macros` does not behave badly in the same situation.

r? `@petrochenkov` as I've talked to them about this
2022-06-11 08:46:21 +00:00
bors
7092d42c04 Auto merge of #97980 - Dylan-DPC:rollup-l8exe4b, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #96868 (Stabilize explicit_generic_args_with_impl_trait)
 - #97703 (some additional `need_type_info.rs` cleanup)
 - #97812 (Suggest to swap a struct and a trait in trait impls)
 - #97958 (ExitStatus docs fixups)
 - #97967 (Mention `infer::Trace` methods on `infer::At` methods' docs)
 - #97972 (Update #[doc(html_playground_url)] documentation to mention what the request will be)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-11 06:17:54 +00:00
Dylan DPC
dfbedf5692
Rollup merge of #97967 - BoxyUwU:at_docs_mention_trace, r=compiler-errors
Mention `infer::Trace` methods on `infer::At` methods' docs

I missed that you could do `infcx.at(...).trace(...).eq(a, b)` when `a` and `b` dont implement `ToTrace` but does implement `Relate` these docs would have helped see that 😅
2022-06-11 07:42:16 +02:00
Dylan DPC
640019ba6e
Rollup merge of #97812 - TaKO8Ki:suggest-to-swap-struct-and-trait, r=estebank
Suggest to swap a struct and a trait in trait impls

closes #89590
2022-06-11 07:42:14 +02:00
Dylan DPC
59c2ff532d
Rollup merge of #97703 - lcnr:post-89862, r=estebank
some additional `need_type_info.rs` cleanup

also fixes #97698, fixes #97806

cc `@estebank`
2022-06-11 07:42:13 +02:00
Dylan DPC
f1f44b9e4d
Rollup merge of #96868 - nrc:turbo-stable, r=jhpratt,nbdd0121,nagisa
Stabilize explicit_generic_args_with_impl_trait

This is a stabilisation PR for `explicit_generic_args_with_impl_trait`.

* [tracking issue](https://github.com/rust-lang/rust/issues/83701)
  - [Stabilisation report](https://github.com/rust-lang/rust/issues/83701#issuecomment-1109949897)
  - [FCP entered](https://github.com/rust-lang/rust/issues/83701#issuecomment-1120285703)
* [implementation PR](https://github.com/rust-lang/rust/pull/86176)
* [Reference PR](https://github.com/rust-lang/reference/pull/1212)
* There is no mention of using the turbofish operator in the book (other than an entry in the operator list in the appendix), so there is no documentation to change/add there, unless we felt like we should add a section on using turbofish, but that seems orthogonal to `explicit_generic_args_with_impl_trait`
2022-06-11 07:42:12 +02:00
bors
c84594661c Auto merge of #97905 - nnethercote:revert-infallible-encoder, r=bjorn3
Revert part of #94372 to improve performance

#94732 was supposed to give small but widespread performance improvements, as judged from three per-merge performance runs. But the performance run that occurred after merging included a roughly equal number of improvements and regressions, for unclear reasons.

This PR is for a test run reverting those changes, to see what happens.

r? `@ghost`
2022-06-11 04:00:23 +00:00
bors
75307c22f3 Auto merge of #97648 - lcnr:bound-var-replacer, r=jackh726
cleanup bound variable handling

each commit should be pretty self-contained and hopefully straightforward to review.

I've added 677ec23a8dbf8ff5f1c03ccebd46f8b85e5ec1fc so that we can stop returning the region map from `replace_bound_vars_with_fresh_vars` in the following commit.

r? `@nikomatsakis` or `@jackh726`
2022-06-11 01:39:43 +00:00
Ellen
9f1d3702a4 the day that i make a PR without a tidy error.. 2022-06-10 21:47:00 +01:00
Bob Haarman
6738434de3 Make -Cpasses= only apply to pre-link optimization
This change causes passes specified in -Cpasses= to be applied
only during pre-link optimization, not during LTO. This avoids
such passes running multiple times, which they may not be
designed for.

Fixes https://github.com/rust-lang/rust/issues/97713
2022-06-10 13:35:11 -07:00
Matthias Krüger
4ea862f953
Rollup merge of #97941 - CorinJG:error_naming_conventions, r=compiler-errors
nit: Fixed several error_codes/Exxxx.md messages which used UpperCamelCase…

… instead of snake_case for module names
2022-06-10 22:32:32 +02:00
Matthias Krüger
35ba4dc031
Rollup merge of #97928 - hoodmane:emscripten-no-assertions, r=tlively
Removes debug settings from wasm32_unknown_emscripten default link args

This is a debug setting. We should only make debug builds if user requests
a debug build. Currently this is inserted in release builds.

Furthermore, it would be better to insert these settings in --pre-link-args
because then it would be possible to override them if appropriate. Because
these are inserted at the end, it is necessary to patch emscripten to remove
them.

``@sbc100``
2022-06-10 22:32:30 +02:00
Matthias Krüger
07771137eb
Rollup merge of #93331 - pnkfelix:refactor-write-output-file, r=oli-obk
refactor write_output_file to merge two invocation paths into one.

this is a trivial refactor I did while I was investigating issue #91671.
2022-06-10 22:32:29 +02:00
Ellen
5d91e9e941 a 2022-06-10 21:26:53 +01:00
Camille GILLOT
1a881a487b Introduce opt_ident. 2022-06-10 20:16:45 +02:00
Camille GILLOT
64b6c32b21 Assert def_ident_span presence. 2022-06-10 20:16:37 +02:00
Camille GILLOT
871993f7a1 Encode def_ident_span using the query. 2022-06-10 20:16:32 +02:00
Camille GILLOT
df59705301 Call def_span inside span_if_local. 2022-06-10 20:15:17 +02:00