Commit Graph

77515 Commits

Author SHA1 Message Date
bors
4d7bbdd826 Auto merge of #49789 - petrochenkov:prelext, r=nikomatsakis
Module experiments: Add one more prelude layer for extern crate names passed with `--extern`

Implements one item from https://internals.rust-lang.org/t/the-great-module-adventure-continues/6678/183

When some name is looked up in lexical scope (`name`, i.e. not module-relative scope `some_mod::name` or `::name`), it's searched roughly in the next order:
- local variables
- items in unnamed blocks
- items in the current module
-  NEW!  crate names passed with `--extern` ("extern prelude")
- standard library prelude (`Vec`, `drop`)
- language prelude (built-in types like `u8`, `str`, etc)

The last two layers contain a limited set of names controlled by us and not arbitrary user-defined names like upper layers. We want to be able to add new names into these two layers without breaking user code, so "extern prelude" names have higher priority than std prelude and built-in types.
This is a one-time breaking change, that's why it would be nice to run this through crater.
Practical impact is expected to be minimal though due to stylistic reasons (there are not many `Uppercase` crates) and due to the way how primitive types are resolved (https://github.com/rust-lang/rust/pull/32131).
2018-05-01 16:58:26 +00:00
bors
0d8321b5e8 Auto merge of #50198 - oli-obk:const_prop, r=eddyb
Remove some unused code
2018-05-01 12:16:14 +00:00
Oliver Schneider
487f7bc016
Merge adjacent write! invocations 2018-05-01 12:26:58 +02:00
bors
a4a7947259 Auto merge of #49724 - kennytm:range-inc-start-end-methods, r=Kimundi
Introduce RangeInclusive::{new, start, end} methods and make the fields private.

cc #49022
2018-05-01 10:10:46 +00:00
bors
0eb68b797b Auto merge of #48786 - nagisa:fp, r=nikomatsakis
Add force-frame-pointer flag to allow control of frame pointer ommision

Rebase of #47152 plus some changes suggested by https://github.com/rust-lang/rust/issues/48785.

Fixes #11906

r? @nikomatsakis
2018-05-01 08:05:51 +00:00
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
491512ba1e Auto merge of #50304 - nox:uninhabited-output, r=eddyb
Mark functions returning uninhabited types as noreturn
2018-05-01 05:52:12 +00: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
kennytm
f70b2ebd08
new() should be const; start()/end() after iteration is unspecified. 2018-05-01 01:45:18 +08:00
kennytm
c916ee8511
Removed direct field usage of RangeInclusive in rustc itself. 2018-05-01 01:45:18 +08: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
Oliver Schneider
f66367dacc
Improve div by zero const eval errors 2018-04-30 18:29:15 +02:00
Oliver Schneider
1f3cb926a2
Update Cargo.lock 2018-04-30 18:29:15 +02:00
Oliver Schneider
01158eaec6
Unify MIR assert messages and const eval errors 2018-04-30 18:29:15 +02:00
Oliver Schneider
5f46e5cc7e
Update ui test output 2018-04-30 18:18:33 +02:00
Oliver Schneider
cefcf0548e
Merge ConstMathError into EvalErrorKind 2018-04-30 18:18:33 +02:00
Oliver Schneider
671b2a5964
Remove the rustc_const_math crate 2018-04-30 18:18:33 +02:00
Oliver Schneider
cf103e56bd
Reintroduce the float parsing error 2018-04-30 18:18:33 +02:00
Oliver Schneider
40b118cf47
Remove ConstFloat 2018-04-30 18:18:33 +02:00
Oliver Schneider
f45d0f3783
Removed unused dependencies on rustc_const_math 2018-04-30 18:18:33 +02:00
Oliver Schneider
a9366aa874
Remove unused const math ops 2018-04-30 18:18:33 +02:00
Oliver Schneider
d1d8d999ba
Remove unused const error variant 2018-04-30 18:18:32 +02:00
Oliver Schneider
0aa6e039d0
Remove the UnequalTypes error variant 2018-04-30 18:18:32 +02:00
Oliver Schneider
7d982fdcf4
Implement PartialCmp for ConstFloat 2018-04-30 18:18:32 +02:00
Oliver Schneider
7def638e42
Comment typo 2018-04-30 18:18:32 +02:00
Oliver Schneider
21c2b71405
Remove unused error variants 2018-04-30 18:18:32 +02: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
kennytm
fba903a435
Make the fields of RangeInclusive private.
Added new()/start()/end() methods to RangeInclusive.

Changed the lowering of `..=` to use RangeInclusive::new().
2018-04-30 21:01:13 +08: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