Commit Graph

105860 Commits

Author SHA1 Message Date
Esteban Küber
697fdc568e Suggest defining type parameter when appropriate
```
error[E0412]: cannot find type `T` in this scope
 --> file.rs:3:12
  |
3 | impl Trait<T> for Struct {}
  |     -      ^ not found in this scope
  |     |
  |     help: you might be missing a type parameter: `<T>`
```

Fix #64298.
2020-01-26 10:57:18 -08:00
bors
8ad83afe5b Auto merge of #68525 - tlively:emcc-codegen-sigsegv-66308, r=alexcrichton
Update LLVM to fix crash on Emscripten targets

Fixes #66308 (for real this time). r? @alexcrichton
2020-01-25 16:34:53 +00:00
bors
3bf71b3d5c Auto merge of #68516 - oli-obk:spaces, r=eddyb
Render const pointers in MIR more compactly

Split out from #67133 to make that PR simpler

cc @RalfJung

r? @eddyb
2020-01-25 13:14:59 +00:00
bors
80a65bcaf2 Auto merge of #68448 - maurer:dyn-cdylib, r=alexcrichton
rustc: Allow cdylibs to link against dylibs

Previously, rustc mandated that cdylibs could only link against rlibs as dependencies (not dylibs).
This commit disables that restriction and tests that it works in a simple case.

I don't have a windows rustc dev environment, so I guessed at the MSVC test code, I'm hoping the CI can run that for me.

Additionally, we might want to consider emitting (through cargo or rustc) some metadata to help C users of a cdylib figure out where all the dylibs they need are. I don't think that should be needed to land this change, as it will still be usable by homogeneous build systems without it.

My new test was templated off the `tests/run-make-fulldeps/cdylib` test. It seemed more appropriate to have it as a separate test, since both foo.rs and bar.rs would need to be replicated to make that test cover both cases, but I can do that if it would be preferred.

If I'm doing anything out of order/process, please let me know; this is only my second change to rustc and the prior one was trivial.

r? alexcrichton
2020-01-25 07:49:40 +00:00
bors
8bf17584e0 Auto merge of #68269 - csmoe:temp, r=estebank
Suggest to shorten temporary borrow from raw pointer

Closes https://github.com/rust-lang/rust/issues/65436
r? @estebank
cc @tmandry
2020-01-25 04:42:56 +00:00
bors
8647aa1a2c Auto merge of #68526 - JohnTitor:rollup-3mmljof, r=JohnTitor
Rollup of 6 pull requests

Successful merges:

 - #68111 (Print constants in `type_name` for const generics)
 - #68374 (Fix invalid link to the C++ Exception Handling ABI documentation)
 - #68504 (Use check-pass mode for lint tests and nll tests)
 - #68509 (Clean up error codes E0223 and E0225 explanations)
 - #68511 (Remove unused ignore-license directives)
 - #68515 (Support feature process_set_argv0 for VxWorks)

Failed merges:

r? @ghost
2020-01-24 23:04:54 +00:00
Yuki Okushi
f998e275ca
Rollup merge of #68515 - Wind-River:master_2020, r=alexcrichton
Support feature process_set_argv0 for VxWorks

r? @alexcrichton
2020-01-25 07:45:18 +09:00
Yuki Okushi
b9c86a363a
Rollup merge of #68511 - tmiasko:ignore-license, r=alexcrichton
Remove unused ignore-license directives

The tidy check was removed in rust-lang/rust#53617
2020-01-25 07:45:16 +09:00
Yuki Okushi
e22ae2c096
Rollup merge of #68509 - GuillaumeGomez:clean-up-err-codes-e0223-e0225, r=Dylan-DPC
Clean up error codes E0223 and E0225 explanations

r? @Dylan-DPC
2020-01-25 07:45:15 +09:00
Yuki Okushi
cecffb6308
Rollup merge of #68504 - tmiasko:check-pass, r=alexcrichton
Use check-pass mode for lint tests and nll tests

