Commit Graph

51699 Commits

Author SHA1 Message Date
Niko Matsakis
a276e755e7 introduce "call-site-scope" as the outermost scope
also, when exiting a scope, assign the final goto terminator with the
target scope's id
2016-03-23 16:42:55 -04:00
Niko Matsakis
1c0fa34310 Update borrowck to use repr::* instead of a mix
We should probably settle on some conventions here. In MIR code, I have
generally been importing `*`, but perhaps borrowck does not want to do
that.
2016-03-23 16:42:54 -04:00
Niko Matsakis
2b96cfb143 add comments on remaining fields 2016-03-23 16:42:54 -04:00
Niko Matsakis
c36707a284 Add ScopeAuxiliaryVec, return MIR+aux via tuple
It's nice to be able to index with a scope-id,
but coherence rules prevent us from implementing
`Index<ScopeId>` for `Vec<ScopeAuxiliary>`, and I'd
prefer that `ScopeAuxiliary` remain in librustc_mir,
just for compilation time reasons.
2016-03-23 16:42:54 -04:00
Niko Matsakis
70d0123082 Address nit: Remove ScopedDataVec newtype 2016-03-23 16:42:54 -04:00
Niko Matsakis
b3d2059b08 Address nit: block.unit() 2016-03-23 16:42:54 -04:00
Niko Matsakis
c1a53a60e7 Address nit: doc-comments on fields 2016-03-23 16:42:54 -04:00
Niko Matsakis
a2bab6f3e1 Address nit: use doc-comments for fields of VarDecl 2016-03-23 16:42:53 -04:00
Niko Matsakis
14a5657a9a Rename MirPlusPlus to MirAndScopeAuxiliary 2016-03-23 16:42:53 -04:00
Niko Matsakis
f66fd8972f replace DUMMY_SP on resume with span from fn 2016-03-23 16:42:53 -04:00
Niko Matsakis
cb04e495dc rewrite drop code
This was triggered by me wanting to address a use of DUMMY_SP, but
actually I'm not sure what would be a better span -- I guess the span
for the function as a whole.
2016-03-23 16:42:53 -04:00
Niko Matsakis
f976e222e9 fix bug in simplify_cfg with inf. loops 2016-03-23 16:42:53 -04:00
Niko Matsakis
a61c1759c7 allow dumping intermediate IR with -Z dump-mir 2016-03-23 16:42:53 -04:00
Niko Matsakis
0d93989cf5 adjust pretty printer to print scopes / auxiliary 2016-03-23 16:42:53 -04:00
Niko Matsakis
d32bde3311 augment MIR pretty printer to print scopes 2016-03-23 16:42:52 -04:00
Niko Matsakis
caac0b969f reformat mir text pretty printer 2016-03-23 16:42:52 -04:00
Niko Matsakis
9d00deee96 add span/scope-id to terminator 2016-03-23 16:42:52 -04:00
Niko Matsakis
3a16f57fbb extend Terminator into a struct so it can have additional fields 2016-03-23 16:42:52 -04:00
Niko Matsakis
e752d4cde3 track the innermost scope for every stmt 2016-03-23 16:37:48 -04:00
Niko Matsakis
323d7f4e98 record a scope for each VarDecl 2016-03-23 16:37:48 -04:00
Niko Matsakis
464c02e336 integrate scopes into MIR 2016-03-23 16:37:48 -04:00
bors
98f0a9128f Auto merge of #32454 - eddyb:rollup, r=eddyb
Rollup of 11 pull requests

- Successful merges: #32404, #32420, #32423, #32425, #32429, #32430, #32431, #32434, #32437, #32441, #32443
- Failed merges:
2016-03-23 12:33:04 -07:00
Tim Neumann
7027521daa add naked function tracking issue # to feature gate definition 2016-03-23 17:14:19 +01:00
Eduard-Mihai Burtescu
2e9b40f576 Rollup merge of #32443 - tclfs:patch-8, r=steveklabnik
Docs: Change "statements" to "expressions" on `match`

I apt to use `expressions` over `statements`, because `match` is a expression in essence, though it can become a statement when followed a semicolon.
2016-03-23 17:59:16 +02:00
Eduard-Mihai Burtescu
7f2612e66c Rollup merge of #32441 - tshepang:doc-primitive, r=steveklabnik
doc: small char improvements
2016-03-23 17:59:16 +02:00
Eduard-Mihai Burtescu
3fd144db0d Rollup merge of #32437 - eddyb:orbital-msvc, r=alexcrichton
Annotate run-pass/backtrace with #[rustc_no_mir] on MSVC.

Fixes #32384 by not using MIR on MSVC for the functions in the path of the backtrace.
This is the known blocker for the MSVC MIR builder, hopefully the only one overall.
r? @alexcrichton Confirmed to work on a nightly, by @retep998.
2016-03-23 17:59:16 +02:00
Eduard-Mihai Burtescu
2acad9c17e Rollup merge of #32434 - mitaa:rdoc-no-inline, r=alexcrichton
rustdoc: Consider `doc(no_inline)` in crate-local inlining

Imports with `doc(no_inline)` will not be inlined, even when `doc(inline)` is present.

fixes #32343

r? @alexcrichton
2016-03-23 17:59:16 +02:00
Eduard-Mihai Burtescu
d7bf3d3284 Rollup merge of #32431 - nicholasf:tweak/improve-expression, r=steveklabnik
Simplifying some of the phrasing explaining lifetime elision

Just simplifying some of the language expressing what kind of inference Rust can and can't do on function signatures.
2016-03-23 17:59:15 +02:00
Eduard-Mihai Burtescu
12e54bba21 Rollup merge of #32430 - sanxiyn:const-trans, r=arielb1
Fix const trans

