Commit Graph

151844 Commits

Author SHA1 Message Date
Deadbeef
d8d4cc3b98
Treat trait fns marked with the attr as const 2021-07-10 20:54:48 +08:00
Deadbeef
3660a4e972
Applied suggestions 2021-07-10 20:54:47 +08:00
Deadbeef
2db927d8d8
Add #[default_method_body_is_const] 2021-07-10 20:54:44 +08:00
Ralf Jung
dbc2b55baf rename variable 2021-07-10 14:14:09 +02:00
Ralf Jung
f5094aa5d6 remove duplicate test 2021-07-10 13:48:53 +02:00
Ralf Jung
fb010c9004 bless missing tests 2021-07-10 13:03:35 +02:00
Nikita Popov
f29450a05d Use clang 12.0.1 on dist-x86_64/i686-linux
The LLD + ThinLTO __morestack bug has been fixed in 12.0.1, so
we can now update our clang version. This also means that we no
longer need to build Python 2.
2021-07-10 12:40:40 +02:00
Ralf Jung
5f0dd6db94 remove const_raw_ptr_to_usize_cast feature 2021-07-10 12:08:58 +02:00
Ralf Jung
2750d3ac6a avoid reentrant lock acquire when ThreadIds run out 2021-07-10 11:54:38 +02:00
Aris Merchant
5022c0638d Update docs for fs::hard_link 2021-07-09 23:24:36 -07:00
Aris Merchant
dc38d87505 Fix linker error
This makes `fs::hard_link` use weak! for some platforms,
thereby preventing a linker error.
2021-07-09 23:24:36 -07:00
bors
a84d1b21ae Auto merge of #86987 - lcnr:const-default-eval-bound, r=oli-obk
only check cg defaults wf once instantiated

the previous fixmes here didn't make too much sense as I didn't yet fully understand the code further below.
That code only runs if the predicates using our generic param default are fully concrete after substituting our default, which never happens if our default is generic.

r? `@oli-obk` `@BoxyUwU`
2021-07-10 06:01:04 +00:00
bors
8eae2eb1d3 Auto merge of #86968 - inquisitivecrystal:missing-docs-v2, r=oli-obk
Remove `missing_docs` lint on private 2.0 macros

798baebde1/compiler/rustc_lint/src/builtin.rs (L573-L584)

This code is the source of #57569. The problem is subtle, so let me point it out. This code makes the mistake of assuming that all of the macros in `krate.exported_macros` are exported.

...Yeah. For some historical reason, all `macro` macros are marked as exported, regardless of whether they actually are, which is dreadfully confusing. It would be more accurate to say that `exported_macros` currently contains only macros that have paths.

This PR renames `exported_macros` to `importable_macros`, since these macros can be imported with `use` while others cannot. It also fixes the code above to no longer lint on private `macro` macros, since the `missing_docs` lint should only appear on exported items.

Fixes #57569.
2021-07-10 03:32:42 +00:00
bors
8d9d4c87d6 Auto merge of #86419 - ricobbe:raw-dylib-stdcall, r=petrochenkov
Add support for raw-dylib with stdcall, fastcall functions

Next stage of work for #58713: allow `extern "stdcall"` and `extern "fastcall"` with `#[link(kind = "raw-dylib")]`.

