Matthias Krüger
5201bb53bb
remove redundant clones
2023-02-10 18:08:25 +01:00
Boxy
fa83c10e96
implement compute_alias_eq_goal
2023-02-10 14:56:28 +00:00
Boxy
1f89e2aef2
emit AliasEq when relating type and const aliases
2023-02-10 14:33:13 +00:00
Matthias Krüger
1e106c1cf8
Rollup merge of #107882 - workingjubilee:fix-en-borrowck-ftl-typos, r=compiler-errors
...
Cleanup typos in en_US/borrowck.ftl
Noticed these while opening https://github.com/rust-lang/rust/pull/107881 .
2023-02-10 15:28:50 +01:00
Matthias Krüger
d8e4d99001
Rollup merge of #107839 - RalfJung:rustc-log, r=oli-obk
...
avoid duplicating the RUSTC_LOG env var name
We also have the env var name here:
c40919b7a7/compiler/rustc_driver_impl/src/lib.rs (L1247-L1251)
Redundantly having this name twice doesn't seem great. Looks like `rustc_log::init_rustc_env_logger` is dead code anyway.
r? `@oli-obk`
2023-02-10 15:28:48 +01:00
Matthias Krüger
d494cd3eab
Rollup merge of #107836 - chenyukang:yukang/fix-107822, r=oli-obk
...
Handle properly when there is no crate attrs
Fixes #107822
r? `@oli-obk`
2023-02-10 15:28:47 +01:00
Matthias Krüger
dc7559b599
Rollup merge of #107789 - jieyouxu:issue-107745, r=lcnr
...
Avoid exposing type parameters and implementation details sourced from macro expansions
Fixes #107745 .
~~I would like to **request some guidance** for this issue, because I don't think this is a good fix (a band-aid at best).~~
### The Problem
The code
```rust
fn main() {
println!("{:?}", []);
}
```
gets desugared into (`rustc +nightly --edition=2018 issue-107745.rs -Z unpretty=hir`):
```rust
#[prelude_import]
use std::prelude::rust_2018::*;
#[macro_use]
extern crate std;
fn main() {
{
::std::io::_print(<#[lang = "format_arguments"]>::new_v1(&["",
"\n"], &[<#[lang = "format_argument"]>::new_debug(&[])]));
};
}
```
so the diagnostics code tries to be as specific and helpful as possible, and I think it finds that `[]` needs a type parameter and so does `new_debug`. But since `[]` doesn't have an origin for the type parameter definition, it points to `new_debug` instead and leaks the internal implementation detail since all `[]` has is an type inference variable.
### ~~The Bad Fix~~
~~This PR currently tries to fix the problem by bypassing the generated function `<#[lang = "format_argument"]>::new_debug` to avoid its generic parameter (I think it is auto-generated from the argument `[_; 0]`?) from getting collected as an `InsertableGenericArg`. This is problematic because it also prevents the help from getting displayed.~~
~~I think this fix is not ideal and hard-codes the format generated code pattern, but I can't think of a better fix. I have tried asking on Zulip but no responses there yet.~~
2023-02-10 15:28:47 +01:00
lcnr
3a72238aa6
revert #107074
2023-02-10 15:24:39 +01:00
Ralf Jung
623ed8e481
fix rustc_log doctest
2023-02-10 15:07:55 +01:00
Boxy
23ab2464be
add AliasEq to PredicateKind
2023-02-10 13:44:46 +00:00
Jubilee
1f76cea515
Cleanup typos in en_US/borrowck.ftl
2023-02-10 02:22:08 -08:00
bors
d1ac43a9b9
Auto merge of #107652 - estebank:re_error, r=oli-obk
...
Introduce `ReError`
CC #69314
r? `@nagisa`
2023-02-10 10:10:12 +00:00
Daniil Belov
601fc8b36b
[link] enable packed bundled lib in non stable cases
2023-02-10 12:51:12 +03:00
yukang
257389882d
add test for no input file
2023-02-10 08:02:56 +00:00
bors
9b8dbd558c
Auto merge of #107870 - matthiaskrgr:rollup-3z1q4rm, r=matthiaskrgr
...
Rollup of 6 pull requests
Successful merges:
- #107043 (Support `true` and `false` as boolean flag params)
- #107831 (Query refactoring)
- #107841 (Handled snap curl issue inside Rust)
- #107852 (rustdoc: remove unused fn parameter `tab`)
- #107861 (Sync release notes for 1.67.1)
- #107863 (Allow multiple candidates with same response in new solver)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-02-10 06:20:01 +00:00
Vadim Petrochenkov
da4ce6b41e
Skip doc link resolution for some crate types and non-exported items
2023-02-10 09:35:14 +04:00
Vadim Petrochenkov
3b0866272a
Stop resolving doc links on mod items twice
2023-02-10 09:34:13 +04:00
Vadim Petrochenkov
b62b82aef4
Resolve documentation links in rustc and store the results in metadata
...
This commit implements MCP https://github.com/rust-lang/compiler-team/issues/584
It also removes code that is no longer used, and that includes code cloning resolver, so issue #83761 is fixed.
2023-02-10 09:34:13 +04:00
Matthias Krüger
9300617dab
Rollup merge of #107863 - compiler-errors:new-solver-multiple-candidates, r=jackh726
...
Allow multiple candidates with same response in new solver
Treat >1 candidates as *not* ambiguous if they return the same response.
2023-02-10 06:09:59 +01:00
Matthias Krüger
11e128025a
Rollup merge of #107831 - nnethercote:query-refactoring, r=oli-obk
...
Query refactoring
Just some cleanups I found when learning about the query system.
Best reviewed one commit at a time.
r? `@oli-obk`
2023-02-10 06:09:57 +01:00
Matthias Krüger
8fc9ed51f0
Rollup merge of #107043 - Nilstrieb:true-and-false-is-false, r=wesleywiser
...
Support `true` and `false` as boolean flag params
Implements [MCP 577](https://github.com/rust-lang/compiler-team/issues/577 ).
2023-02-10 06:09:56 +01:00
bors
a697573463
Auto merge of #101680 - jackh726:implied-cleanup, r=lcnr
...
Fix implied outlives bounds logic for projections
The logic here is subtly wrong. I put a bit of an explanation in a767d7b5165cea8ee5cbe494a4a636c50ef67c9c.
TL;DR: we register outlives predicates to be proved, because wf code normalizes projections (from the unnormalized types) to type variables. This causes us to register those as constraints instead of implied. This was "fine", because we later added that implied bound in the normalized type, and delayed registering constraints. When I went to cleanup `free_region_relations` to *not* delay adding constraints, this bug was uncovered.
cc. `@aliemjay` because this caused your test failure in #99832 (I only realized as I was writing this)
r? `@nikomatsakis`
2023-02-10 03:21:39 +00:00
Jack Huey
0637b6b471
Update implied_outlives_bounds to properly register implied bounds behind normalization
2023-02-09 21:08:11 -05:00
Jack Huey
1a663c0f53
Cleanup free_region_relations a bit
2023-02-09 20:38:27 -05:00
Michael Goulet
3c4e1f85cb
Multiple candidates with same response is not ambiguous
2023-02-10 00:35:25 +00:00
bors
a12d31d5a6
Auto merge of #102963 - ilammy:xray-basic, r=estebank
...
Add `-Z instrument-xray` flag
Implement MCP https://github.com/rust-lang/compiler-team/issues/561 , adding `-Z instrument-xray` flag which enables XRay instrumentation in LLVM.
2023-02-10 00:02:43 +00:00
Dylan DPC
b080a1a4fc
Rollup merge of #107815 - compiler-errors:new-solver-no-auto-if-impl, r=lcnr
...
Disqualify `auto trait` built-in impl in new solver if explicit `impl` exists
2023-02-09 23:18:37 +05:30
Dylan DPC
16a4138387
Rollup merge of #107803 - eggyal:do_not_bring_trait_alias_supertraits_into_scope, r=compiler-errors
...
Do not bring trait alias supertraits into scope
Fixes #107747
cc #41517
2023-02-09 23:18:36 +05:30
Dylan DPC
39ba11036a
Rollup merge of #107786 - compiler-errors:new-solver-some-tweaks, r=lcnr
...
Implement some tweaks in the new solver
I've been testing the new solver on some small codebases, and these are a few small changes I've needed to make.
The most "controversial" here is implementing `trait_candidate_should_be_dropped_in_favor_of`, which I just implemented to always return false. This surprisingly allows some code to compile, without us having to actually decide on any semantics yet.
r? `@rust-lang/initiative-trait-system-refactor`
2023-02-09 23:18:35 +05:30
Dylan DPC
5aa062e249
Rollup merge of #107659 - bvanjoi:issue-107649, r=estebank
...
test: snapshot for derive suggestion in diff files
fixed #107649
2023-02-09 23:18:35 +05:30
Dylan DPC
be1789a56d
Rollup merge of #107648 - matthiaskrgr:unused_lifetime_104432_fix, r=cjgillot
...
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-09 23:18:34 +05:30
Camille GILLOT
221ea3080d
Put deaggregated statements after original constant.
2023-02-09 17:27:31 +00:00
Michael Goulet
68e27b3052
Disqualify auto-trait builtin impl in new solver if impl exists
2023-02-09 17:23:50 +00:00
Michael Goulet
654f43f34e
Move winnowing to assembly
2023-02-09 17:22:39 +00:00
Michael Goulet
8987e68247
Implement a dummy drop-in-favor-of for the new solver
2023-02-09 17:22:37 +00:00
Michael Goulet
8c67ecd124
Use elaborated item bounds for alias types
2023-02-09 17:16:47 +00:00
Michael Goulet
8dadd54f52
Fix subst issue with object_ty_for_trait
2023-02-09 17:16:47 +00:00
Esteban Küber
a576514e13
Introduce -Zterminal-urls to use OSC8 for error codes
...
Terminals supporting the OSC8 Hyperlink Extension can support inline
anchors where the text is user defineable but clicking on it opens a
browser to a specified URLs, just like `<a href="URL">` does in HTML.
https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
2023-02-09 14:52:54 +00:00
bohan
7615045ebd
test: snapshot for derive suggestion in diff files
2023-02-09 22:28:53 +08:00
bors
8cca42a47f
Auto merge of #107843 - bjorn3:sync_cg_clif-2023-02-09, r=bjorn3
...
Sync rustc_codegen_cranelift
* Couple of bugfixes
* A significant runtime perf improvement
* Implemented sym and const support for inline asm
* Improved self profile integration
r? `@ghost`
`@rustbot` label +A-codegen +A-cranelift +T-compiler
2023-02-09 14:12:59 +00:00
bjorn3
e25566e20b
Merge commit '7d53619064ab7045c383644cb445052d2a3d46db' into sync_cg_clif-2023-02-09
2023-02-09 12:38:16 +01:00
Esteban Küber
3689295a6b
Use ErrorGuaranteed more in ReError
2023-02-09 10:38:45 +00:00
Esteban Küber
3222725538
Fix RegionKind: PartialEq to account for ReError
2023-02-09 10:26:50 +00:00
Esteban Küber
ed8651c7b8
Use 'static RegionVid for ReError
2023-02-09 10:26:50 +00:00
Esteban Küber
861f451235
Change to ReError(ErrorGuaranteed)
2023-02-09 10:26:49 +00:00
Esteban Küber
ffaf2a5c27
review comments
2023-02-09 10:26:49 +00:00
Esteban Küber
30cf7a3f51
Introduce ReError
...
CC #69314
2023-02-09 10:26:49 +00:00
Matthias Krüger
f2a2e298ba
Rollup merge of #107835 - tshepang:fmt, r=WaffleLapkin
...
use idiomatic formatting
Also, remove needless `else`
2023-02-09 11:21:59 +01:00
Matthias Krüger
a621769881
Rollup merge of #107752 - riverar:rafael/gnu_dlltool_temp_prefix, r=petrochenkov
...
Specify dlltool prefix when generating import libs
Ref: https://github.com/rust-lang/rust/pull/106610#issuecomment-1418221274
tl;dr: This PR adds an explicit dlltool temporary filename prefix. The prefix resolves a race condition by ensuring dlltool temporary files are siloed in an appropriate/unique Rust temporary directory.
---
GNU dlltool, as part of its import library generation logic, uses a bunch of temporary files on disk. In the interest of deterministic build runs, dlltool supports deterministic temporary filenames. The temporary filename prefix is automatically generated internally or can be explicitly specified via a `--temp-prefix` argument.
GNU dlltool **2.38** (that ships with `x86_64-12.2.0-release-posix-seh-rt_v10-rev0` [installed during CI](https://github.com/rust-lang/rust/blob/master/src/ci/scripts/install-mingw.sh )) generates a prefix based on the target library name ([source](https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=binutils/dlltool.c;h=d95bf3f5470b999fa3b30bc887791859f48d81d1;hb=20756b0fbe065a84710aa38f2457563b57546440#l3992 )). The tool writes to files such as `target_dll_h.s` and `target_dll_s00203.o` in the current working directory.
This presents a problem when multiple instances of rustc_codegen_llvm are running to generate an import library (as part of the raw_dylib feature) for the same target library (e.g. kernel32) ([source](https://github.com/rust-lang/rust/blob/master/compiler/rustc_codegen_llvm/src/back/archive.rs#L185-L196 )). That is, dlltool instances race and may overwrite or delete files belonging to each other.
GNU dlltool **2.39**+ (not used in Rust CI) generates a prefix based on the output library path ([source](https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=binutils/dlltool.c;h=e2af20847009945b4c61a6fef08268fbb4429715;hb=b51c2fec1da205ea3e7354cbb3e253018d64873c#l3992 )). The tool, when invoked as part of rustc_codegen_llvm, writes to files at paths such as `C_Users_Foo_AppData_Local_Temp_rustcOFqhXZ_target_lib_h.s`. (The output library path is normalized and non-alphanumeric characters are replaced with underscores.)
2023-02-09 11:21:58 +01:00
Matthias Krüger
3b9543c89d
Rollup merge of #107446 - clubby789:rustc-parse-diag-migrate, r=compiler-errors
...
Migrate some of `rustc_parse` to derive diagnostics
`@rustbot` label +A-translation
r? rust-lang/diagnostics
cc #100717
2023-02-09 11:21:57 +01:00