Commit Graph

81016 Commits

Author SHA1 Message Date
Oliver Schneider b6e0547680 Allow individual lints to opt into being reported in external macros 2018-07-20 22:45:52 +02:00
kennytm 7bf3578a39
Rollup merge of #52573 - oli-obk:cleanups, r=RalfJung
Cleanups

r? @RalfJung
2018-07-21 04:08:12 +08:00
kennytm a9a4f06254
Rollup merge of #52540 - alexcrichton:tweak-script, r=kennytm
Fix docker/run.sh script when run locally

Switch a `mkdir $foo` to `mkdir -p $foo` to handle the case that this script is
being run locally and has previously executed.
2018-07-21 04:08:11 +08:00
kennytm 863ed13c6c
Rollup merge of #52539 - alexcrichton:two-attrs, r=petrochenkov
rustc: Fix two custom attributes with custom derive

This commit fixes an issue where multiple custom attributes could not be fed
into a custom derive in some situations with the `use_extern_macros` feature
enabled. The problem was that the macro expander didn't consider that it was
making progress when we were deducing that attributes should be lumped in with
custom derive invocations.

The fix applied here was to track in the expander if our attribute is changing
(getting stashed away elsewhere and replaced with a new invocation). If it is
swapped then it's considered progress, otherwise behavior should remain the
same.

Closes #52525
2018-07-21 04:08:10 +08:00
kennytm 63da8122fb
Rollup merge of #52527 - ljedrz:cleanup_13973, r=oli-obk
Remove duplicate E0396 tests

Resolves FIXME #13973 (erroneously marked as #13972). A test for E0396 already exists in `test/ui/const-deref-ptr.rs`.
2018-07-21 04:08:09 +08:00
kennytm 1ed1b13090
Rollup merge of #52526 - ljedrz:cleanup_18800, r=alexcrichton
Enable run-pass/sepcomp-lib-lto.rs on Android

#18800 is fixed, so it should be safe to restore this test.
2018-07-21 04:08:07 +08:00
kennytm 9a273a3d66
Rollup merge of #52505 - alexcrichton:remove-thinlto-hack, r=nikomatsakis
rustc: Remove a workaround in ThinLTO fixed upstream

This commit removes a hack in our ThinLTO passes which removes available
externally functions manually. The [upstream bug][1] has long since been fixed,
so we should be able to rely on LLVM natively for this now!

[1]: https://bugs.llvm.org/show_bug.cgi?id=35736
2018-07-21 04:08:06 +08:00
kennytm c74ff6cbd4
Rollup merge of #52502 - RalfJung:rotate, r=scottmcm
fix unsafety: don't call ptr_rotate for ZST

`rotate::ptr_rotate` has a comment saying
```
/// # Safety
///
/// The specified range must be valid for reading and writing.
/// The type `T` must have non-zero size.
```
So we better make sure we don't call it on ZST...

