Commit Graph

81775 Commits

Author SHA1 Message Date
M Farkas-Dyck
b78201aee5 inline some short functions 2018-08-09 01:27:48 -08:00
bors
ebe8df41d7 Auto merge of #52872 - faern:use-modern-alignment-libc, r=TimNN
Make IpvXAddr::new const fns and the well known addresses associated constants

Implements/fixes https://github.com/rust-lang/rust/issues/44582

I just got a PR towards libc (https://github.com/rust-lang/libc/pull/1044) merged. With the new feature added in that PR it is now possible to create `in6_addr` instances as consts. This enables us to finally make the constructors of the IP structs const fns and to make the localhost/unspecified addresses associated constants, as agreed in the above mentioned tracking issue.

I also added a BROADCAST constant. Personally this is the well known address I tend to need the most often.
2018-08-08 10:42:04 +00:00
Linus Färnstrand
c0041f4a17 Use repr(align(x)) for redox in6_addr 2018-08-08 10:52:10 +02:00
Linus Färnstrand
e96b760757 Update libc to 0.2.43 in Cargo.lock 2018-08-08 10:52:10 +02:00
Linus Färnstrand
83464591ed Simplify Ipv6Addr::from(octets) to not use unsafe 2018-08-08 10:52:10 +02:00
Linus Färnstrand
d45a703a74 Simplify is_broadcast 2018-08-08 10:52:10 +02:00
Linus Färnstrand
7167a065d1 Add Ipv4Addr BROADCAST assoc const 2018-08-08 10:52:10 +02:00
Linus Färnstrand
e9a96c0433 Move IPs to assoc consts 2018-08-08 10:52:10 +02:00
Linus Färnstrand
02c272db2d Make Ipv{4,6}Addr::new const fns 2018-08-08 10:52:10 +02:00
Linus Färnstrand
6f943c0697 Update libc and activate align feature 2018-08-08 10:52:10 +02:00
bors
ffb09dfb3a Auto merge of #53053 - petrochenkov:custattr, r=alexcrichton
resolve:  Support custom attributes when macro modularization is enabled

Basically, if resolution of a single-segment attribute is a determined error, then we interpret it as a custom attribute.

Since custom attributes are integrated into general macro resolution, `feature(custom_attribute)` now requires and implicitly enables macro modularization (`feature(use_extern_macros)`).
Actually, a few other "advanced" macro features now implicitly enable macro modularization too (and one bug was found and fixed in process of enabling it).

The first two commits are preliminary cleanups/refactorings.
2018-08-08 08:37:56 +00:00
bors
52c785bfc2 Auto merge of #53141 - nrc:update, r=nrc
Update RLS, Rustfmt, and Clippy

Fixes bustage due to https://github.com/rust-lang/rust/pull/52332

r? @kennytm
2018-08-08 06:38:13 +00:00
Nick Cameron
ae5a1fdae8 Prevent duplication of rust-ap-syntax
author: alexcrichton
2018-08-08 18:09:36 +12:00
Nick Cameron
b6d0514492 Update RLS and Rustfmt 2018-08-08 18:06:58 +12:00
bors
26d7b64237 Auto merge of #52993 - alexcrichton:fix-some-vis, r=michaelwoerister
rustc: Tweak visibility of some lang items

This commit tweaks the linker-level visibility of some lang items that rustc
uses and defines. Notably this means that `#[panic_implementation]` and
`#[alloc_error_handler]` functions are never marked as `internal`. It's up to
the linker to eliminate these, not rustc.

Additionally `#[global_allocator]` generated symbols are no longer forced to
`Default` visibility (fully exported), but rather they're relaxed to `Hidden`
visibility). This symbols are *not* needed across DLL boundaries, only as a
local implementation detail of the compiler-injected allocator symbols, so
`Hidden` should suffice.

Closes #51342
Closes #52795
2018-08-08 01:24:15 +00:00
bors
3f4f18f098 Auto merge of #52397 - estebank:println-comma, r=oli-obk
Suggest comma when writing `println!("{}" a);`

Fix #49370.
2018-08-07 22:15:25 +00:00
bors
e90dc6f80d Auto merge of #52911 - Mark-Simulacrum:visibility-hirid, r=oli-obk
Add HirId to VisibilityKind::Restricted

I'm not confident that these changes are correct -- mostly just tried to copy previous PRs.

Specifically, it's unclear to me if/how to remove the NodeId now that we have HirIds in more structs; is that a all-at-once change that'll happen later?
2018-08-07 19:10:17 +00:00
Mark Rousskov
3baec3cdd7 Add HirId to VisibilityKind::Restricted 2018-08-07 10:13:17 -06:00
bors
ccb550fb45 Auto merge of #53109 - nikomatsakis:nll-escaping-into-return-revert, r=nikomatsakis
revert #52991

