Commit Graph

80680 Commits

Author SHA1 Message Date
kennytm
c2c6986733
Rollup merge of #52220 - ljedrz:dyn_bootstrap, r=kennytm
Deny bare trait objects in `src/bootstrap`

Enforce `#![deny(bare_trait_objects)]` in `src/bootstrap`.
2018-07-12 20:25:27 +08:00
kennytm
8fba84fe0a
Rollup merge of #52164 - euclio:references, r=TimNN
use proper footnote syntax for references

The previous syntax was causing rustdoc to interpret them as links.
2018-07-12 20:25:26 +08:00
kennytm
b317ab1bc5
Rollup merge of #51912 - mbrubeck:more_box_slice_clone, r=alexcrichton
impl Clone for Box<CStr>, Box<OsStr>, Box<Path>

Implements #51908.
2018-07-12 20:25:25 +08:00
kennytm
c87e3feaee
Rollup merge of #51816 - nodakai:conf-py-tmpfile, r=kennytm
bootstrap: write texts to a .tmp file first for atomicity

If you are using a hard-linked file as your config.toml, this change will affect the way other instances of the file is modified.
The original version would modify all other instances whereas the new version will leave others unchanged, reducing the ref count by one.
2018-07-12 20:25:23 +08:00
ljedrz
5058af7003 Deny bare trait objects in the rest of rust 2018-07-12 13:50:22 +02:00
ljedrz
21d9ac1d04 Deny bare trait objects in librustc_target and libtest 2018-07-12 13:26:29 +02:00
ljedrz
0878453119 Deny bare trait objects in src/libserialize 2018-07-12 12:49:29 +02:00
Ralf Jung
e9a88eaaf9 make reference to dirs crate clickable in terminals 2018-07-12 12:48:10 +02:00
bors
d334027c58 Auto merge of #52230 - alexcrichton:attr-and-derive, r=petrochenkov
rustc: Search all derives for inert attributes

This commit fixes an apparent mistake in librustc_resolve where when the
`proc_macro` feature is enabled (or `rust_2018_preview`) the resolution of
custom attributes for custom derive was tweaked. Previously when an attribute
failed to resolve it was attempted to locate if there is a custom derive also in
scope which declares the attribute, but only the first custom derive directive
was search.

Instead this commit fixes the loop to search all custom derive invocations
looking for any which register the attribute in question.

Closes #52219
2018-07-12 10:16:19 +00:00
ljedrz
08c113abef Deny bare trait objects in src/libsyntax_ext 2018-07-12 11:58:16 +02:00
ljedrz
f29ac5a680 Deny bare trait objects in librustc_typeck 2018-07-12 10:57:04 +02:00
Michael Woerister
94b32adb71 Adapt codegen-unit tests to new CGU naming scheme. 2018-07-12 10:44:13 +02:00
ljedrz
db7170cf4a Add missing dyn in driver.rs 2018-07-12 10:35:53 +02:00
ljedrz
0d7b2e6e28 Deny bare trait objects in src/librustc_save_analysis 2018-07-12 10:26:22 +02:00
ljedrz
8fecbe3e78 Deny bare trait objects in src/librustc_resolve 2018-07-12 10:15:35 +02:00
Mike Hommey
b5c2b79fb2 Don't display default generic parameters in diagnostics that compare types.
Fixes #52097
2018-07-12 17:14:53 +09:00
bors
de857bbcf0 Auto merge of #52282 - kennytm:fix-rls-break, r=oli-obk
Patch clippy_lints to use the in-tree clippy as well.