Helps with issue #62277.
2020-01-25 07:45:13 +09:00
Yuki Okushi
b9c29770cc
Rollup merge of #68374 - gitletH:patch-1, r=nikomatsakis
Fix invalid link to the C++ Exception Handling ABI documentation

The original link is longer valid(404). I am assuming it's meant to be pointed to the Itanium C++ Exception Handling ABI documentation.
2020-01-25 07:45:11 +09:00
Yuki Okushi
cbaecee87c
Rollup merge of #68111 - varkor:const-generics-type_name, r=oli-obk
Print constants in `type_name` for const generics

Fixes https://github.com/rust-lang/rust/issues/65372.

r? @oli-obk as there may have been a deliberate decision not to in 5b9848912a (diff-4ed1a72c0bfdf17be769ed520932cd02R80).
2020-01-25 07:45:10 +09:00
Thomas Lively
110871a37a New fix 2020-01-24 11:12:33 -08:00
Thomas Lively
601aa407ee Add opt-level=0 to test 2020-01-24 10:26:39 -08:00
Thomas Lively
7b49c7d743 Update LLVM to fix crash on Emscripten targets
Adds a small Rust regression test for #66308.

r? @alexcrichton
2020-01-24 10:26:39 -08:00
BaoshanPang
06af44238f Support feature process_set_argv0 for VxWorks 2020-01-24 09:59:59 -08:00
bors
c2d141df59 Auto merge of #68494 - matthewjasper:internal-static-ptrs, r=nikomatsakis
Make pointers to statics internal

Closes #67611

r? @nikomatsakis
2020-01-24 17:18:36 +00:00
varkor
50dd8eaeb9 Print constants in type_name for const generics 2020-01-24 16:23:32 +00:00
Oliver Scherer
9a2d5e87d6 Render const pointers in MIR more compactly 2020-01-24 16:20:58 +01:00
bors
73f76b74ef Auto merge of #68414 - michaelwoerister:share-drop-glue, r=alexcrichton
Also share drop-glue when compiling with -Zshare-generics (i.e. at opt-level=0)

This PR adds drop-glue to the set of monomorphizations that can be shared across crates via `-Zshare-generics`.

This version of the PR might have detrimental effects on performance as it makes lots of stuff dependent on a single query results (`upstream_monomorphizations_for(def_id_of_drop_in_place)`). That should be fixable but let's do a perf run first.

Potentially fixes issue https://github.com/rust-lang/rust/issues/64140. (cc @alexcrichton)
The changes here are related to @matthewjasper's https://github.com/rust-lang/rust/pull/67332 but should be mostly orthogonal.

r? @ghost
2020-01-24 14:00:56 +00:00
Guillaume Gomez
768f6f9340 Clean up error codes E0223 and E0225 explanations 2020-01-24 12:56:32 +01:00
bors
dee12bb2b7 Auto merge of #68506 - tmandry:rollup-kz9d33v, r=tmandry
Rollup of 7 pull requests

Successful merges:

 - #68424 (Suggest borrowing `Vec<NonCopy>` in for loop)
 - #68438 (Account for non-types in substs for opaque type error messages)
 - #68469 (Avoid overflow in `std::iter::Skip::count`)
 - #68473 (Enable ASan on Fuchsia)
 - #68479 (Implement `unused_parens` for block return values)
 - #68483 (Add my (@flip1995) name to .mailmap)
 - #68500 (Clear out std, not std tools)

Failed merges:

r? @ghost
2020-01-24 08:32:10 +00:00
Tyler Mandry
7f8a61d96c
Rollup merge of #68500 - Mark-Simulacrum:fix-bootstrap-clearing, r=alexcrichton
Clear out std, not std tools

This was a typo that slipped in, and meant that we were still not properly
clearing out std.

This is basically #67760 but actually correct...
2020-01-24 00:31:02 -08:00
Tyler Mandry
a7e2ac41ed
Rollup merge of #68483 - flip1995:mailmap, r=Dylan-DPC
Add my (@flip1995) name to .mailmap
2020-01-24 00:31:00 -08:00
Tyler Mandry
1662888126
Rollup merge of #68479 - Tyg13:unused_parens_return, r=Centril
Implement `unused_parens` for block return values

