77489 Commits

Author SHA1 Message Date
Simonas Kazlauskas
7ec0452190 Force frame pointers for the backtrace test 2018-05-01 10:44:45 +03:00
Simonas Kazlauskas
969449f236 Don’t eliminate frame pointers on apple by default 2018-05-01 10:44:44 +03:00
Simonas Kazlauskas
09d2db4e96 Rework force-frame-pointer
This reworks the force-frame-pointer PR to explicitly only consider the
value of the flag if it is provided, and use a target default otherwise.

Something that was tried but not kept was renaming the flag to
`frame-pointer`, because for flag `frame-pointer=no`, there is no
guarante, that LLVM will elide *all* the frame pointers; oposite of what
the literal reading of the flag would suggest.
2018-05-01 10:44:44 +03:00
Björn Steinbrink
5b800c231f Don't force-enable frame pointers when generating debug info
We apparently used to generate bad/incomplete debug info causing
debuggers not to find symbols of stack allocated variables. This was
somehow worked around by having frame pointers.

With the current codegen, this seems no longer necessary, so we can
remove the code that force-enables frame pointers whenever debug info
is requested.

Since certain situations, like profiling code profit from having frame
pointers, we add a -Cforce-frame-pointers flag to always enable frame
pointers.

Fixes #11906
2018-05-01 10:44:44 +03:00
bors
2a8ad90930 Auto merge of #50197 - nikomatsakis:skolemize-out-of-tcx, r=eddyb
move skolemized regions into global tcx

Experimental branch to move skolemized regions into global tcx. This is probably not what we want long term but may be convenient to unblock @sgrif in the short term.

I'd like to do a perf run, though the main concern I guess would be memory usage.

r? @eddyb
2018-05-01 00:16:16 +00:00
bors
357bf00f1c Auto merge of #48925 - zackmdavis:fn_must_stabilize, r=nikomatsakis
stabilize `#[must_use]` for functions and must-use comparison operators (RFC 1940)

r? @nikomatsakis
2018-04-30 22:02:33 +00:00
Niko Matsakis
149ab1bc39 put ReSkolemized into the global tcx 2018-04-30 14:06:46 -04:00
Niko Matsakis
69400751ab make needs_infer specific to inference variables
Notably, excluding ReSkolemized
2018-04-30 14:06:45 -04:00
Niko Matsakis
2e59e467a0 remove some (apparently) dead code 2018-04-30 13:36:43 -04:00
bors
17841cc97a Auto merge of #50345 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

Successful merges:

 - #50233 (Make `Vec::new` a `const fn`)
 - #50312 (Add more links in panic docs)
 - #50316 (Fix some broken links in docs.)
 - #50325 (Add a few more tests for proc macro feature gating)
 - #50327 (Display correct unused field suggestion for nested struct patterns)
 - #50330 (check that #[used] is used only on statics)
 - #50344 (Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca)

Failed merges:
2018-04-30 17:30:55 +00:00
kennytm
6166f20571
Rollup merge of #50344 - SimonSapin:cargo, r=alexcrichton
Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca
2018-05-01 01:18:43 +08:00
kennytm
909ba8aa78
Rollup merge of #50330 - japaric:used, r=nagisa
check that #[used] is used only on statics

this attribute has no effect on other items. This makes the implementation match what's described in the RFC.

cc #40289

r? @nagisa
2018-05-01 01:18:41 +08:00
kennytm
cbbdf998ed
Rollup merge of #50327 - varkor:match-unused-struct-field, r=estebank
Display correct unused field suggestion for nested struct patterns

Extends https://github.com/rust-lang/rust/pull/47922 by checking more sophisticated patterns (e.g. references, slices, etc.).
Before:
```
warning: unused variable: `bar`
  --> src/main.rs:37:21
   |
37 |         &Foo::Bar { bar } => true,
   |                     ^^^ help: consider using `_bar` instead
   |
   = note: #[warn(unused_variables)] on by default
```
After:
```
warning: unused variable: `bar`
  --> src/main.rs:37:21
   |
37 |         &Foo::Bar { bar } => true,
   |                     ^^^ help: try ignoring the field: `bar: _`
   |
   = note: #[warn(unused_variables)] on by default
```

Fixes #50303.