Reverts https://github.com/rust-lang/rust/pull/52991 which is flawed. I have an idea how to fix it but might as well revert first since it is so wildly flawed. That's what I get for opening PRs while on PTO =)

r? @pnkfelix
2018-08-07 16:01:27 +00:00
Alex Crichton
7c58ab671f rustc: Tweak visibility of some lang items
This commit tweaks the linker-level visibility of some lang items that rustc
uses and defines. Notably this means that `#[panic_implementation]` and
`#[alloc_error_handler]` functions are never marked as `internal`. It's up to
the linker to eliminate these, not rustc.

Additionally `#[global_allocator]` generated symbols are no longer forced to
`Default` visibility (fully exported), but rather they're relaxed to `Hidden`
visibility). This symbols are *not* needed across DLL boundaries, only as a
local implementation detail of the compiler-injected allocator symbols, so
`Hidden` should suffice.

Closes #51342
Closes #52795
2018-08-07 08:42:38 -07:00
Alex Crichton
38eeebdfed rustc: Refactor MonoItem linkage/visibility calculation
The previous iteration was a large `match` which was quite heavily indented,
making it slightly difficult to read and see what was going on. This iteration
is a refactoring (no functional change intended) to make it a bit easier on the
eyes and a bit easier to modify over time.
2018-08-07 07:12:23 -07:00
bors
39e9516532 Auto merge of #51990 - oli-obk:unstable_union, r=nikomatsakis
Place unions, pointer casts and pointer derefs behind extra feature gates

To ensure we don't stabilize these things together with const fn stabilization (or any other stabilization)

This PR moves union field accesses inside `const fn` behind a feature gate. It was possible without a feature gate before, but since `const fn` was behind a feature gate we can do this change.

While "dereferencing raw pointers" and "casting raw pointers to usize" were hard errors before this PR, one could work around them by abusing unions:

```rust
// deref
union Foo<T> {
    x: &'static T,
    y: *const T,
}
const FOO: u32 = unsafe { *Foo { y: 42 as *const T }.x };

// as usize cast
union Bar<T> {
    x: usize,
    y: *const T,
}
const BAR: usize = unsafe { Bar { y: &1u8 }.x };
```

r? @eddyb

cc @nikomatsakis
2018-08-07 13:14:37 +00:00
Oliver Schneider
4b731a908b Fix tidy 2018-08-07 14:41:33 +02:00
Oliver Schneider
a091a6567c Make sure the feature gate actually works and never allows promoting these operations 2018-08-07 14:41:33 +02:00
Oliver Schneider
aa0884ecc1 Add feature gate test 2018-08-07 14:41:33 +02:00
Oliver Schneider
36907fc18d Also put comparing raw pointers behind a feature gate 2018-08-07 14:41:33 +02:00
Oliver Schneider
1fc7580a8e Rebase fallout: new tests need updated ui output 2018-08-07 14:41:33 +02:00
Oliver Schneider
07e2dd7d96 Don't accidentally promote union access in MIR 2018-08-07 14:41:33 +02:00
Oliver Schneider
c0aedc0b6a Use the correct feature gate name 2018-08-07 14:41:33 +02:00
Oliver Schneider
fee07534bb Add feature gate checks 2018-08-07 14:41:33 +02:00
Oliver Schneider
3ef863bfdf Place unions, pointer casts and pointer derefs behind extra feature gates 2018-08-07 14:41:33 +02:00
bors
18925dee25 Auto merge of #53150 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests

Successful merges:

 - #52885 (Remove some unused method arguments from typeck)
 - #52886 (cleanup: Remove `Def::GlobalAsm`)
 - #53028 (Building librustc_codegen_llvm in a separate directory)
 - #53052 (fixed broken links to char)
 - #53060 (Change rustdoc style so fully qualified name does not overlap src link)
 - #53068 (Rename Executor trait to Spawn)
 - #53093 (Enable macros to pass $:literal to another macro)
 - #53107 (Remove references to `StaticMutex` which got removed a while ago)
 - #53135 (Rust 2018: Disable catch_expr, not targeted for 2018 edition)
 - #53139 (set emit_debug_gdb_scripts: false for riscv32imac-unknown-none target)
2018-08-07 11:00:07 +00:00
kennytm
d9e9230b1d
Rollup merge of #53139 - danc86:riscv-no-gdb-scripts, r=petrochenkov
set emit_debug_gdb_scripts: false for riscv32imac-unknown-none target

Same as the other embedded targets, see:
https://github.com/rust-lang/rust/pull/49728

This is a temporary workaround for #44993.
2018-08-07 18:52:20 +08:00
kennytm
9da780dcc7
Rollup merge of #53135 - joshtriplett:remove-catch-from-2018-preview, r=Mark-Simulacrum
Rust 2018: Disable catch_expr, not targeted for 2018 edition

Fixes #52604
2018-08-07 18:51:51 +08:00
kennytm
a5cd4b5607
Rollup merge of #53107 - RalfJung:static-mutex, r=alexcrichton
Remove references to `StaticMutex` which got removed a while ago

