Commit graph

17838 commits

Author SHA1 Message Date
Vadim Petrochenkov
020961d880 Prohibit access to private statics from other crates through macros 2.0 2017-12-21 03:17:19 +03:00
Vadim Petrochenkov
190adc0e19 Properly check traits in type privacy 2017-12-21 03:17:19 +03:00
Vadim Petrochenkov
53779ed5ec Check associated type bindings for privacy and stability 2017-12-21 03:17:19 +03:00
Vadim Petrochenkov
8dcd26a6df Add tests for associated item privacy 2017-12-21 03:17:19 +03:00
bors
7eb64b86ce Auto merge of #46583 - scottmcm:fix-static-i128-lower, r=eddyb
Fix -Z lower_128bit_ops handling of statics

Avoids ICEs such as the following:
>  error: internal compiler error: src\librustc_metadata\cstore_impl.rs:131:
>  get_optimized_mir: missing MIR for `DefId(8/0:40 ~
>  compiler_builtins[9532]::int[0]::addsub[0]::rust_i128_addo[0])`

r? @nagisa

cc #45676 @est31
2017-12-20 17:34:17 +00:00
kennytm
94b864ccd0 Rollup merge of #46856 - estebank:missing-in-impl-def-span, r=arielb1
Point at def span in "missing in impl" error
2017-12-20 21:22:04 +08:00
kennytm
0c29c7b1e4 Rollup merge of #46851 - petrochenkov:tospace, r=estebank
Fix whitespacing issues in pretty-printing of bounds

cc https://github.com/rust-lang/rust/pull/46827#discussion_r157603277
2017-12-20 21:22:02 +08:00
kennytm
99fdca077c Rollup merge of #46835 - topecongiro:bad-span-for-macro-invocation-in-type, r=petrochenkov
Remove a token after closing delimiter from the span of macro in type position

e.g.
```rust
let x = y: foo!();
```
The span for `foo!()` includes `;`.

cc https://github.com/rust-lang-nursery/rustfmt/issues/2290.
2017-12-20 21:22:00 +08:00
kennytm
16095b3601 Rollup merge of #46831 - Diggsey:float-debug-fmt, r=dtolnay
Always `Debug` floats with a decimal point

Fixes #30967

r? @dtolnay
2017-12-20 21:21:59 +08:00
kennytm
cc3f4357d3 Rollup merge of #46787 - varkor:contrib-6, r=QuietMisdreavus
Add an option to allow rustdoc to list modules by appearance

The `--sort-modules-by-appearance` option will list modules in the
order that they appear in the source, rather than sorting them
alphabetically (as is the default). This resolves #8552.
2017-12-20 21:21:56 +08:00
kennytm
8de81966cd Rollup merge of #46359 - GuillaumeGomez:remove-dead-linkage, r=QuietMisdreavus
Do not display hidden types, fixes issue 23912

Fixes #23912.

r? @QuietMisdreavus

(It's the one I was talking about a few days ago, just close it if it's useless.)
2017-12-20 21:21:50 +08:00
bors
588f7db8ef Auto merge of #46733 - nikomatsakis:nll-master-to-rust-master-5, r=arielb1
nll part 5

Next round of changes from the nll-master branch.

Extensions:

- we now propagate ty-region-outlives constraints out of closures and into their creator when necessary
- we fix a few ICEs that can occur by doing liveness analysis (and the resulting normalization) during type-checking
- we handle the implicit region bound that assumes that each type `T` outlives the fn body
- we handle normalization of inputs/outputs in fn signatures

Not included in this PR (will come next):

- handling `impl Trait`
- tracking causal information
- extended errors

r? @arielb1
2017-12-20 03:58:15 +00:00
bors
edbd7d232e Auto merge of #46441 - gaurikholkar:single_lifetimes, r=nikomatsakis
Lint against single-use lifetime names

This is a fix for #44752

TO-DO

- [x] change lint message
- [x] add ui tests

r? @nikomatsakis
2017-12-20 01:18:17 +00:00
Esteban Küber
3441ffb15e Point at def span in "missing in impl" error 2017-12-19 14:41:03 -08:00
Vadim Petrochenkov
7a95e716c7 Fix whitespacing issues in pretty-printing of bounds 2017-12-20 00:23:18 +03:00
Scott McMurray
4b95ca8db2 Fix -Z lower_128bit_ops handling of statics
Avoids ICEs such as the following:
 error: internal compiler error: src\librustc_metadata\cstore_impl.rs:131:
 get_optimized_mir: missing MIR for `DefId(8/0:40 ~
 compiler_builtins[9532]::int[0]::addsub[0]::rust_i128_addo[0])`
2017-12-19 15:08:17 -05:00
Niko Matsakis
e741dad629 adding lint for single use lifetime names 2017-12-20 00:07:10 +05:30
Seiichi Uchida
e0e62fccd2 Fix up an ui test 2017-12-20 01:21:40 +09:00
bors
a9f047c048 Auto merge of #46664 - mikeyhew:raw_pointer_self, r=arielb1
arbitrary_self_types: add support for raw pointer `self` types

This adds support for raw pointer `self` types, under the `arbitrary_self_types` feature flag. Types like `self: *const Self`, `self: *const Rc<Self>`, `self: Rc<*const Self` are all supported. Object safety checks are updated to allow`self: *const Self` and `self: *mut Self`.

This PR does not add support for `*const self` and `*mut self` syntax. That can be added in a later PR once this code is reviewed and merged.

#44874

r? @arielb1
2017-12-19 07:05:05 +00:00
bors
c8b94c6aa1 Auto merge of #46829 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 11 pull requests