r? @estebank
2018-05-01 01:18:40 +08:00
kennytm
30c990b693
Rollup merge of #50325 - petrochenkov:pmgate, r=alexcrichton
Add a few more tests for proc macro feature gating
2018-05-01 01:18:39 +08:00
kennytm
b239293895
Rollup merge of #50316 - ehuss:fix-doc-links, r=frewsxcv
Fix some broken links in docs.
2018-05-01 01:18:38 +08:00
kennytm
1308d99cac
Rollup merge of #50312 - Pazzaz:master, r=GuillaumeGomez
Add more links in panic docs

Fixes #48695 by adding a link to `AssertUnwindSafe`. Also added some other links in the module's docs to make things clearer.
2018-05-01 01:18:37 +08:00
kennytm
b88c152784
Rollup merge of #50233 - mark-i-m:const_vec, r=kennytm
Make `Vec::new` a `const fn`

`RawVec::empty/_in` are a hack. They're there because `if size_of::<T> == 0 { !0 } else { 0 }` is not allowed in `const` yet. However, because `RawVec` is unstable, the `empty/empty_in` constructors can be removed when #49146 is done...
2018-05-01 01:18:36 +08:00
bors
4745092d60 Auto merge of #50163 - kornelski:error, r=Kimundi
Bury Error::description()

Second attempt of #49536 https://github.com/rust-lang/rfcs/pull/2230

The exact wording of the default implementation is still up in the air, but I think it's a detail that can be amended later.
2018-04-30 15:17:01 +00:00
Simon Sapin
21941c8129 Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca 2018-04-30 17:04:42 +02:00
bors
64e6dda0bc Auto merge of #50326 - ollie27:rustdoc_cross_crate_const_link, r=GuillaumeGomez
rustdoc: Fix links to constants in external crates

r? @GuillaumeGomez
2018-04-30 10:30:14 +00:00
bors
7fbc4d881d Auto merge of #50272 - scottmcm:termination-test-error, r=nikomatsakis
Add a ui test for an incorrect Result success type in a #[test]

cc https://github.com/rust-lang/rust/issues/48854#issuecomment-384730601
r? @nikomatsakis
2018-04-30 07:48:50 +00:00
Jorge Aparicio
bd4ebf28bd check that #[used] is used only on statics 2018-04-30 07:43:22 +02:00
bors
9ff8ec8fdf Auto merge of #50204 - Manishearth:approx-enum, r=estebank
Use enum for approximate suggestions

r? @nrc @killercup
2018-04-30 05:38:06 +00:00
bors
f900bcf35c Auto merge of #50261 - nrc:update, r=kennytm
Update Rustfmt

r? @kennytm

Updates rustfmt, should fix the broken tests, but I can't reproduce locally, so who knows?
2018-04-30 02:32:52 +00:00
Nick Cameron
410e2011bd Update Rustfmt 2018-04-30 14:10:30 +12:00
varkor
2eb8343af1 Correct unused field warning on struct match container patterns 2018-04-30 01:27:37 +01:00
bors
78bcd9b5fe Auto merge of #50092 - abonander:issue-49934, r=petrochenkov
Warn on pointless #[derive] in more places

This fixes the regression in #49934 and ensures that unused `#[derive]` invocations on statements, expressions and generic type parameters survive to trip the `unused_attributes` lint. There is a separate warning hardcoded for `#[derive]` on macro invocations since linting (even the early-lint pass) occurs after expansion. This also adds regression tests for some nodes that were already warning properly.

closes #49934
2018-04-30 00:18:49 +00:00
varkor
8e8fe9042c Correct unused field warning on box struct match 2018-04-30 00:51:02 +01:00
varkor
cc53db8bf9 Correct unused field warning on &struct match 2018-04-30 00:40:11 +01:00
Austin Bonander
f16d2ff7ec Warn on pointless #[derive] in more places
This fixes the regression in #49934 and ensures that unused `#[derive]`s on statements, expressions and generic type parameters survive to trip the `unused_attributes` lint. For `#[derive]` on macro invocations it has a hardcoded warning since linting occurs after expansion. This also adds regression testing for some nodes that were already warning properly.

closes #49934
2018-04-29 16:01:41 -07:00
Oliver Middleton
7232df7d5a rustdoc: Fix links to constants in external crates 2018-04-29 23:28:39 +01:00
Mark Mansi
f9f992379d heh, logic is hard 2018-04-29 17:27:17 -05:00
Vadim Petrochenkov
0a6e91bdbc Add a few more tests for proc macro feature gating 2018-04-30 01:19:12 +03:00
Mark Mansi
e5280e452f use const trick 2018-04-29 17:13:49 -05:00
bors
774a6a3c4b Auto merge of #50317 - varkor:repr-align-assign, r=nagisa
Improve error message for #[repr(align=x)]

