Commit Graph

62752 Commits

Author SHA1 Message Date
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
Micah Tigley
da74e865b5 Review request changes 2017-03-27 16:14:13 -06:00
steveklabnik
434e601446 Update various book modules
This includes an important fix for rustc contributors in
https://github.com/rust-lang/book/pull/571

I'm going to update the other ones as well here while we're at it; no
need to spam PRs.
2017-03-27 17:41:58 -04:00
Nick Sweeting
4806f01d7c Fix tidy errors and simplify example 2017-03-27 16:34:13 -04: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
lukaramu
b8cbc5d46a Addressed requested changes for PR #40838
* Fixed spelling ToSocketAddr -> ToSocketAddrs in module docs
  (which also fixes a link)
* Added missing "when" before "interacting" in module docs
* Changed SocketAddr's top-level docs to explicitly state what socket
  addresses consist of, making them more consistent with SocketAddrV4's
  and SocketAddrV6's docs
* Changed "in C" -> "in C's `netinet/in.h`"
* Changed wording in is_ipv4/is_ipv6 methods to ", `false` otherwise"
* Add missing closing ` ``` ` in Ipv6Addr's examples
* Removed "Errors" section in ToSocketAddrs' to_socket_addrs method as it
  was rather redundant
2017-03-27 16:38:17 +02: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
Ariel Ben-Yehuda
39011f8590 fix handling of self 2017-03-27 01:37:46 +03:00
Ariel Ben-Yehuda
50728e5245 borrowck: consolidate mut suggestions
This converts all of borrowck's `mut` suggestions to a new
`mc::ImmutabilityBlame` API instead of the current mix of various hacks.

Fixes #35937.
Fixes #40823.
2017-03-27 01:37:42 +03: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
Jörg Thalheim
2cf686f2cd
Implement AsRawFd/IntoRawFd for RawFd
This is useful to build os abstraction like the nix crate does.
It allows to define functions, which accepts generic arguments
of data structures convertible to RawFd, including RawFd itself.
For example:

  fn write<FD: AsRawFd>(fd: FD, buf: &[u8]) -> Result<usize>

instead of:

  fn write(fd: RawFd, buf: &[u8]) -> Result<usize>
  write(foo.as_raw_fd(), buf);
2017-03-26 19:14:03 +02:00
lukaramu
c2601fd358 fix trailing whitespace 2017-03-26 18:06:22 +02:00
lukaramu
577677d55d Expanded std::net module docs
Part of #29363
2017-03-26 17:27:40 +02:00
lukaramu
597bcec379 Expanded top-level docs for std::net{TcpListener,TcpStream,UdpSocket}
Part of #29363
2017-03-26 17:06:39 +02:00
lukaramu
ad816f8174 Added links to std::net::Shutdown docs and made them more consistent
Part of #29363
2017-03-26 16:12:27 +02: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
lukaramu
1a9c8baed5 Added examples to std::net::{SocketAddr, SocketAddrV4, SocketAddrV6} docs 2017-03-26 15:43:25 +02:00
lukaramu
6f0c742b00 Expanded and added links to std::net::{SocketAddr,SocketAddrV4,SocketAddrV6} docs
Part of #29363
Changed summary sentences of SocketAddr and IpAddr for consistency
Linked to SocketAddrV4 and SocketAddrV6 from SocketAddr, moving explaination
there
Expanded top-level docs for SocketAddrV4 and SocketAddrV6, linking to some
relevant IETF RFCs, and linking back to SocketAddr
Changed some of the method summaries to third person as per RFC 1574; added
links to IETF RFCs where appropriate
2017-03-26 14:35:12 +02:00
lukaramu
be713fa4bf Removed link in std::net::ToSocketAddr's summary sentence
Relative links in trait methods don't resolve in e.g.
std/primitive.tuple.html
:(
2017-03-26 14:35:12 +02:00
lukaramu
347b70901c Expanded and added links to std::net::{IpAddr,Ipv4Addr,Ipv6Addr} docs
Part of #29363
Expanded top-level documentation & linked to relevant IETF RFCs.
Added a bunch of links (to true/false/Ipv4Addr/etc.) throughout the docs.
2017-03-26 14:35:12 +02:00
lukaramu
0d5baba70d Added links to std::net::AddrParseError's documentation
Additionally changed the summary sentence to be more consistent with most
of the other FromStr implementations' error types.
2017-03-26 14:35:12 +02:00
lukaramu
df5830a4ec Added links throughout std::net::ToSocketAddrs' documentation
Part of #29363

In the section about the default implementations of ToSocketAddrs,
I moved the bulletpoint of SocketAddrV4 & SocketAddrV6 to the one
stating that SocketAddr is constructed trivially, as this is what's
actually the case
2017-03-26 14:35:12 +02:00
lukaramu
0df7398558 std::net docs: changed occurences of "RFC" to say "IETF RFC"
part of #29363
2017-03-26 14:35:12 +02:00
lukaramu
76d08eda7d Update std::net:Incoming's docs to use standard iterator boilerplate
Part of #29363
2017-03-26 14:35:12 +02:00
lukaramu
169facfc28 added missing links in std::net TCP docs
part of #29363
2017-03-26 14:35:12 +02: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
Ariel Ben-Yehuda
7e0f7a50ab store a copy of the Issue32230 info within TypeError
The data can't be looked up from the region variable directly, because
the region variable might have been destroyed at the end of a snapshot.

Fixes #40000.
Fixes #40743.
2017-03-26 14:38:23 +03: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