Fix #30615.

The idea was that when there are N autoderefs, first do N-1 derefs and check for autoref. If there is autoref, done, if not, do one more deref. But when N is zero, doing one more deref is wrong.
2016-03-23 17:59:15 +02:00
Eduard-Mihai Burtescu
c028b1c02c Rollup merge of #32429 - alexcrichton:scope-id-hton, r=aturon
std: Store flowinfo/scope_id in host byte order

Apparently these aren't supposed to be stored in network byte order, so doing so
ends up causing failures when it would otherwise succeed when stored in the host
byte order.

Closes #32424
2016-03-23 17:59:15 +02:00
Eduard-Mihai Burtescu
0c424f9825 Rollup merge of #32425 - ituxbag:master, r=alexcrichton
Added version 7.3* for Apple's clang compiler

The recent 7.3 clang version was missing.

Closes #32442
2016-03-23 17:59:15 +02:00
Eduard-Mihai Burtescu
46b2a99db3 Rollup merge of #32423 - mitaa:rdoc-vstruct-fields, r=alexcrichton
rustdoc: Omit `pub` for inlined variant-struct fields

fixes #32395

r? @alexcrichton
2016-03-23 17:59:15 +02:00
Eduard-Mihai Burtescu
6b4b65afad Rollup merge of #32420 - frewsxcv:regression-test-26997, r=alexcrichton
Add regression test for Issue 26997.

https://github.com/rust-lang/rust/issues/26997
2016-03-23 17:59:14 +02:00
Eduard-Mihai Burtescu
2de428e1a2 Rollup merge of #32404 - WiSaGaN:feature/osstring-implement-default, r=aturon
Implement Default trait for OsString/OsStr

Fixes #32385
2016-03-23 17:59:14 +02:00
bors
b76f818cad Auto merge of #32390 - japaric:untry, r=pnkfelix
convert 99.9% of `try!`s to `?`s

The first commit is an automated conversion using the [untry] tool and the following command:

```
$ find -name '*.rs' -type f | xargs untry
```

at the root of the Rust repo.

[untry]: https://github.com/japaric/untry

cc @rust-lang/lang @alexcrichton @brson
2016-03-23 08:59:10 -07:00
Guillaume Gomez
ca609cc674 Add code examples for libstd/time 2016-03-23 15:39:27 +01:00
Jorge Aparicio
c063c5153f add back & that was deleted by mistake 2016-03-23 06:17:29 -05:00
bors
26cfc269a0 Auto merge of #32410 - Ticki:master, r=eddyb
Add support for naked functions

See https://github.com/rust-lang/rfcs/pull/1201#issuecomment-199442239

This PR adds `#[naked]` for marking naked functions.
2016-03-23 03:49:02 -07:00
bors
d6af19b89c Auto merge of #32348 - brson:cargotest, r=alexcrichton
Introduce 'cargotest' and the check-cargotest buildstep

This is a new suite of tests that verifies that the compiler builds specific revisions of select crates from crates.io.

It does not run by default. It is intended that bors runs these tests against all PRs, and gates on them. In this way we will make it harder still to break important swaths of the ecosystem, even on nightly.

This is a very basic implementation intended for feedback. The biggest thing it probably should do but doesn't is use a lockfile for every project it builds.

r? @alexcrichton cc @rust-lang/lang @rust-lang/libs
2016-03-23 01:03:04 -07:00
bors
8ba2ea5fad Auto merge of #32058 - pczarn:hashmap-initial-refactoring, r=apasel422
Basic refactoring of HashMap
2016-03-22 21:21:45 -07:00
Tang Chenglong
ea9ae48662 Docs: Change "statements" to "expressions" on match
I apt to use `expressions` over `statements`, because `match` is a expression in essence, though it can become a statement when followed a semicolon.
2016-03-23 12:03:41 +08:00
Jorge Aparicio
c548eda362 enable question_mark feature in rustc_borrowck 2016-03-22 22:04:10 -05:00
Jorge Aparicio
2628f3cc8f fix alignment 2016-03-22 22:03:54 -05:00
Jorge Aparicio
bd71d11a8f break long line 2016-03-22 22:03:31 -05:00
Jorge Aparicio
acbf386ab4 term: undo conversion of user defined try!s 2016-03-22 22:03:19 -05:00
Jorge Aparicio
f88a1e6f21 std: undo conversion of user defined try!s 2016-03-22 22:03:08 -05:00
Jorge Aparicio
aa7fe93d4a sprinkle feature gates here and there 2016-03-22 22:02:47 -05:00
Jorge Aparicio
0f02309e4b try! -> ?
Automated conversion using the untry tool [1] and the following command:

```
$ find -name '*.rs' -type f | xargs untry
```

at the root of the Rust repo.

[1]: https://github.com/japaric/untry
2016-03-22 22:01:37 -05:00
Eduard Burtescu
424fa432d4 Annotate run-pass/backtrace with #[rustc_no_mir] on MSVC. 2016-03-23 02:59:02 +02:00
bors
0dcc413e42 Auto merge of #32204 - alexcrichton:redesign-char-encoding-types, r=aturon
std: Change `encode_utf{8,16}` to return iterators

Currently these have non-traditional APIs which take a buffer and report how
much was filled in, but they're not necessarily ergonomic to use. Returning an
iterator which *also* exposes an underlying slice shouldn't result in any
performance loss as it's just a lazy version of the same implementation, and
it's also much more ergonomic!

cc #27784
2016-03-22 16:05:39 -07:00