Should fix the most recent RLS build break.
2018-07-12 08:12:18 +00:00
Mike Hommey
5336df7e3c Add UI tests for diagnostics comparing types
They highlight how types are displayed in those cases, and will show
how the current output is altered by the next patch.
2018-07-12 17:06:03 +09:00
ljedrz
58bf387ae3 Deny bare trait objects in librustc_driver 2018-07-12 09:11:39 +02:00
Niko Matsakis
862c0dd851 make RegionValues generic over its domain
We used to store one value per RegionVid; we will soon be storing one
value per SCC.
2018-07-12 00:38:40 -04:00
Niko Matsakis
0052ddd8ae introduce a generic SCC computation 2018-07-12 00:38:40 -04:00
Niko Matsakis
dab206f8b5 strengthen Idx to require Ord + Hash
You should always be able to know that any `T` where `T: Idx`
can be used in a `BTreeMap` and a `FxHashMap`.
2018-07-12 00:38:40 -04:00
Niko Matsakis
90c90ba542 rename control_flow_graph to graph 2018-07-12 00:38:40 -04:00
Niko Matsakis
3c30415e96 rename graph to control_flow_graph::implementation 2018-07-12 00:38:40 -04:00
Niko Matsakis
28c483b946 deconstruct the ControlFlowGraph trait into more granular traits 2018-07-12 00:38:40 -04:00
Niko Matsakis
5fa240e96a rename constraint_set to constraints
also promote to its own directory, make local to nll
2018-07-12 00:38:40 -04:00
Niko Matsakis
d54e7e32b2 introduce ConstraintGraph, stop mutating constraints in place
Encapsulate the dependencies more cleanly.
2018-07-12 00:38:38 -04:00
Niko Matsakis
8fa24bbc57 generate reborrow constraints at type check time 2018-07-12 00:32:42 -04:00
Niko Matsakis
fbb7306347 fix debug! 2018-07-12 00:28:34 -04:00
bors
c946c2539e Auto merge of #52194 - steveklabnik:remove-plugins, r=QuietMisdreavus,GuillaumeGomez
Remove rustdoc's plugins feature

This fixes CVE-2018-1000622.

https://cve.mitre.org/cgi-bin/cvename.cgi?name=%20CVE-2018-1000622

r? @QuietMisdreavus @GuillaumeGomez
2018-07-12 04:12:19 +00:00
kennytm
6aab3d0ca1
Update [patch] section of clippy to include clippy_lints. 2018-07-12 11:01:59 +08:00
bors
3244d53c79 Auto merge of #52089 - eddyb:issue-51907, r=nagisa
rustc_codegen_llvm: replace the first argument early in FnType::new_vtable.

Fixes #51907 by removing the vtable pointer before the `ArgType` is even created.
This allows any ABI to support trait object method calls, regardless of how it passes `*dyn Trait`.

r? @nikomatsakis
2018-07-12 01:20:19 +00:00
Taylor Cramer
a6fa656555 Use fast TLS on Fuchsia 2018-07-11 18:11:53 -07:00
Jorge Aparicio
f45d5eb4f0 llvm-tools-preview: fix build-manifest 2018-07-11 20:03:34 -05:00
Matt Kraai
e488cba678
Uncapitalize "If" 2018-07-11 17:19:41 -07:00
Tinco Andringa
b96deed121 fix expected output of pretty/cast-lt and issue-4264 tests 2018-07-12 01:19:27 +02:00
Alex Crichton
7735f45eab rustc: Verify #[proc_macro] is only a word
... and perform the same verification for #[proc_macro_attribute], currently
neither of these attributes take any arguments.

Closes #52273
2018-07-11 15:49:23 -07:00
bors
4ba5ff4d30 Auto merge of #52172 - oli-obk:clippy_in_rls, r=nrc
Inject clippy into the rls again

Also makes sure we actually point to the local rustfmt

r? @nrc

cc @Manishearth
2018-07-11 21:54:44 +00:00
Michael Woerister
f6894ebe66 Clean up LLVM module naming (just use CodegenUnit names). 2018-07-11 21:54:43 +02:00
bors
704af2d7e1 Auto merge of #52268 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 14 pull requests

Successful merges:

 - #51614 (Correct suggestion for println)
 - #51952 ( hygiene: Decouple transparencies from expansion IDs)
 - #52193 (step_by: leave time of item skip unspecified)
 - #52207 (improve error message shown for unsafe operations)
 - #52223 (Deny bare trait objects in in src/liballoc)
 - #52224 (Deny bare trait objects in in src/libsyntax)
 - #52239 (Remove sync::Once::call_once 'static bound)
 - #52247 (Deny bare trait objects in in src/librustc)
 - #52248 (Deny bare trait objects in in src/librustc_allocator)
 - #52252 (Deny bare trait objects in in src/librustc_codegen_llvm)
 - #52253 (Deny bare trait objects in in src/librustc_data_structures)
 - #52254 (Deny bare trait objects in in src/librustc_metadata)
 - #52261 (Deny bare trait objects in in src/libpanic_unwind)
 - #52265 (Deny bare trait objects in in src/librustc_codegen_utils)

Failed merges:

r? @ghost
2018-07-11 19:50:14 +00:00
Mark Rousskov
a0b288e1b8
Rollup merge of #52265 - ljedrz:dyn_librustc_codegen_utils, r=oli-obk
Deny bare trait objects in in src/librustc_codegen_utils

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_codegen_utils`.
2018-07-11 12:38:49 -06:00
Mark Rousskov
7585bd5b39
Rollup merge of #52261 - ljedrz:dyn_libpanic_unwind, r=alexcrichton
Deny bare trait objects in in src/libpanic_unwind

Enforce `#![deny(bare_trait_objects)]` in `src/libpanic_unwind`.
2018-07-11 12:38:47 -06:00
Mark Rousskov
e6f6608b84
Rollup merge of #52254 - ljedrz:dyn_librustc_metadata, r=cramertj
Deny bare trait objects in in src/librustc_metadata

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_metadata`.
2018-07-11 12:38:46 -06:00
Mark Rousskov
59fb178ad9
Rollup merge of #52253 - ljedrz:dyn_librustc_data_structures, r=cramertj
Deny bare trait objects in in src/librustc_data_structures

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_data_structures`.
2018-07-11 12:38:45 -06:00
Mark Rousskov
dcc536fc14
Rollup merge of #52252 - ljedrz:dyn_librustc_codegen_llvm, r=varkor
Deny bare trait objects in in src/librustc_codegen_llvm

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_codegen_llvm`.
2018-07-11 12:38:44 -06:00
Mark Rousskov
8d9a6a7edd
Rollup merge of #52248 - ljedrz:dyn_librustc_allocator, r=oli-obk
Deny bare trait objects in in src/librustc_allocator

Enforce `#![deny(bare_trait_objects)]` in `src/librustc_allocator`.
2018-07-11 12:38:42 -06:00
Mark Rousskov
2774179f70
Rollup merge of #52247 - ljedrz:dyn_librustc, r=oli-obk
Deny bare trait objects in in src/librustc

Enforce `#![deny(bare_trait_objects)]` in `src/librustc`.
2018-07-11 12:38:41 -06:00
Mark Rousskov
b41105ba26
Rollup merge of #52239 - CAD97:patch-1, r=alexcrichton
Remove sync::Once::call_once 'static bound

See https://internals.rust-lang.org/t/sync-once-per-instance/7918 for more context.

Suggested r is @alexcrichton, the one who added the `'static` bound back in 2014. I don't want to officially r? though, if the system would even let me. I'd rather let the system choose the appropriate member since it knows more than I do.

`git blame` history for `sync::Once::call_once`'s signature:

- [std: Second pass stabilization of sync](f3a7ec7028) (Dec 2014)

    ```diff
    -    pub fn doit<F>(&'static self, f: F) where F: FnOnce() {
    +    #[stable]
    +    pub fn call_once<F>(&'static self, f: F) where F: FnOnce() {
    ```

- [libstd: use unboxed closures](cdbb3ca9b7) (Dec 2014)

    ```diff
    -    pub fn doit(&'static self, f: ||) {
    +    pub fn doit<F>(&'static self, f: F) where F: FnOnce() {
    ```

- [std: Rewrite the `sync` module](71d4e77db8) (Nov 2014)

    ```diff
    -    pub fn doit(&self, f: ||) {
    +    pub fn doit(&'static self, f: ||) {
    ```

    > ```text
    >  The second layer is the layer provided by `std::sync` which is intended to be
    >  the thinnest possible layer on top of `sys_common` which is entirely safe to
    >  use. There are a few concerns which need to be addressed when making these
    >  system primitives safe:
    >
    >    * Once used, the OS primitives can never be **moved**. This means that they
    >      essentially need to have a stable address. The static primitives use
    >      `&'static self` to enforce this, and the non-static primitives all use a
    >      `Box` to provide this guarantee.
    > ```

The author of this diff is @alexcrichton. `sync::Once` now contains only a pointer to (privately hidden) `Waiter`s, which are all stack-allocated. The `'static` bound to `sync::Once` is thus unnecessary to guarantee that any OS primitives are non-relocatable.

As the `'static` bound is not required for `sync::Once`'s operation, removing it is strictly more useful. As an example, it allows attaching a one-time operation to instances rather than only to global singletons.
2018-07-11 12:38:40 -06:00
Mark Rousskov
2d49909f45
Rollup merge of #52224 - ljedrz:dyn_libsyntax, r=oli-obk
Deny bare trait objects in in src/libsyntax

Enforce `#![deny(bare_trait_objects)]` in `src/libsyntax`.
2018-07-11 12:38:39 -06:00
Mark Rousskov
d096f6ae85
Rollup merge of #52223 - ljedrz:dyn_liballoc, r=cramertj
Deny bare trait objects in in src/liballoc

Enforce #![deny(bare_trait_objects)] in src/liballoc.
2018-07-11 12:38:37 -06:00