Commit graph

21441 commits

Author SHA1 Message Date
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
John Kåre Alsaker
221b7ca3c2 Remove usages of Term::as_str and mark it for removal 2018-04-30 05:27:05 +02: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
Vadim Petrochenkov
0a6e91bdbc Add a few more tests for proc macro feature gating 2018-04-30 01:19:12 +03: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
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
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
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
Alex Crichton
622371153c 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 14:28:15 -07:00
Anthony Ramine
69ec4aa97c Mark functions returning uninhabited types as noreturn 2018-04-28 21:10:01 +02:00
bors
68a09fc539 Auto merge of #50164 - nox:rval-range-metadata, r=eddyb
Emit range metadata on calls returning scalars (fixes #50157)
2018-04-28 17:59:25 +00:00
bors
1e01e22509 Auto merge of #50295 - SergioBenitez:master, r=alexcrichton
Don't feature gate bang macros on 'proc_macro_path_invoc'.

Fixes oversight from #50120.
2018-04-28 15:33:31 +00:00
Guillaume Gomez
00bbda16a7 Add query search order check 2018-04-28 17:21:12 +02:00
bors
ff65726ebf Auto merge of #50155 - est31:label_expressions, r=petrochenkov
'label can start expressions

```Rust
let foo = 'label: loop { break 'label 42; };
```

is valid Rust code.
2018-04-28 10:08:56 +00:00
Keith Yeung
5a2b590ec0 Track unused mutable variables across closures 2018-04-28 01:55:25 -07:00
Sergio Benitez
f756b072b3 Don't feature gate bang macros on 'proc_macro_path_invoc'. 2018-04-27 21:32:41 -07:00
bors
1eb0cef62b Auto merge of #50149 - aaronaaeng:master, r=estebank
Added warning for unused arithmetic expressions

The compiler now displays a warning when a binary arithmetic operation is evaluated but not used.  This resolves #50124  by following the instructions outlined in the issue.  The changes are as follows:

- Added new pattern matching for unused arithmetic expressions in `src/librustc_lint/unused.rs`
- Added `#[must_use]` attributes to the binary operation methods in `src/libcore/internal_macros.rs`
- Added `#[must_use]` attributes to the non-assigning binary operators in `src/libcore/ops/arith.rs`
2018-04-28 04:14:12 +00:00
Shotaro Yamada
9fc2595802 Make trait_of_item return None for non associated items
It have returned `Some` for constants in a trait definition,
and `Instance::resolve` called `tcx.associated_item` for them,
causing ICE.
2018-04-28 10:49:45 +09:00
bors
ede7f94794 Auto merge of #49822 - matthewjasper:dropck-closures, r=nikomatsakis
Access individual fields of tuples, closures and generators on drop.

Fixes #48623, by extending the change in #47917 to closures. Also does this for tuples and generators for consistency.

Enums are unchanged because there is now way to borrow `*enum.field` without borrowing `enum.field` at the moment, so any error would be reported when the enum goes out of scope. Unions aren't changed because unions they don't automatically drop their fields.

r? @nikomatsakis
2018-04-27 23:31:43 +00:00
kennytm
dc6b167e22
Rollup merge of #50257 - estebank:fix-49560, r=nikomatsakis
Don't ICE on tuple struct ctor with incorrect arg count

Fix #49560.
2018-04-28 04:51:00 +08:00
Matthew Jasper
902bc0fb1a Access individual fields of tuples, closures and generators on drop. 2018-04-27 20:41:30 +01:00
kennytm
3f84ce2e0e
Rollup merge of #50273 - Amanieu:issue-49532, r=alexcrichton
Allow #[inline] on closures

Fixes #49632
2018-04-28 03:32:18 +08:00
kennytm
8b36d9abaa
Rollup merge of #49968 - christianpoveda:stabilize_dyn, r=nikomatsakis
Stabilize dyn trait

This PR stabilizes RFC 2113. I followed the [stabilization guide](https://forge.rust-lang.org/stabilization-guide.html).

Related issue: https://github.com/rust-lang/rust/issues/49218
2018-04-28 03:32:12 +08:00
Christian Poveda
b80472d84c fixed tests 2018-04-27 11:02:36 -05:00
Christian Poveda
4bf35f93c9 updated stderr files and removed feature-gate test for dyn_trait 2018-04-27 10:05:51 -05:00
Christian Poveda
0efb5677d7 dyn_trait feature-gate just for stage0 2018-04-27 10:04:58 -05:00
Christian Poveda
c86f1c8cc3 removed dyn_trait feature from tests 2018-04-27 10:04:35 -05:00
Christian Poveda
199ee32773 stop requiring the feature-gate to use dyn_trait 2018-04-27 10:04:02 -05:00
Amanieu d'Antras
5f2c111165 Allow #[inline] on closures
Fixes #49632
2018-04-27 12:34:01 +02:00
bors
ada45fd49a Auto merge of #50275 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

Successful merges:

 - #49707 (Add "the Rustc book")
 - #50222 (Bump bootstrap compiler to 2018-04-24)
 - #50227 (Fix ICE with erroneous `impl Trait` in a trait impl)
 - #50229 (Add setting to go to item if there is only one result)
 - #50231 (Add more doc aliases)
 - #50246 (Make dump_{alloc,allocs,local}() no-ops when tracing is disabled.)
 - #49894 (Rename InternedString to LocalInternedString and introduce a new thread-safe InternedString)

Failed merges:
2018-04-27 09:59:12 +00:00
kennytm
3f4e5b28b9
Rollup merge of #50227 - sinkuu:ice_non_local_trait, r=estebank
Fix ICE with erroneous `impl Trait` in a trait impl

Fixes #49841.
2018-04-27 16:23:24 +08:00
bors
9822b5709c Auto merge of #49891 - cuviper:compiletest-crash, r=alexcrichton
compiletest: detect non-ICE compiler panics

Fixes #49888, but will be blocked by revealing #49889.
2018-04-27 07:43:46 +00:00
Scott McMurray
f0069b8486 Add a ui test for an incorrect Result success type in a #[test] 2018-04-26 21:33:05 -07:00
bors
8a09bc6a77 Auto merge of #48995 - aravind-pg:canonical-query, r=nikomatsakis
Create a canonical trait query for `evaluate_obligation`

This builds on the canonical query machinery introduced in #48411 to introduce a new canonical trait query for `evaluate_obligation` in the trait selector. Also ports most callers of the original `evaluate_obligation` to the new system (except in coherence, which requires support for intercrate mode). Closes #48537.

r? @nikomatsakis
2018-04-27 03:53:39 +00:00
bors
e05b78daa6 Auto merge of #49420 - nox:enum-scalarpair, r=eddyb
Use ScalarPair for tagged enums
2018-04-27 01:30:10 +00:00
Aravind Gollakota
e423dcc713 Update a compile-fail test 2018-04-26 20:28:30 -05:00
Aravind Gollakota
bc16b8e92a Port existing callers of evaluate_obligation to the new canonical trait query
Except the one in coherence, which needs support for intercrate mode.
2018-04-26 20:28:30 -05:00
bors
7d8f0e22f5 Auto merge of #50253 - nikomatsakis:regressions-2018-04-26, r=eddyb
drop elaboration should reveal all

This used to happen implicitly through the normalization function; but we now keep the param-env as is, which seems less surprising.

cc #49685

r? @eddyb
2018-04-26 23:11:39 +00:00
Vadim Petrochenkov
c1492fe303 Add one more prelude layer for extern crate names passed with --extern 2018-04-27 00:46:55 +03:00
Esteban Küber
d92d1935cb Don't ICE on tuple struct ctor with incorrect arg count 2018-04-26 14:19:21 -07:00
Anthony Ramine
90656441a9 Emit range metadata on calls returning scalars (fixes #50157) 2018-04-26 22:02:23 +02:00
Niko Matsakis
86e9a7ac43 add regression test
Fixes #49685
2018-04-26 13:42:22 -04:00