Commit Graph

51213 Commits

Author SHA1 Message Date
Jonas Schievink
be2698cb58 Fix test fallout 2016-03-13 20:35:04 +01:00
Jonas Schievink
298b51e982 Give a more accurate error on thin-to-fat ptr cast
Fixes #31511
2016-03-13 17:03:31 +01:00
bors
06074ac004 Auto merge of #32141 - jseyfried:fix_resolution_in_lexical_scopes, r=nikomatsakis
Fix name resolution in lexical scopes

Currently, `resolve_item_in_lexical_scope` does not check the "ribs" (type parameters and local variables). This can allow items that should be shadowed by type parameters to be named.

For example,
```rust
struct T { i: i32 }
fn f<T>() {
    let t = T { i: 0 }; // This use of `T` resolves to the struct, not the type parameter
}

mod Foo {
    pub fn f() {}
}
fn g<Foo>() {
    Foo::f(); // This use of `Foo` resolves to the module, not the type parameter
}
```

This PR changes `resolve_item_in_lexical_scope` so that it fails when the item is shadowed by a rib (fixes #32120).
This is a [breaking-change], but it looks unlikely to cause breakage in practice.

r? @nikomatsakis
2016-03-12 21:55:14 -08:00
bors
3e05371c13 Auto merge of #32217 - alexcrichton:fix-make-dist, r=brson
mk: Fix `make dist`

With the movement of the erro-index-generator and rustbook, need to update the
rules in `make dist`.
2016-03-12 18:58:15 -08:00
bors
531b928ea6 Auto merge of #32140 - ruud-v-a:avx-intrinsics, r=alexcrichton
Add AVX broadcast and conversion intrinsics

This adds the following intrinsics:

 * `_mm256_broadcast_pd`
 * `_mm256_broadcast_ps`
 * `_mm256_cvtepi32_pd`
 * `_mm256_cvtepi32_ps`
 * `_mm256_cvtpd_epi32`
 * `_mm256_cvtpd_ps`
 * `_mm256_cvtps_epi32`
 * `_mm256_cvtps_pd`
 * `_mm256_cvttpd_epi32`
 * `_mm256_cvttps_epi32`

The "avx" codegen feature must be enabled to use these.
2016-03-12 16:18:34 -08:00
bors
a2c56de764 Auto merge of #32112 - alexcrichton:fix-issues, r=aturon
std: Fix tracking issues and clean deprecated APIs

This PR fixes up a number of discrepancies found with tracking issues (some closed, some needed new ones, etc), and also cleans out all pre-1.8 deprecated APIs. The big beast here was dealing with `std::dynamic_lib`, and via many applications of a large hammer it's now out of the standard library.
2016-03-12 13:21:06 -08:00
Alex Crichton
b53764c73b std: Clean out deprecated APIs
Removes all unstable and deprecated APIs prior to the 1.8 release. All APIs that
are deprecated in the 1.8 release are sticking around for the rest of this
cycle.

Some notable changes are:

* The `dynamic_lib` module was moved into `rustc_back` as the compiler still
  relies on a few bits and pieces.
* The `DebugTuple` formatter now special-cases an empty struct name with only
  one field to append a trailing comma.
2016-03-12 12:31:13 -08:00
Alex Crichton
f6c594b131 mk: Fix make dist
With the movement of the erro-index-generator and rustbook, need to update the
rules in `make dist`.
2016-03-12 12:22:40 -08:00
bors
8788ffc670 Auto merge of #32193 - eddyb:stage1-is-useful-mkay, r=eddyb
Statically link run-pass/command-before-exec so it passes not just whenever we happen to bootstrap perfectly.
2016-03-12 09:37:19 -08:00
bors
beb444eaed Auto merge of #32142 - mitaa:rdoc-maybe-inline-local, r=alexcrichton
rustdoc: improve crate-local inlining

fixes #28537

r? @alexcrichton
2016-03-12 07:31:11 -08:00
Eduard Burtescu
27217e580f Statically link run-pass/command-before-exec so it passes not just whenever we happen to bootstrap perfectly. 2016-03-12 14:36:48 +02:00
Alex Crichton
083db64d90 std: Add a tracking issue for Peekable::is_empty
The listed tracking issue was hooked up to the wrong location by accident.
2016-03-11 22:09:58 -08:00
Alex Crichton
aed7ddae8e core: Make a new tracking issue for prelude traits
The referenced issues here were both closed, so hook up a new issue which tracks
specifically the prelude traits being unstable.
2016-03-11 22:09:58 -08:00
Alex Crichton
a38bf6e23d core: Mark Wrapping impls as stable
These are all insta-stable anyway, so just properly tag them.
2016-03-11 22:09:58 -08:00
Alex Crichton
1c440bdaf2 std: Remove unstable from ReentrantMutex
This isn't exported so it doesn't need a tag.
2016-03-11 22:09:58 -08:00
Alex Crichton
9a623f3378 test: Move some test outputs into $(TMPDIR)
Don't want to pollute the source tree!
2016-03-11 22:09:58 -08:00
Alex Crichton
3dd8b3ec9b alloc: Add unstable issue for FnBox APIs 2016-03-11 22:09:58 -08:00
bors
1a019dc86d Auto merge of #31925 - aturon:inherent-overlap, r=nikomatsakis
Forbid items with the same name from appearing in overlapping inherent impl blocks

For example, the following is now correctly illegal:

```rust
struct Foo;

impl Foo {
    fn id() {}
}

impl Foo {
    fn id() {}
}
```

"Overlapping" here is determined the same way it is for traits (and in fact shares the same code path): roughly, there must be some way of substituting any generic types to unify the impls, such that none of the `where` clauses are provably unsatisfiable under such a unification.

Along the way, this PR also introduces an `ImplHeader` abstraction (the first commit) that makes it easier to work with impls abstractly (without caring whether they are trait or inherent impl blocks); see the first commit.

Closes #22889
r? @nikomatsakis
2016-03-11 20:57:39 -08:00
bors
f1d6f126ef Auto merge of #32200 - Manishearth:rollup, r=Manishearth
Rollup of 11 pull requests

- Successful merges: #32137, #32158, #32171, #32174, #32178, #32179, #32180, #32181, #32183, #32186, #32197
- Failed merges:
2016-03-11 17:50:45 -08:00
Manish Goregaokar
10e4e9eec9 Rollup merge of #32197 - andoriyu:patch-1, r=alexcrichton
Add FreeBSD amd64 snapshot

Snapshot itself: https://github.com/dhuseby/rust-manual-snapshots/pull/3
2016-03-12 06:47:58 +05:30
Manish Goregaokar
c8578c1f40 Rollup merge of #32186 - srinivasreddy:libcoretest, r=steveklabnik
cleanup int suffixes in libcoretest
2016-03-12 06:47:58 +05:30
Manish Goregaokar
667dcebaf9 Rollup merge of #32183 - bluss:doc-index, r=alexcrichton
Clarify doc for slice slicing (Index impls)

Clarify doc for slice slicing (Index impls)

This is a follow up for PR #32099 and #32057
2016-03-12 06:47:57 +05:30
Manish Goregaokar
249ca83096 Rollup merge of #32181 - srinivasreddy:librustfront, r=steveklabnik
removed suffixes for librustc_front
2016-03-12 06:47:57 +05:30
Manish Goregaokar
7a1df9e8de Rollup merge of #32180 - srinivasreddy:type_check_lib, r=steveklabnik
removed integer suffixes in librustc_typeck crate
2016-03-12 06:47:56 +05:30
Jeffrey Seyfried
e926f281df Comment resolve_item_in_lexical_scope 2016-03-11 23:59:02 +00:00
bors
0d68aadd27 Auto merge of #32132 - arcnmx:cargobuild-std-target, r=alexcrichton
cover more linux targets in libstd cargobuild

libstd/build.rs checked the target name against `"unknown-linux"`... That doesn't necessarily apply to all Linux targets as some toolchains for embedded targets will change that `unknown` field to some vendor name. Some shifting around was needed since Android is also a Linux target.

r? @alexcrichton
2016-03-11 15:25:03 -08:00
Aaron Turon
6265b6bec8 Adjust rustdoc test for new restriction 2016-03-11 15:22:07 -08:00
Manish Goregaokar
744ffed25a Rollup merge of #32178 - naltun:patch-1, r=steveklabnik
Update getting-started.md

In `rustc 1.7.0` the message that is displayed is now `Rust is ready to roll.`
2016-03-12 02:41:26 +05:30
Manish Goregaokar
baea278e75 Rollup merge of #32174 - cmbrandenburg:spell_fix, r=steveklabnik
Spell fixes for std::ffi doc comments
2016-03-12 02:41:26 +05:30
Manish Goregaokar
c194ccef13 Rollup merge of #32171 - frewsxcv:compiletest, r=alexcrichton
Fix a couple compiletest nits.
2016-03-12 02:41:26 +05:30
Manish Goregaokar
25d253e8d4 Rollup merge of #32158 - seanmonstar:dead-associated-type, r=alexcrichton
lint: mark associated types as live for the dead_code pass

Associated types of trait impls were being excluded from the live list. So types that only appeared in trait impls were being marked as dead code.
2016-03-12 02:41:26 +05:30
Manish Goregaokar
725d6d8d8b Rollup merge of #32137 - nathankleyn:improve-docs-for-binaryheap, r=steveklabnik
Add missing documentation examples for BinaryHeap.

As part of the ongoing effort to document all methods with examples,
this commit adds the missing examples for the `BinaryHeap` collection
type.

This is part of issue #29348.

r? @steveklabnik
2016-03-12 02:41:26 +05:30
Aaron Turon
2234b557bb Adjust tests to new error message 2016-03-11 10:59:40 -08:00
Aaron Turon
4b4c6fd434 Add regression test for duplicate items in overlapping impls. Note that a regression test already exists for *non*overlapping impls. 2016-03-11 10:59:40 -08:00
Aaron Turon
21df87f515 Forbid items with the same name being defined in overlapping inherent
impl blocks.

For example, the following is now correctly illegal:

```rust
struct Foo;

impl Foo {
    fn id() {}
}

impl Foo {
    fn id() {}
}
```

"Overlapping" here is determined the same way it is for traits (and in
fact shares the same code path): roughly, there must be some way of
substituting any generic types to unify the impls, such that none of the
`where` clauses are provably unsatisfiable under such a unification.

Closes #22889
2016-03-11 10:59:39 -08:00
Aaron Turon
9cc3bfcceb Introduce ImplHeader
This commit introduces the idea of an "impl header", which consists of
everything outside the impl body: the Self type, the trait
reference (when applicable), and predicates from `where` clauses. This
type is usable with the type folding machinery, making it possible to
work with impl headers at a higher and more generic level.
2016-03-11 10:36:28 -08:00
Andrey Cherkashin
e2b055c74a Add FreeBSD amd64 snapshot
Snapshot itself: https://github.com/dhuseby/rust-manual-snapshots/pull/3
2016-03-11 10:12:42 -08:00
bors
5807fbbfde Auto merge of #32134 - jseyfried:forbid_type_alias_as_module, r=nikomatsakis
Forbid glob-importing from a type alias

This PR forbids glob-importing from a type alias or trait (fixes #30560):
```rust
type Alias = ();
use Alias::*; // This is currently allowed but shouldn't be
```

This is a [breaking-change]. Since the disallowed glob imports don't actually import anything, any breakage can be fixed by removing the offending glob import.

r? @alexcrichton
2016-03-11 09:26:47 -08:00
bors
aeb85a9533 Auto merge of #32133 - alexcrichton:linkchecker, r=brson
Add a link validator to rustbuild

This commit was originally targeted at just adding a link checking script to the rustbuild system. This ended up snowballing a bit to extend rustbuild to be amenable to various tools we have as part of the build system in general.

There's a new `src/tools` directory which has a number of scripts/programs that are purely intended to be used as part of the build system and CI of this repository. This is currently inhabited by rustbook, the error index generator, and a new linkchecker script added as part of this PR. I suspect that more tools like compiletest, tidy scripts, snapshot scripts, etc will migrate their way into this directory over time.

The commit which adds the error index generator shows the steps necessary to add new tools to the build system, namely:

1. New steps are defined for building the tool and running the tool
2. The dependencies are configured
3. The steps are implemented

In terms of the link checker, these commits do a few things:

* A new `src/tools/linkchecker` script is added. This will read an entire documentation tree looking for broken relative links (HTTP links aren't followed yet).
* A large number of broken links throughout the documentation were fixed. Many of these were just broken when viewed from core as opposed to std, but were easily fixed.
* A few rustdoc bugs here and there were fixed
2016-03-11 04:38:04 -08:00
bors
40c85cd8ae Auto merge of #32034 - alexcrichton:old-x86-msvc, r=aturon
rustc: Add an i586-pc-windows-msvc target

Similarly to #31629 where an i586-unknown-linux-gnu target was added, there is
sometimes a desire to compile for x86 Windows as well where SSE2 is disabled.
This commit mirrors the i586-unknown-linux-gnu target and simply adds a variant
for Windows as well.

This is motivated by a recent [Gecko bug][ff] where crashes were seen on 32-bit
Windows due to users having CPUs that don't support SSE2 instructions. It was
requested that we could have non-SSE2 builds of the standard library available
so they could continue to use vanilla releases and nightlies.

[ff]: https://bugzilla.mozilla.org/show_bug.cgi?id=1253202
2016-03-10 22:47:49 -08:00
bors
2b9438a4ec Auto merge of #32121 - GuillaumeGomez:help_e0514, r=cmr
Add help for E0514

I fixed #30622.

r? @arielb1
2016-03-10 20:37:04 -08:00
srinivasreddy
e1cc628549 cleanup int suffixes in libcoretest 2016-03-11 08:42:56 +05:30
bors
c6a6053112 Auto merge of #32102 - alexcrichton:assert-safe-closures, r=aturon
std: Add impl of FnOnce to AssertRecoverSafe

This was originally intended, but forgot to land by accident!

cc #27719
2016-03-10 17:52:12 -08:00
bors
c9629d61c6 Auto merge of #32117 - mitaa:patch-3, r=alexcrichton
rustdoc: correct src-link url

It would have been nice for htmldocck to catch this, especially since there are rustdoc tests specifically for checking src-links.

fixes #32113
2016-03-10 14:57:31 -08:00
Ulrik Sverdrup
bfffe6d9d2 Clarify doc for slice slicing (Index impls)
This is a follow up for PR #32099 and #32057
2016-03-10 21:36:43 +01:00
srinivasreddy
fe541b168e removed suffixes for librustc_front 2016-03-11 01:32:03 +05:30
bors
c1fb50f5d3 Auto merge of #32107 - Stebalien:partial-write, r=alexcrichton
Never return an error after a partial write

If LineWriter fails to flush, return the number of bytes written instead
of an error.

Fixes #32085
2016-03-10 11:56:29 -08:00
srinivasreddy
266c417071 removed integer constants in librustc_typeck 2016-03-11 00:41:25 +05:30
Noah
4d476693f0 Update getting-started.md
In `rustc 1.7.0` the message that is displayed is now `Rust is ready to roll.`
2016-03-10 11:34:42 -06:00
bors
4b87655e69 Auto merge of #32101 - SimonSapin:patch-11, r=alexcrichton
Add info in `rustdoc --passes list`

CC @mitaa, https://github.com/rust-lang/rust/pull/32055/files#r55205006
2016-03-10 07:05:05 -08:00