Commit Graph

62571 Commits

Author SHA1 Message Date
Jeffrey Seyfried ec7c0aece1 Merge `ExpnId` and `SyntaxContext`. 2017-03-29 00:41:10 +00:00
Jeffrey Seyfried 496996c2af Remove code in `syntax::codemap`. 2017-03-29 00:41:10 +00:00
Jeffrey Seyfried 1979f96549 Move `syntax::ext::hygiene` to `syntax_pos::hygiene`. 2017-03-29 00:41:08 +00:00
bors 07a34293fa Auto merge of #40867 - alexcrichton:rollup, r=alexcrichton
Rollup of 19 pull requests

- Successful merges: #40317, #40516, #40524, #40606, #40683, #40751, #40778, #40813, #40818, #40819, #40824, #40828, #40832, #40833, #40837, #40849, #40852, #40853, #40865
- Failed merges:
2017-03-28 21:10:07 +00:00
Alex Crichton 61928a0356 Rollup merge of #40865 - alexcrichton:downgrade-mingw, r=arielb1
appveyor: Downgrade MinGW to 6.2.0

It looks like the 6.3.0 MinGW comes with a gdb which has issues (#40184) that an
attempted workaround (#40777) does not actually fix (#40835). The original
motivation for upgradin MinGW was to fix build flakiness (#40546) due to newer
builds not exhibiting the same bug, so let's hope that 6.2.0 isn't too far back
in time and still contains the fix we need.

Closes #40835
2017-03-27 15:56:26 -07:00
Alex Crichton 0dbf84b737 Rollup merge of #40853 - ollie27:error-index, r=steveklabnik
Fix broken Markdown and bad links in the error index

This makes sure RFC links point to the RFC text not the pull request.

r? @steveklabnik
2017-03-27 15:56:26 -07:00
Alex Crichton 700e2ea0c2 Rollup merge of #40852 - ollie27:rustbuild_compiler_docs, r=alexcrichton
rustbuild: Fix compiler docs again

The docs need to be built with the rustbuild feature so the correct
stability attributes (rustc_private) get applied.

r? @alexcrichton
2017-03-27 15:56:26 -07:00
Alex Crichton 68c7385c37 Rollup merge of #40849 - jseyfried:finalize_trait_macro_resolutions, r=nrc
bugfix: finalize resolutions of macros in trait positions

Fixes #40845.
r? @nrc
2017-03-27 15:56:26 -07:00
Alex Crichton 498da9fc39 Rollup merge of #40837 - alanstoate:ascii-docs, r=steveklabnik
change string references in asciiext
2017-03-27 15:56:25 -07:00
Alex Crichton 8cfc93f1db Rollup merge of #40833 - Wallacoloo:doc_to_uppercase_typo, r=steveklabnik
Fix typo in char::to_uppercase documentation

Original documentation appears to have been copied from `char::to_lowercase` in a manner that made it imply that `char::to_uppercase` actually mapped unicode characters to their **lowercase** equivalent.
2017-03-27 15:56:25 -07:00
Alex Crichton 5e9d91831a Rollup merge of #40832 - pftbest:fix_msp430, r=stjepang
libcore: fix compilation on 16bit target (MSP430).

Since PR #40601 has been merged, libcore no longer compiles on MSP430.
The reason is this code in `break_patterns`:
```rust
 let mut random = len;
 random ^= random << 13;
 random ^= random >> 17;
 random ^= random << 5;
 random &= modulus - 1;
```
It assumes that `len` is at least a 32 bit integer.
As a workaround replace `break_patterns` with an empty function for 16bit targets.

cc @stjepang
cc @alexcrichton
2017-03-27 15:56:25 -07:00
Alex Crichton 4d93c12581 Rollup merge of #40828 - projektir:markdown_metadata, r=steveklabnik
rustdoc to accept `#` at the start of a markdown file #40560

This may be a bit odd if `#` and `%` lines are mixed up, but that's not something I've found while doing my search and replace.
2017-03-27 15:56:25 -07:00
Alex Crichton 6b2c4bf22b Rollup merge of #40824 - donniebishop:fromstr_docexample, r=steveklabnik
FromStr implementation example

Referencing #29375. Added example implementation of FromStr trait to API Documentation
2017-03-27 15:56:25 -07:00
Alex Crichton 84712faaa5 Rollup merge of #40819 - donniebishop:master, r=alexcrichton
Link ParseBoolError to from_str method of bool

Referencing task in #29375. Sorry for not opening another branch on my fork for this. Was working on this early this morning and forgot to branch off master
2017-03-27 15:56:24 -07:00
Alex Crichton bae772bf3c Rollup merge of #40818 - theotherphil:master, r=steveklabnik
Don't stutter in operator trait descriptions

Fixes first item on #29365.

r? @steveklabnik
2017-03-27 15:56:24 -07:00
Alex Crichton 1fe2dfca81 Rollup merge of #40813 - jseyfried:fix_expansion_regression, r=nrc
macros: fix ICE on some nested macro definitions

Fixes #40770.
r? @nrc
2017-03-27 15:56:24 -07:00
Alex Crichton bccd341d11 Rollup merge of #40778 - alexcrichton:update-cargo, r=alexcrichton
Update cargo submodule

I'm not really sure what we want the cadence here to be. We'll at the very least
update the Cargo submodule right before all releases, but otherwise I figured we
could just do it whenever needed or otherwise weekly (or something like that).

In any case, I don't have a super strong particular reason to do this, it's just
been a week or so since the release!
2017-03-27 15:56:24 -07:00
Alex Crichton 51371157e2 Rollup merge of #40751 - nrc:save-callback, r=eddyb
save-analysis: allow clients to get data directly without writing to a file.
2017-03-27 15:56:23 -07:00
Alex Crichton 12f6c5019a Rollup merge of #40683 - nikomatsakis:incr-comp-coerce-unsized-info, r=eddyb
on-demand-ify `custom_coerce_unsized_kind` and `inherent-impls`

This "on-demand" task both checks for errors and computes the custom unsized kind, if any. This task is only defined on impls of `CoerceUnsized`; invoking it on any other kind of impl results in a bug. This is just to avoid having an `Option`, could easily be changed.

r? @eddyb
2017-03-27 15:56:23 -07:00
Alex Crichton 666bb1959e Rollup merge of #40606 - oli-obk:interned_str_usability, r=jseyfried
Improve `InternedString` usability
2017-03-27 15:56:23 -07:00
Alex Crichton 76cc08b45a Rollup merge of #40516 - alexcrichton:no-cache-handles, r=aturon
std: Don't cache stdio handles on Windows

This alters the stdio code on Windows to always call `GetStdHandle` whenever the
stdio read/write functions are called as this allows us to track changes to the
value over time (such as if a process calls `SetStdHandle` while it's running).

Closes #40490
2017-03-27 15:24:12 -05:00
Alex Crichton e857e296c1 Rollup merge of #40317 - malbarbo:update-libc, r=alexcrichton
Update libc to 0.2.21

Update to include android aarch64 and x86 improvements.
2017-03-27 15:24:11 -05:00
Alex Crichton e87dd42cfe appveyor: Downgrade MinGW to 6.2.0
It looks like the 6.3.0 MinGW comes with a gdb which has issues (#40184) that an
attempted workaround (#40777) does not actually fix (#40835). The original
motivation for upgradin MinGW was to fix build flakiness (#40546) due to newer
builds not exhibiting the same bug, so let's hope that 6.2.0 isn't too far back
in time and still contains the fix we need.

Closes #40835
2017-03-27 13:07:33 -07:00
Oliver Middleton 99a069eec9 Fix broken Markdown and bad links in the error index
This makes sure RFC links point to the RFC text not the pull request.
2017-03-27 15:21:04 +01:00
Oliver Middleton 3545fb512e rustbuild: Fix compiler docs again
The docs need to be built with the rustbuild feature so the correct
stability attributes (rustc_private) get applied.
2017-03-27 12:55:57 +01:00
Oliver Schneider eb447f4ef4
Fix various useless derefs and slicings 2017-03-27 08:58:00 +02:00
Oliver Schneider 79feb9476d
allow `InternedString` to be compared to `str` directly 2017-03-27 08:57:23 +02:00
bors ccce2c6eb9 Auto merge of #40764 - arielb1:range-nodes, r=eddyb
keep the AST node-id when lowering ExprKind::Range

When the Range expression is the root of a constant, its node-id is
used for the def-id of the body, so it has to be preserved in the AST ->
HIR lowering.

Fixes #40749.

r? @eddyb
beta-nominating because regression
2017-03-27 05:28:32 +00:00
Jeffrey Seyfried 737511ee11 Ensure that macro resolutions in trait positions get finalized. 2017-03-27 05:22:18 +00:00
Alan Stoate 1579fbd8ca Fixed spelling mistakes 2017-03-27 07:46:43 +10:30
Vadzim Dambrouski fda8e1571f libcore: sort_unstable: improve randomization in break_patterns.
Select 3 random points instead of just 1.
Also the code now compiles on 16bit architectures.
2017-03-26 20:37:04 +03:00
bors 7846dbe0c8 Auto merge of #40826 - frewsxcv:rollup, r=frewsxcv
Rollup of 7 pull requests

- Successful merges: #40642, #40734, #40740, #40771, #40807, #40820, #40821
- Failed merges:
2017-03-26 14:04:25 +00:00
aStoate 6e6dec0cab change string references in asciiext r? @steveklabnik 2017-03-26 22:26:03 +10:30
bors bcfd5c48b7 Auto merge of #40501 - jseyfried:shadow_builtin_macros, r=nrc
Allow `use` macro imports to shadow global macros

Terminology:
 - global scope: builtin macros, macros from the prelude, `#[macro_use]`, or `#![plugin(..)]`.
 - legacy scope: crate-local `macro_rules!`.
 - modern scope: `use` macro imports, `macro` (once implemented).

Today, the legacy scope can shadow the global scope (modulo RFC 1560 expanded shadowing restrictions). However, the modern scope cannot shadow or be shadowed by either the global or legacy scopes, leading to ambiguity errors.

This PR allows the modern scope to shadow the global scope (subject to some restrictions).
More specifically, a name in the global scope is as shadowable as a glob import in the module `self`. In other words, we imagine a special, implicit glob import in each module item:
```rust
mod foo {
    #[lexical_only] // Not accessible via `foo::<name>`, like pre-RFC 1560 `use` imports.
    #[shadowable_by_legacy_scope] // for back-compat
    use <global_macros>::*;
}
```

r? @nrc
2017-03-26 11:45:13 +00:00
bors 7dd4e2db78 Auto merge of #40347 - alexcrichton:rm-liblog, r=brson
Remove internal liblog

This commit deletes the internal liblog in favor of the implementation that
lives on crates.io. Similarly it's also setting a convention for adding crates
to the compiler. The main restriction right now is that we want compiler
implementation details to be unreachable from normal Rust code (e.g. requires a
feature), and by default everything in the sysroot is reachable via `extern
crate`.

The proposal here is to require that crates pulled in have these lines in their
`src/lib.rs`:

    #![cfg_attr(rustbuild, feature(staged_api, rustc_private))]
    #![cfg_attr(rustbuild, unstable(feature = "rustc_private", issue = "27812"))]

This'll mean that by default they're not using these attributes but when
compiled as part of the compiler they do a few things:

* Mark themselves as entirely unstable via the `staged_api` feature and the
  `#![unstable]` attribute.
* Allow usage of other unstable crates via `feature(rustc_private)` which is
  required if the crate relies on any other crates to compile (other than std).
2017-03-26 04:26:22 +00:00
bors 0f5ddb953a Auto merge of #40809 - alexcrichton:update-sccache-again, r=alexcrichton
travis: Update sccache again

Looks like the last version was built with mio 0.6.5 which now has known bugs
against it. This build includes mio 0.6.6
2017-03-26 01:33:39 +00:00
Colin Wallace 188299e04a char::to_uppercase doc typo: use the 'an' article. 2017-03-25 15:58:35 -07:00
Colin Wallace 53b70953c3 char::to_uppercase doc typo: s/lowercase/uppercase/ 2017-03-25 15:46:13 -07:00
bors 0e4b4eb6ab Auto merge of #40821 - arielb1:fix-emscripten, r=TimNN
try to fix the build on emscripten

The "upstream" emscripten tar.gz now extracts to `emsdk-portable` instead of `emsdk_portable`, breaking our CI. It might be better to vendor a specific version of emscripten instead of using the latest, but I could not find a good way of doing that.

r? @alexcrichton
2017-03-25 22:33:29 +00:00
Marco A L Barbosa 24be89980e Avoid using libc::sigemptyset on Android 2017-03-25 17:15:26 -03:00
projektir 2e14bfe0d7 rustdoc to accept `#` at the start of a markdown file #40560 2017-03-25 15:42:44 -04:00
Donnie Bishop fb5e63fc47 Change `try!` to `?` 2017-03-25 14:41:37 -04:00
Corey Farwell dc52625d61 Rollup merge of #40821 - arielb1:fix-emscripten, r=TimNN
try to fix the build on emscripten

The "upstream" emscripten tar.gz now extracts to `emsdk-portable` instead of `emsdk_portable`, breaking our CI. It might be better to vendor a specific version of emscripten instead of using the latest, but I could not find a good way of doing that.

r? @alexcrichton
2017-03-25 09:30:34 -07:00
Corey Farwell fbcb370fe8 Rollup merge of #40820 - irfanhudda:fix-typo-algorithm, r=BurntSushi
Fix typo in dec2flt/algorithm.rs
2017-03-25 09:30:33 -07:00
Corey Farwell 2bdbcb0618 Rollup merge of #40807 - stjepang:optimize-insertion-sort, r=alexcrichton
Optimize insertion sort

This change slightly changes the main iteration loop so that LLVM can optimize it more efficiently.

Benchmark:

```
name                                   before ns/iter   after ns/iter    diff ns/iter   diff %
slice::sort_unstable_small_ascending   39 (2051 MB/s)   38 (2105 MB/s)             -1   -2.56%
slice::sort_unstable_small_big_random  579 (2210 MB/s)  575 (2226 MB/s)            -4   -0.69%
slice::sort_unstable_small_descending  80 (1000 MB/s)   70 (1142 MB/s)            -10  -12.50%
slice::sort_unstable_small_random      396 (202 MB/s)   386                       -10   -2.53%
```

The benchmark is not a fluke. I can see that performance on `small_descending` is consistently better after this change. I'm not 100% sure why this makes things faster, but my guess would be that `v.len()+1` to the compiler looks like it could in theory overflow.
2017-03-25 09:30:32 -07:00
Corey Farwell 22f914a09a Rollup merge of #40771 - nikomatsakis:issue-40746-privacy-access-levels, r=eddyb
"on-demandify" privacy and access levels

r? @eddyb
cc @cramertj https://github.com/rust-lang/rust/issues/40746
2017-03-25 09:30:31 -07:00
Corey Farwell 03d54a4f06 Rollup merge of #40740 - shepmaster:inclusive-range-unstable-doc, r=steveklabnik
Basic documentation for inclusive range syntax

Done so that we can remove mention of this from the stable documentation ⚠️.
2017-03-25 09:30:30 -07:00
Corey Farwell 2673b03d65 Rollup merge of #40734 - adamransom:fix/40661, r=jseyfried
Add warning for use of lifetime parameter with 'static bound

Previously a `'static` lifetime bound would result in an `undeclared lifetime` error when compiling, even though it could be considered valid.

However, it is unnecessary to use it as a lifetime bound so we present the user with a warning instead and suggest using the `'static` lifetime directly, in place of the lifetime parameter. We can change this to an error (or warning with lint) if that's decided to be more appropriate.

Example output:
```
warning: unnecessary lifetime parameter `'a`
 --> ../static-lifetime-bound.rs:3:10
  |
3 | fn f<'a: 'static>(val: &'a i32) {
  |      ^^^^^^^^^^^
  |
  = help: you can use the `'static` lifetime directly, in place `'a`
```

Fixes #40661

r? @jseyfried
2017-03-25 09:30:29 -07:00
Corey Farwell f43c336e74 Rollup merge of #40642 - frewsxcv:io-bufread-doc-examples, r=GuillaumeGomez
Rewrite `io::BufRead` doc examples to better demonstrate behaviors.

Prior to this commit, most of the `BufRead` examples used `StdinLock` to
demonstrate how certain `BufRead` methods worked. Using `StdinLock` is
not ideal since:

* Relying on run-time data means we can't show concrete examples of how
  these methods work up-front. The user is required to run them in order
  to see how they behave.
* If the user tries to run an example in the playpen, it won't work
  because the playpen doesn't support user input to stdin.
2017-03-25 09:30:28 -07:00
Donnie Bishop 64cd0bebab Remove trailing whitespace 2017-03-25 12:22:23 -04:00