Before:
```
error[E0552]: unrecognized representation hint
 --> src/main.rs:1:8
  |
1 | #[repr(align="8")]
  |        ^^^^^^^^^
```
After:
```
error[E0693]: incorrect `repr(align)` attribute format
 --> src/main.rs:1:8
  |
2 | #[repr(align="8")]
  |        ^^^^^^^^^ help: use parentheses instead: `align(8)`
```

Fixes #50314.
2018-04-29 21:55:50 +00:00
varkor
35fe2998c0 Add test for repr(align=x) 2018-04-29 18:46:41 +01:00
varkor
a815f753bc Add error when using repr(align=x) instead of repr(align(x)) 2018-04-29 18:42:43 +01:00
Eric Huss
269d279094 Fix some broken links in docs. 2018-04-29 10:15:40 -07:00
bors
79252ff4e2 Auto merge of #48605 - KiChjang:unused-mut-warning, r=nikomatsakis
Allow MIR borrowck to catch unused mutable locals

Fixes #47279.

r? @nikomatsakis
2018-04-29 16:25:04 +00:00
bors
96e182833b Auto merge of #50217 - z4v1er:patch-1, r=aturon
Fix typo
2018-04-29 14:08:59 +00:00
bors
d450f99138 Auto merge of #50300 - phansch:update_clippy, r=oli-obk
Update clippy

First time doing this. Not sure if this is enough as the docs mention that the Cargo.lock should be updated, however running `cargo update -p clippy` and `./x.py` doesn't change anything.

Closes https://github.com/rust-lang-nursery/rust-clippy/issues/2700

r? @oli-obk
2018-04-29 11:58:45 +00:00
Pazzaz
368fe37c22 Add more links in panic docs 2018-04-29 13:45:33 +02:00
bors
87d3250445 Auto merge of #50306 - alexcrichton:inline-policy, r=sfackler
std: Inline `DefaultResizePolicy::new`

This should allow us to tighten up the [codegen][example] a bit more, avoiding a
function call across object boundaries in the default optimized case.

[example]: https://play.rust-lang.org/?gist=c1179088b0f8a4dcd93a9906463f993d&version=stable&mode=release
2018-04-29 09:22:10 +00:00
Keith Yeung
0a1cb9b914 Add the actual used mutable var to the set 2018-04-28 22:25:57 -07:00
Niko Matsakis
ded0697679 Return RootPlace in is_mutable 2018-04-28 22:25:57 -07:00
Zack M. Davis
3dbdccc6a9 stabilize #[must_use] for functions and must-use operators
This is in the matter of RFC 1940 and tracking issue #43302.
2018-04-28 20:32:49 -07:00
Zack M. Davis
c659faba8d in which the fn-must-use codepath is prevented from panicking on closure
The must-use lint needs the DefId of called functions and method
receivers in order to look for a `#[must_use]` attribute, but this would
ICE (!) if a called function was actually a closure (with a non-unit
return value). Instead, let's be specific that we want a `Def::Fn`,
rather than blithely assuming that we can get the DefId of a qpath.

Supporting must-use closures doesn't seem like a priority, but could
conceivably be added in the future if desired (conditional on the
statement and expression attributes (#15701) story being amicable).
2018-04-28 20:32:49 -07:00
bors
f76f6fbdea Auto merge of #50271 - sinkuu:fix_ice, r=eddyb
Fix ICE #48984

* ~~fbf6423  The tail type was not normalized.~~
* d0839d5680  The method had a wrong assumption that something whose parent is a trait is an associated item. Fixes #48984.
2018-04-29 03:01:09 +00:00
Mark Mansi
0212e0230a feature on test 2018-04-28 20:59:25 -05:00
bors
f4c1f0ce93 Auto merge of #50188 - alexcrichton:feature-all-the-things, r=eddyb
Add `-C target-feature` to all functions

Previously the features specified to LLVM via `-C target-feature` were only
reflected in the `TargetMachine` but this change *also* reflects these and the
base features inside each function itself. This change matches clang and...

Closes rust-lang-nursery/stdsimd#427
2018-04-28 23:49:28 +00:00