- Successful merges: #46700, #46786, #46790, #46800, #46801, #46802, #46804, #46805, #46812, #46824, #46825
- Failed merges:
2017-12-19 04:21:05 +00:00
Diggory Blake
3e98f18280 Always print floats with a decimal point with the Debug formatter 2017-12-19 01:35:35 +00:00
varkor
b3c6102be3 Add a test for --sort-modules-by-appearance 2017-12-19 01:05:06 +00:00
Guillaume Gomez
c68c4b510c Rollup merge of #46812 - kennytm:fix-align-offset-sign, r=petrochenkov
Fix the wrong subtraction in align_offset intrinsic.

Given how the stage0 implementation in #43903 is written, as well as that in the RFC, I suppose the current implementation has a typo.

cc #44488, cc @oli-obk.
2017-12-18 23:08:39 +01:00
Guillaume Gomez
325d9fb8f6 Rollup merge of #46805 - estebank:unnecessary-unsafe-spans, r=arielb1
Tweak "unecessary unsafe block" error spans
2017-12-18 23:08:38 +01:00
Guillaume Gomez
3a2becbd84 Rollup merge of #46804 - estebank:conflicting-impl-def-span, r=arielb1
Use def span for conflicting impls and recursive fn
2017-12-18 23:08:37 +01:00
Guillaume Gomez
015502c4c5 Rollup merge of #46802 - estebank:redefined-def-span, r=michaelwoerister
Point at def span on redefined name diagnostic
2017-12-18 23:08:35 +01:00
Guillaume Gomez
12cd45286e Rollup merge of #46801 - estebank:impl-extra-req-def-span, r=arielb1
Point at def span in "impl has stricter requirements" diagnostic
2017-12-18 23:08:34 +01:00
Guillaume Gomez
6cc58b3fe8 Rollup merge of #46800 - estebank:expected-closure-def-span, r=arielb1
Rework expected closure error

* point at def span
* add label to primary span
* use `span_label`s instead of `span_note`s
2017-12-18 23:08:33 +01:00
Guillaume Gomez
723190752b Rollup merge of #46786 - GuillaumeGomez:fix-sized-rendering, r=QuietMisdreavus
Fix ?Sized where bound not being displayed at the correct place

Fixes #46726.

r? @QuietMisdreavus
2017-12-18 23:08:31 +01:00
Guillaume Gomez
03530ee1a7 Add tests for hidden types 2017-12-18 23:07:19 +01:00
bors
e7db42fb5b Auto merge of #46808 - eddyb:issue-46769-quick, r=arielb1
rustc: ensure optimized enums have a properly aligned size.

Fixes #46769 by padding the optimized enums wrapping packed data as necessary.

Note that this is not the only way to solve this - on nightly, #46436 makes it easier to fix without adding new padding because of the replacement of `packed` flags with a non-redundant scheme.
But because it can't be backported, the optimal fix will be in a separate nightly-only PR (#46809).
2017-12-18 20:44:18 +00:00
Eduard-Mihai Burtescu
087f1c23a7 rustc: ensure optimized enums have a properly aligned size. 2017-12-18 21:31:52 +02:00
Esteban Küber
e1dc7ac33c Tweak "unecessary unsafe block" error spans 2017-12-18 11:11:35 -08:00
Esteban Küber
0555d256dd Rework expected closure error
* point at def span
* add label to primary span
* use `span_label`s instead of `span_note`s
2017-12-18 08:55:52 -08:00
Esteban Küber
c08dab841d Point at def span in "impl has stricter requirements" diagnostic 2017-12-18 08:54:20 -08:00
kennytm
749d8a880f
Fix the wrong subtraction in align_offset intrinsic. 2017-12-18 22:52:24 +08:00
Michael Woerister
a3c3245e91 incr.comp.: Mark DepKind node as input. 2017-12-18 15:40:07 +01:00
Guillaume Gomez
0df39bfff7 Fix ?Sized where bound not being displayed at the correct place 2017-12-18 10:44:26 +01:00
Esteban Küber
ea64ab7d4e Use def span for conflicting impls and recursive fn 2017-12-17 23:46:55 -08:00
Esteban Küber
61181aeead Point at def span on redefined name diagnostic 2017-12-17 22:44:32 -08:00
Vadim Petrochenkov
70e5c37319 syntax: recovery for incorrect associated item paths like [T; N]::clone 2017-12-17 19:00:50 +03:00
Michael Hewson
5c656f0c72 update ui/arbitrary-self-types-not-object-safe with shorter error message 2017-12-17 10:16:41 +01:00
Michael Hewson
23555b9f12 fix ui test
had to tell the test suite that it's supposed to compile
2017-12-17 10:13:09 +01:00
Michael Hewson
63ce99c6f8 add a ui test for the inference variable warning 2017-12-17 10:13:09 +01:00
Michael Hewson
0cc573a9ee better variable names in tests 2017-12-17 10:13:09 +01:00
Michael Hewson
4cae2c087d Add tests with *const Rc<Self> and similar self types 2017-12-17 10:13:09 +01:00
Michael Hewson
428b0259b6 remove test for issue #26194 because it is now redundant 2017-12-17 10:13:09 +01:00
Michael Hewson
c5fc7c5293 update error message in test/compile-fail/issue-26194.rs 2017-12-17 10:13:09 +01:00
Michael Hewson
cb9f552b7c Add a feature_gate test for raw pointer self 2017-12-17 10:13:09 +01:00
Michael Hewson
361b3db886 implement raw-pointer self. Works for traits, including trait objects, but not structs 2017-12-17 10:13:09 +01:00