`StaticMutex` got removed two years ago with https://github.com/rust-lang/rust/pull/34705, but still got referenced in some comments and even an error explanation.
2018-08-07 16:55:44 +08:00
kennytm
c1220610ef
Rollup merge of #53093 - 0e4ef622:issue-52169-fix, r=petrochenkov
Enable macros to pass $:literal to another macro

Fixes #52169.
2018-08-07 16:55:43 +08:00
kennytm
3385cae74a
Rollup merge of #53068 - MajorBreakfast:spawn, r=cramertj
Rename Executor trait to Spawn

Renames the `Executor` trait to `Spawn` and the method on `Context` to `spawner`.

Note: Best only merge this after we've the alpha 3 announcement post ready.

r? @cramertj
2018-08-07 16:55:42 +08:00
kennytm
25e32903ef
Rollup merge of #53060 - iliekturtles:rustdoc-style, r=GuillaumeGomez
Change rustdoc style so fully qualified name does not overlap src link

A type's fully qualified name will now wrap once it gets to the
`[-][src]` link aligned against the right edge of the content area.
Previously the two would overlap and the name would only wrap when
hitting the edge of the content area.

Before:
![image](https://user-images.githubusercontent.com/5081378/43676506-cf548758-97c0-11e8-80a0-a812d8ea0eef.png)

After:
![image](https://user-images.githubusercontent.com/5081378/43676509-e78810a6-97c0-11e8-8cd4-b90bd5858a5f.png)
2018-08-07 16:55:41 +08:00
kennytm
b1ca710c5d
Rollup merge of #53052 - redroc:master, r=QuietMisdreavus
fixed broken links to char

fixes https://github.com/rust-lang/rust/issues/32129
2018-08-07 16:55:40 +08:00
kennytm
35d752f130
Rollup merge of #53028 - Mark-Simulacrum:split-out-codegen, r=alexcrichton
Building librustc_codegen_llvm in a separate directory

This allows clearing it out and building it separately from the
compiler. Since it's essentially a different and separate crate this
makes sense to do, each cargo invocation should generally happen in its
own directory.

r? @alexcrichton
2018-08-07 16:55:38 +08:00
kennytm
2c388e0e9f
Rollup merge of #52886 - petrochenkov:noga, r=alexcrichton
cleanup: Remove `Def::GlobalAsm`

Global asm is not something that needs to have a `Def` or `DefId`.
2018-08-07 16:55:37 +08:00
kennytm
4176888c98
Rollup merge of #52885 - Mark-Simulacrum:cleanup-typeck, r=nikomatsakis
Remove some unused method arguments from typeck

None
2018-08-07 16:55:36 +08:00
bors
9e472c2ace Auto merge of #52450 - PramodBisht:issue/52413, r=estebank
Closes #52413: Provide structured suggestion instead of label

Provide structured suggestion instead of label
r? @estebank
2018-08-07 08:50:12 +00:00
Esteban Küber
daa5bd35a8 fix typo 2018-08-06 23:46:28 -07:00
Esteban Küber
cce4ea5149 Point at correct span when missing comma in println 2018-08-06 20:54:51 -07:00
Esteban Küber
4862eee8b7 Suggest comma when writing println!("{}" a); 2018-08-06 20:26:21 -07:00
bors
11a902431b Auto merge of #51007 - AstralSorcerer:master, r=nagisa
Make globals with private linkage unnamed. Fixes #50862.

cc @oli-obk @nagisa
2018-08-07 02:12:35 +00:00
Dan Callaghan
ce1def176d
set emit_debug_gdb_scripts: false for riscv32imac-unknown-none target
Same as the other embedded targets, see:
https://github.com/rust-lang/rust/pull/49728

This is a temporary workaround for #44993.
2018-08-07 11:01:22 +10:00
bors
f9b9b6e078 Auto merge of #53134 - alexcrichton:tweak-travis, r=Mark-Simulacrum
More debugging for travis shutting down

Requested by Travis!
2018-08-07 00:07:56 +00:00
bors
45a9d410f9 Auto merge of #53016 - scottmcm:impl-header-lifetime-elision, r=nikomatsakis
Extract impl_header_lifetime_elision out of in_band_lifetimes

This way we can experiment with `impl Debug for &MyType` separately from `impl Debug for &'a MyType`.

I can't say I know what the code in here is doing, so please let me know if there's a better way 🙂

I marked this as enabled in 2018 so that edition code continues to work without another flag.

Actual feature PR https://github.com/rust-lang/rust/pull/49251; Tracking Issue https://github.com/rust-lang/rust/issues/15872; In-band lifetimes tracking issue https://github.com/rust-lang/rust/issues/44524.

cc @aturon, per discussion on discord earlier
cc @cramertj & @nikomatsakis, who actually wrote these features
2018-08-06 21:45:32 +00:00