Fixes #68386

r? @Centril
2020-01-24 00:30:59 -08:00
Tyler Mandry
94aa655a3c
Rollup merge of #68473 - nopsledder:rust_sanitizer_fuchsia, r=alexcrichton
Enable ASan on Fuchsia

This change adds the x86_64-fuchsia and aarch64-fuchsia LLVM targets to
those allowed to invoke -Zsanitizer. Currently, the only overlap between
compiler_rt sanitizers supported by both rustc and Fuchsia is ASan.
2020-01-24 00:30:58 -08:00
Tyler Mandry
e7752aefdc
Rollup merge of #68469 - ollie27:skip_count, r=sfackler
Avoid overflow in `std::iter::Skip::count`

The call to `count` on the inner iterator can overflow even if `Skip` itself would return less that `usize::max_value()` items.

Fixes #68139
2020-01-24 00:30:56 -08:00
Tyler Mandry
143059deaf
Rollup merge of #68438 - Aaron1011:fix/tait-non-defining, r=estebank
Account for non-types in substs for opaque type error messages

Fixes #68368

Previously, I assumed that the substs contained only types, which caused
the computed index number to be wrong.
2020-01-24 00:30:55 -08:00
Tyler Mandry
eb769ed6b0
Rollup merge of #68424 - estebank:suggest-borrow-for-non-copy-vec, r=davidtwco
Suggest borrowing `Vec<NonCopy>` in for loop

Partially address #64167.
2020-01-24 00:30:53 -08:00
Mark Rousskov
1cbb5d8490 Clear out std, not std tools
This was a typo that slipped in, and meant that we were still not properly
clearing out std.
2020-01-23 20:29:42 -05:00
Tomasz Miąsko
2fd6c4a18a Remove unused ignore-license directives
The tidy check was removed in rust-lang/rust#53617
2020-01-24 00:00:00 +00:00
bors
62f227b3f8 Auto merge of #68012 - alexcrichton:update-some-deps, r=Mark-Simulacrum
Update some of Cargo's dependencies

This is primarily updating the `curl` dependency, but also went ahead
and applied a few updates for other packages that Cargo depends on.
2020-01-23 23:44:51 +00:00
Alex Crichton
aabf4e9253 Update some of Cargo's dependencies
This is primarily updating the `curl` dependency, but also went ahead
and applied a few updates for other packages that Cargo depends on.
2020-01-23 15:17:55 -08:00
Matthew Jasper
f30a8186f7 Make pointers to statics internal 2020-01-23 21:38:15 +00:00
Matthew Maurer
72aaa3a414 rustc: Allow cdylibs to link against dylibs
Previously, rustc mandated that cdylibs could only link against rlibs as
dependencies (not dylibs).
This commit disables that restriction and tests that it works in a
simple case.
2020-01-23 13:10:04 -08:00
Esteban Küber
6eaf59dfc8 use diagnostic_item and modify wording 2020-01-23 11:51:56 -08:00
bors
41f41b2354 Auto merge of #68391 - tmiasko:compiletest-debuginfo, r=alexcrichton
compiletest: Simplify multi-debugger support

Previous implementation used a single mode type to store various pieces
of otherwise loosely related information:

* Whether debuginfo mode is in use or not.
* Which debuggers should run in general.
* Which debuggers are enabled for particular test case.

The new implementation introduces a separation between those aspects.
There is a single debuginfo mode parametrized by a debugger type.
The debugger detection is performed first and a separate configuration
is created for each detected debugger. The test cases are gathered
independently for each debugger which makes it trivial to implement
support for `ignore` / `only` conditions.

Functional changes:

* A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.).
* Debugger name is included in the test name.
* Test outputs are placed in per-debugger directory.
* Fixed spurious hash mismatch. Previously, the config mode would change
  from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or
  `DebugInfoLldb` (when running them) which would affect hash computation.