Cc @scottmcm (author of https://github.com/rust-lang/rust/pull/41670)
2018-07-21 04:08:05 +08:00
ljedrz e3d14c4c56 Refactor a few push loops to iterators in librustc 2018-07-20 21:57:12 +02:00
Matthew Jasper a06b2433fc Update tests for new NLL mutability errors 2018-07-20 20:01:15 +01:00
Matthew Jasper 13b5f69848 Improve NLL mutability errors
* Better explain why the place is immutable
* Distinguish &T and *const T
* Use better spans when a mutable borrow is for a closure capture
2018-07-20 20:01:11 +01:00
Matthew Jasper db568e426a Move mutability error reporting to its own file 2018-07-20 20:01:11 +01:00
Matthew Jasper c3dbdfee06 MIR changes to improve NLL cannot mutate errors
Alway use unique instead of mutable borrows immutable upvars.
Mark variables that are references for a match guard
2018-07-20 20:01:11 +01:00
Manish Goregaokar d63e9257b9 Update clippy 2018-07-20 20:58:06 +02:00
Esteban Küber 9112e1a4cd fix rebase 2018-07-20 11:04:23 -07:00
bors 878dd0b5e1 Auto merge of #52354 - QuietMisdreavus:rustdoc-lints, r=GuillaumeGomez
stabilize lint handling in rustdoc

When https://github.com/rust-lang/rust/pull/51732 added CLI flags to manipulate lints in rustdoc, they were added as unstable flags. This made sense as they were new additions, but since they mirrored the flags that rustc has, it's worth considering them to not need an unstable period.

Stabilizing them also provides the opportunity for a critical fix: allowing Cargo to pass `--cap-lints allow` when documenting dependencies, the same as when it compiles them.

r? @rust-lang/rustdoc
2018-07-20 18:02:05 +00:00
Oliver Schneider 297ad72f12
Add trailing newline 2018-07-20 19:55:16 +02:00
Oliver Schneider 92fad0fa9e Add test 2018-07-20 19:35:08 +02:00
Oliver Schneider 7064f69c43 Abort instead of UB if promotion fails 2018-07-20 19:00:48 +02:00
Oliver Schneider c7d39e0c51 Remove unused method 2018-07-20 18:43:25 +02:00
Esteban Küber 70e7e7d409 Fix new test 2018-07-20 09:17:55 -07:00
Esteban Küber e1ef8ba142 Reword when `_` couldn't be inferred 2018-07-20 09:17:18 -07:00
Esteban Küber 052159be53 fix incorrect position of chars in fmt str 2018-07-20 09:15:22 -07:00
Oliver Schneider 7cab813ad9 Only methods are fn-like, not other associated items 2018-07-20 17:19:58 +02:00
Oliver Schneider e93635325b Properly scope label resolution 2018-07-20 16:18:22 +02:00
Oliver Schneider 3e832b83fe Remove outdated comment 2018-07-20 15:59:21 +02:00
Oliver Schneider 56c90774a9 Make sure the compiler actually panics on `delay_span_bug`
Even if that is just happening because of `abort_if_errors`
2018-07-20 15:59:21 +02:00
bors 509cbf3e8e Auto merge of #52498 - oli-obk:const_prop, r=nikomatsakis
Const propagate casts

fixes #49760

So... This fixes the original issue about the missing warnings.

But our test suite contains fun things like

```rust
fn foo() {}
assert_eq!(foo as i16, foo as usize as i16);
```

Which, will result in

> a raw memory access tried to access part of a pointer value as raw bytes

on both sides of the assertion. Because well... that's exactly what's going on! We're ripping out 16 bits of a pointer.
2018-07-20 13:22:36 +00:00
dylan_DPC dbb756ded7 tidy up 2018-07-20 18:40:52 +05:30
Felix S. Klock II f153be6258 For some reason, on my linux box, using `-Zverbose` here is causing a linker failure.
Rather than try to work out what was happening, I just removed the flag because
I see no reason for it to be on this test.
2018-07-20 14:26:44 +02:00
Felix S. Klock II 1185798680 Regression test for issue. 2018-07-20 14:26:40 +02:00
dylan_DPC 4e3339efda move NllLivenessMap and LocalWithRegion to liveness_map 2018-07-20 17:51:34 +05:30
Felix S. Klock II c83602a702 When type-checking binops, LHS of assign-op like `+=` is invariant.
Therefore we cannot coerce it to a supertype the same way that we can
the LHS of `+`.

Addresses issue 52126.
2018-07-20 13:12:30 +02:00
bors 3bea4d1fc6 Auto merge of #52476 - wesleywiser:categorize_queries, r=nikomatsakis
Categorize queries for later self-profiling

Change the define_queries! macro per feedback on #51657.

Big thanks to @mark-i-m for the help getting the macro changes correct!

I'm pulling this commit out of the other PR because it's hard to keep up-to-date as queries are added or changed.

r? @nikomatsakis
2018-07-20 11:10:58 +00:00
Vadim Petrochenkov 382285a01d Revert some use of `PtrKey` to fix parallel_queries build 2018-07-20 12:45:07 +03:00
Vadim Petrochenkov e7aeb2b1c7 resolve: Add more comments to in-module resolution 2018-07-20 12:22:25 +03:00
Vadim Petrochenkov 32453db332 resolve: Fully prohibit shadowing of in-scope names by globs in macro paths 2018-07-20 12:22:24 +03:00
Vadim Petrochenkov 2eb83ee527 data_structures: Add a reference wrapper for pointer-indexed maps/sets
Use `ptr::eq` for comparing pointers
2018-07-20 12:22:24 +03:00
Vadim Petrochenkov 414a86e759 resolve: Add some comments to in-module resolution 2018-07-20 12:22:24 +03:00
Vadim Petrochenkov c2533b64a3 resolve: Remove `SingleImports` in favor of a simple set 2018-07-20 12:22:24 +03:00
Vadim Petrochenkov 22143491bc resolve: Rename `global_macros` to `macro_prelude`
Rename `shadows_glob` to `shadowed_glob`
2018-07-20 12:22:24 +03:00
Vadim Petrochenkov c44f72430c resolve: Remove unused parameter from `resolve_ident_in_module` 2018-07-20 12:22:24 +03:00
bors 4260c8b1e4 Auto merge of #52467 - alexcrichton:lints-and-macros, r=Manishearth
Squash all lints tied to foreign macros by default

This PR is a continuation of https://github.com/rust-lang/rust/pull/49755 (thanks for the initial jump-start @Dylan-DPC!) and is targeted at solving https://github.com/rust-lang/rust/issues/48855. This change updates the lint infrastructure to, by default, ignore all lints emitted for code that originates in a foreign macro. For example if `println!("...")` injects some idiomatic warnings these are all ignored by default. The rationale here is that for almost all lints there's no action that can be taken if the code originates from a foreign lint.

Closes #48855
Closes #52483
Closes #52479
2018-07-20 08:54:14 +00:00
ljedrz 576cfc510a Remove duplicate E0396 tests 2018-07-20 09:47:55 +02:00
bors a5097f3d68 Auto merge of #52445 - alexcrichton:wasm-import-module, r=eddyb
rustc: Stabilize #[wasm_import_module] as #[link(...)]

This commit stabilizes the `#[wasm_import_module]` attribute as
`#[link(wasm_import_module = "...")]`. Tracked by #52090 this new directive in
the `#[link]` attribute is used to configured the module name that the imports
are listed with. The WebAssembly specification indicates two utf-8 names are
associated with all imported items, one for the module the item comes from and
one for the item itself. The item itself is configurable in Rust via its
identifier or `#[link_name = "..."]`, but the module name was previously not
configurable and defaulted to `"env"`. This commit ensures that this is also
configurable.

Closes #52090
2018-07-20 06:40:10 +00:00
Esteban Küber 85da68cb6d Rebase and fix text changed by master 2018-07-19 23:21:00 -07:00
Esteban Küber f4306ffbfc Use correct spans for format string errors
When encountering format string errors in a raw string, or regular
string literal with embedded newlines, account for the positional
change to use correct spans.

:drive by fix: 🚗
2018-07-19 23:18:07 -07:00
Esteban Küber 154dee2dcc rework println 2018-07-19 23:18:07 -07:00
Esteban Küber a47653214f Fix hir tree test 2018-07-19 23:18:07 -07:00
Esteban Küber e613bfb701 Same change as `println` for `eprintln` 2018-07-19 23:18:07 -07:00