I've deliberately omitted support for vectorcall, as that doesn't currently work, and I wanted to get this out for review.  (I haven't really investigated the vectorcall failure much yet, but at first (very cursory) glance it appears that the problem is elsewhere.)
2021-07-09 23:24:21 +00:00
Wesley Wiser
d1852e1054 Respond to review feedback 2021-07-09 18:29:08 -04:00
bors
240ff4c4a0 Auto merge of #85263 - Smittyvb:thir-unsafeck-union-field, r=oli-obk
Check for union field accesses in THIR unsafeck

see also #85259, #83129, https://github.com/rust-lang/project-thir-unsafeck/issues/7

r? `@LeSeulArtichaut`
2021-07-09 20:56:07 +00:00
Nikita Popov
2ce1addeba Don't access pointer element type for nontemporal store
Simply shift the bitcast from the store to the load, so that
we can use the destination type. I'm not sure the bitcast is
really necessary, but keeping it for now.
2021-07-09 22:15:05 +02:00
Nikita Popov
208173f8e9 Fix project_deref() implementation
I'm not really sure what is wrong here, but I was getting load
type mismatches in the debuginfo code (which is the only place
using this function).

Replacing the project_deref() implementation with a generic
load_operand + deref did the trick.
2021-07-09 22:14:44 +02:00
Nikita Popov
4560efe46c Pass type when creating load
This makes load generation compatible with opaque pointers.

The generation of nontemporal copies still accesses the pointer
element type, as fixing this requires more movement.
2021-07-09 22:14:44 +02:00
Fabian Wolff
a7bfd35966 Enhance well-formedness checks for #[repr(...)] attributes 2021-07-09 22:03:48 +02:00
Nikita Popov
33e9a6b565 Pass type when creating atomic load
Instead of determining it from the pointer type, explicitly pass
the type to load.
2021-07-09 22:00:19 +02:00
Smitty
b86ed4a425 panic when trying to destructure union as enum 2021-07-09 15:22:12 -04:00
Aman Arora
5055569008 Apply suggestions from code review
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2021-07-09 15:12:24 -04:00
Richard Cobbe
a867dd4c7e Add support for raw-dylib with stdcall, fastcall functions on i686-pc-windows-msvc. 2021-07-09 12:04:54 -07:00
bors
3eff244fc7 Auto merge of #85832 - kornelski:raw_arg, r=yaahc
Unescaped command-line arguments for Windows

Some Windows commands, expecially `cmd.exe /c`, have unusual quoting requirements which are incompatible with default rules assumed for `.arg()`.

This adds `.unquoted_arg()` to `Command` via Windows `CommandExt` trait.

Fixes #29494
2021-07-09 18:15:20 +00:00
Smitty
df3e003378 Don't stub out part of test 2021-07-09 13:51:30 -04:00
Smitty
74d0d74dae Check for union field accesses in THIR unsafeck 2021-07-09 13:51:28 -04:00
Eric Huss
f698cacc33 Fix rust-analyzer install when not available. 2021-07-09 10:38:28 -07:00
Roxane
08c616741c Ensure deterministic ordering for diagnostics 2021-07-09 13:32:30 -04:00
Paul Trojahn
5cf954f932 Revert the revert of renaming traits::VTable to ImplSource
As #72114 and #73055 were merged so closely together I think this
accidentally happened while rebasing
2021-07-09 18:26:28 +02:00
bors
619c27a539 Auto merge of #87003 - m-ou-se:rollup-x7mhv3v, r=m-ou-se
Rollup of 5 pull requests

Successful merges:

 - #86855 (Fix comments about unique borrows)
 - #86881 (Inline implementation of lookup_line)
 - #86937 (Change linked tracking issue for more_qualified_paths)
 - #86994 (Update the comment on `lower_expr_try`)
 - #87000 (Use #[track_caller] in const panic diagnostics.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2021-07-09 15:34:16 +00:00
Mara Bos
2152c145d3
Rollup merge of #87000 - m-ou-se:const-panic-track-caller, r=oli-obk
Use #[track_caller] in const panic diagnostics.

This change stops const panic diagnostics from reporting inside #[track_caller] functions by skipping over them.
2021-07-09 16:20:36 +02:00
Mara Bos
98f35589f7
Rollup merge of #86994 - scottmcm:fix_expr_try_comment, r=petrochenkov
Update the comment on `lower_expr_try`

I'd updated the ones inside the method, but not its doc comment.
2021-07-09 16:20:35 +02:00
Mara Bos
07b9dae6a2
Rollup merge of #86937 - rylev:tracking-more-qualified-paths, r=nagisa
Change linked tracking issue for more_qualified_paths

This updates the linked tracking issue for the `more_qualified_paths` feature from the implementation PR #80080 to an actual tracking issue #86935.
2021-07-09 16:20:33 +02:00
Mara Bos
ad10107600
Rollup merge of #86881 - tmiasko:lookup-line, r=nagisa
Inline implementation of lookup_line

to avoid unnecessary conversions from `Option<usize>` to `isize` and back.
2021-07-09 16:20:32 +02:00
Mara Bos
e920ef8785
Rollup merge of #86855 - LeSeulArtichaut:patch-1, r=davidtwco
Fix comments about unique borrows
2021-07-09 16:20:32 +02:00
Roxane
8cbeaf7382 Address comments 2021-07-09 10:18:55 -04:00
Cameron Steffen
dce274024e clippy: allow default_hash_types on bootstrap 2021-07-09 09:10:45 -05:00
Cameron Steffen
17ebba70d0 clippy: allow default_hash_types on bootstrap 2021-07-09 09:10:45 -05:00
Cameron Steffen
d6b0d0bf97 Fix default_hash_types to use resolved path 2021-07-09 09:10:45 -05:00
bors
cb16543b3a Auto merge of #7449 - flip1995:remove-lints_enabled, r=camsteffen
Remove lints_enabled

r? `@camsteffen`

cc https://github.com/rust-lang/rust-clippy/pull/7448#issuecomment-876497862

I haven't added a variant with `last_node_with_lint_attrs` yet, since I didn't see a usecase for this. Also this field is not documented, so I'm wondering how it behaves with command line lints and so on.

changelog: none
2021-07-09 14:00:52 +00:00
Roxane
ca44372957 Handle multi diagnostics 2021-07-09 10:00:21 -04:00
Roxane
59f634bc2d Update comments 2021-07-09 10:00:21 -04:00
Roxane
81b062ae88 Fix wording 2021-07-09 10:00:21 -04:00
Roxane
36eb5442bd Add note clarifying why a closure no longer implements a trait 2021-07-09 10:00:21 -04:00
Roxane
2900c1a5e8 Add note pointing to where a closure and it's captured variables are dropped 2021-07-09 10:00:21 -04:00
Roxane
0e8e89daa6 Update error message 2021-07-09 10:00:20 -04:00
Roxane
0b7ff9660f Add note on why the variable is not fully captured 2021-07-09 10:00:20 -04:00
Kornel
bc67f6bc95 Debug formatting of raw_arg() 2021-07-09 14:24:34 +01:00
Mara Bos
0a4b53f57d Use #[track_caller] in const panic diagnostics.
It was already used for the message. This also uses it for the spans
used for the error and backtrace.
2021-07-09 15:23:27 +02:00