* PYTHONPATH is additionally included in gdb hash.
* lldb-python and lldb-python-dir are additionally included in lldb hash.
2020-01-23 19:39:07 +00:00
Michael Woerister
197cc1e43a Add projection query for upstream drop-glue instances.
This reduces the amount of invalidated data when new types are
add to upstream crates.
2020-01-23 16:56:59 +01:00
flip1995
06064b99fd
Add my (@flip1995) name to .mailmap 2020-01-23 13:43:23 +01:00
Michael Woerister
2ceb92bc53 Make drop-glue take advantage of -Zshare-generics. 2020-01-23 13:15:15 +01:00
Michael Woerister
190f0c0b0b Always just use symbol name for sorting exported symbols. 2020-01-23 13:15:15 +01:00
Michael Woerister
0c366cdeaf Make ExportedSymbols type more local because it's not supposed to be
used outside of the LLVM backend.
2020-01-23 13:15:15 +01:00
Michael Woerister
29951edbdf Clarify some methods around instance instantiation via comments and clearer names. 2020-01-23 13:15:14 +01:00
Tomasz Miąsko
5c384ab00c compiletest: Do not run debuginfo tests with gdb on msvc targets 2020-01-23 11:41:55 +01:00
bors
e0bbe7915e Auto merge of #68435 - tmandry:llvmup-2-the-return-of-phibitcast-transform-fixes, r=alexcrichton
Update LLVM

Fixes #67855 (rust-lang/llvm-project#31)
Fixes #66036 (rust-lang/llvm-project#32)

r? @nikic @alexcrichton
2020-01-23 07:26:56 +00:00
Tyler Lanphear
6f7e89ffe3 unused-parens: implement for block return values 2020-01-23 00:42:35 -05:00
bors
462fc37fa8 Auto merge of #68298 - Mark-Simulacrum:binary-depdep-fix, r=petrochenkov
Avoid declaring a fake dependency edge

When we're producing an rlib, we do not need anything more than an rmeta file
for each of our dependencies (this is indeed utilized by Cargo for pipelining).
Previously, we were still storing the paths of possible rlib/dylib crates, which
meant that they could still plausibly be accessed. With -Zbinary-dep-depinfo,
that meant that Cargo thought that rustc was using both the rlib and an (earlier
emitted) rmeta, and so needed a recompile, as the rlib may have finished writing
*after* compilation started (for more detail, see issue 68149).

This commit changes metadata loading to not store the filepaths of dylib/rlib if
we're going to end up creating an rlib only.

Fixes #68149.
2020-01-23 03:48:07 +00:00
bors
e23dd6687f Auto merge of #68474 - tmandry:rollup-6gmbet6, r=tmandry
Rollup of 10 pull requests

Successful merges:

 - #67195 ([experiment] Add `-Z no-link` flag)
 - #68253 (add bare metal ARM Cortex-A targets to rustc)
 - #68361 (Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386)
 - #68388 (Make `TooGeneric` error in WF checking a proper error)
 - #68409 (Micro-optimize OutputFilenames)
 - #68410 (Export weak symbols used by MemorySanitizer)
 - #68425 (Fix try-op diagnostic in E0277 for methods)
 - #68440 (bootstrap: update clippy subcmd decription)
 - #68441 (pprust: use as_deref)
 - #68462 (librustc_mir: don't allocate vectors where slices will do.)

Failed merges:

r? @ghost
2020-01-23 00:04:33 +00:00
Tyler Mandry
bfac73c0a6
Rollup merge of #68462 - matthiaskrgr:novec, r=varkor
librustc_mir: don't allocate vectors where slices will do.
2020-01-22 16:02:24 -08:00
Tyler Mandry
14e6259c29
Rollup merge of #68441 - Centril:pprust-as_deref, r=Mark-Simulacrum
pprust: use as_deref

Some drive-by cleanup.
2020-01-22 16:02:20 -08:00