Commit Graph

39880 Commits

Author SHA1 Message Date
Manish Goregaokar
c8c4d85b50 Rollup merge of #22764 - ivanradanov:fileline_help, r=huonw
When warnings and errors occur, the associated help message should not print the same code snippet.
https://github.com/rust-lang/rust/issues/21938
2015-03-05 12:38:32 +05:30
Manish Goregaokar
4de4234795 Rollup merge of #23018 - sanxiyn:quote-question, r=huonw
Fix #22957.
2015-03-05 12:38:32 +05:30
Seo Sanghyeon
951118b74f Fix quoting of ?Sized 2015-03-05 12:38:30 +05:30
Manish Goregaokar
71ef0734e7 Rollup merge of #23013 - nikomatsakis:syncbox, r=pnkfelix
When generating WF criteria, do not visit the same type more than once. Fixes an infinite stack overflow (#23003).

r? @aturon
2015-03-05 12:37:49 +05:30
Manish Goregaokar
bedfca0fb3 Rollup merge of #23004 - alexcrichton:libc-stable, r=brson
This same source is being built in the Cargo ecosystem and hence needs to build
on stable Rust as well. This commit places the `no_std` attribute along with the
`no_std` feature behind a `cfg_attr` flag so they are not processed when
compiled on crates.io
2015-03-05 12:37:49 +05:30
Manish Goregaokar
24f00eb2ae Rollup merge of #23001 - alexcrichton:index-output-stable, r=nikomatsakis
This stability attribute was left out by accident and the stability pass has
since picked up the ability to check for this. As a result, crates are currently
getting warnings for implementations of `Index`.
2015-03-05 12:37:49 +05:30
Manish Goregaokar
bb459bf95b Rollup merge of #23000 - Florob:unicode-FL, r=brson
This handles the ranges contained in UnicodeData.txt.
Counterintuitively this actually makes the tables shorter.
2015-03-05 12:37:48 +05:30
Manish Goregaokar
478c396b7a Rollup merge of #22939 - bleibig:grammar-updates, r=sanxiyn
Updates to the bison grammar to account for recent grammar additions and new tests. In particular:

* Support parsing `impl MyTrait for .. { }`
* Support parsing ExprQualifiedPaths without \"as TRAIT_REF\" such as `<Foo>::bar(&Foo)`
* Support parsing \"for\" clauses at the beginning of where clauses such as `where for<'a, 'b> &'a T: Bar<'b>`
2015-03-05 12:37:48 +05:30
Manish Goregaokar
d693ec17a5 Rollup merge of #22029 - iKevinY:tidy-changes, r=brson
Currently, the list of files linted in `tidy.py` is unordered. It seems more appropriate for more frequently appearing files (like `.rs`) to appear at the top of the list and for \"other files\" to appear at the very end. This PR also changes the wildcard import of `check_license()` into an explicit one.

```
Before:                     After:
* linted 4 .sh files        * linted 5034 .rs files
* linted 4 .h files         * linted 29 .c files
* linted 29 .c files        * linted 28 .py files
* linted 2 .js files        * linted 4 .sh files
* linted 0 other files      * linted 4 .h files
* linted 28 .py files       * linted 2 .js files
* linted 5034 .rs files     * linted 0 other files
```

r? @brson
2015-03-05 12:37:48 +05:30
bors
68740b4054 Auto merge of #22061 - pczarn:quote_matcher_and_attr, r=kmcallister
Fixes #19674
Fixes #17396 (already closed, yeah)

cc @kmcallister , @cmr
2015-03-05 04:32:51 +00:00
bors
cc722a4dd3 Auto merge of #22873 - alexcrichton:deprecate-fs, r=aturon
This commit deprecates the majority of std::old_io::fs in favor of std::fs and
its new functionality. Some functions remain non-deprecated but are now behind a
feature gate called `old_fs`. These functions will be deprecated once
suitable replacements have been implemented.

The compiler has been migrated to new `std::fs` and `std::path` APIs where
appropriate as part of this change.

[breaking-change]
2015-03-05 01:19:15 +00:00
Alex Crichton
0dfa9978cc std: Stabilize portions of the io module
The new `io` module has had some time to bake and this commit stabilizes some of
the utilities associated with it. This commit also deprecates a number of
`std::old_io::util` functions and structures.

These items are now `#[stable]`

* `Cursor`
* `Cursor::{new, into_inner, get_ref, get_mut, position, set_position}`
* Implementations of I/O traits for `Cursor<T>`
* Delegating implementations of I/O traits for references and `Box` pointers
* Implementations of I/O traits for primitives like slices and `Vec<T>`
* `ReadExt::bytes`
* `Bytes` (and impls)
* `ReadExt::chain`
* `Chain` (and impls)
* `ReadExt::take` (and impls)
* `BufReadExt::lines`
* `Lines` (and impls)
* `io::copy`
* `io::{empty, Empty}` (and impls)
* `io::{sink, Sink}` (and impls)
* `io::{repeat, Repeat}` (and impls)

These items remain `#[unstable]`

* Core I/O traits. These may want a little bit more time to bake along with the
  commonly used methods like `read_to_end`.
* `BufReadExt::split` - this function may be renamed to not conflict with
  `SliceExt::split`.
* `Error` - there are a number of questions about its representation,
  `ErrorKind`, and usability.

These items are now `#[deprecated]` in `old_io`

* `LimitReader` - use `take` instead
* `NullWriter` - use `io::sink` instead
* `ZeroReader` - use `io::repeat` instead
* `NullReader` - use `io::empty` instead
* `MultiWriter` - use `broadcast` instead
* `ChainedReader` - use `chain` instead
* `TeeReader` - use `tee` instead
* `copy` - use `io::copy` instead

[breaking-change]
2015-03-04 17:04:22 -08:00
Alex Crichton
95d904625b std: Deprecate std::old_io::fs
This commit deprecates the majority of std::old_io::fs in favor of std::fs and
its new functionality. Some functions remain non-deprecated but are now behind a
feature gate called `old_fs`. These functions will be deprecated once
suitable replacements have been implemented.

The compiler has been migrated to new `std::fs` and `std::path` APIs where
appropriate as part of this change.
2015-03-04 15:59:30 -08:00
David King
a037cdfcf1 Fix broken link in old rust guide
Having come back to rust recently after > 6months I was looking for docs
on tasks and stumbled upon this broken link.
2015-03-04 23:18:24 +00:00
Camille TJHOA
b1e0dfb25c docs(path.rs): fix ends_with method 2015-03-04 23:09:03 +01:00
Steve Klabnik
61a2766136 Note the alternate form of vec in trpl 2015-03-04 16:27:18 -05:00
Michał Krasnoborski
29938fff38 Fix struct stat on arm linux 2015-03-04 22:24:38 +01:00
Niko Matsakis
1d3de19e99 Add tests related to #20220. Fixes #20220. 2015-03-04 15:06:33 -05:00
Niko Matsakis
cd50b4e0b1 Generalize the code so we can handle multiple supertraits.
Fixes #10596. Fixes #22279.
2015-03-04 15:06:33 -05:00
Niko Matsakis
bc9ae36dba Separate supertrait collection from processing a TraitDef. This allows
us to construct trait-references and do other things without forcing a
full evaluation of the supertraits. One downside of this scheme is that
we must invoke `ensure_super_predicates` before using any construct that
might require knowing about the super-predicates.
2015-03-04 15:06:33 -05:00
Niko Matsakis
4ee002a17c Extract out trait_defines_associated_type_named into the AstConv
interface, so that we can perform this query without requiring a full
trait def or set of supertraits.
2015-03-04 15:05:52 -05:00
Niko Matsakis
ab8a769c57 Extend the "treat-err-as-bug" option to cover calls to fatal. 2015-03-04 15:05:52 -05:00
Niko Matsakis
4dfa81f6fa Extract out the filter_to_traits functionality 2015-03-04 15:05:52 -05:00
Niko Matsakis
ba1b5ee1d1 Simplify impl of Elaborator now that we don't need stack traces anymore. 2015-03-04 15:05:52 -05:00
Steve Klabnik
977d7897fe TRPL: Documentation
This chapter covers writing documentation in depth.

Fixes #4361
Fixes #12862
Fixes #14070
Fixes #14967
2015-03-04 13:32:43 -05:00
Peter Elmers
299b594fde Fix grammar nits in compound-data-types.md
I came across a couple of grammar mistakes when refreshing myself on enums.
2015-03-04 11:02:31 -06:00
Matt Cox
433392afd8 Reword str docs and include links to StrExt 2015-03-04 08:15:58 -08:00
Dave Huseby
e0a0b4683e updating llvm-auto-clean-trigger too 2015-03-04 07:50:34 -08:00
Valerii Hiora
6de0dc4ce3 iOS: fallout of env stab 2015-03-04 17:46:29 +02:00
Piotr Czarnecki
3541abedeb Add quasiquote for matchers and attributes 2015-03-04 16:13:37 +01:00
bors
3b3bb0e682 Auto merge of #22235 - michaelwoerister:cross-crate-spans, r=michaelwoerister
This allows to create proper debuginfo line information for items inlined from other crates (e.g. instantiations of generics). Only the codemap's 'metadata' is stored in a crate's metadata. That is, just filename, positions of line-beginnings, etc. but not the actual source code itself.

Crate metadata size is increased by this change because spans in the encoded ASTs take up space now:
```
                BEFORE    AFTER
libcore         36 MiB    39.6 MiB    +10%
libsyntax       51.1 MiB  60.5 MiB    +18.4%
libcollections  11.2 MiB  12.8 MiB    +14.3%
```
This only affects binaries containing metadata (rlibs and dylibs), executables should not be affected in size. 

Fixes #19228 and probably #22226.
2015-03-04 14:47:51 +00:00
Eduard Burtescu
48fba76c7d Fix compile-fail error messages after integer suffix removal. 2015-03-04 15:48:33 +02:00
bors
bdf6e4fcf5 Auto merge of #22920 - tshepang:remove-some-warnings, r=huonw 2015-03-04 12:16:51 +00:00
Fenhl
4486d78b93 Fix Duration::weeks docs
The docs for `std::duration::Duration::weeks` were formatted incorrectly.
2015-03-04 12:16:37 +00:00
bors
6e055c3f00 Auto merge of #22958 - laijs:option_map_for_iter_map, r=alexcrichton
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
2015-03-04 09:46:29 +00:00
Michael Woerister
2f8865556b Encode codemap and span information in crate metadata.
This allows to create proper debuginfo line information for items inlined from other crates (e.g. instantiations of generics).
Only the codemap's 'metadata' is stored in a crate's metadata. That is, just filename, line-beginnings, etc. but not the actual source code itself. We are thus missing the opportunity of making Rust the first "open-source-only" programming language out there. Pity.
2015-03-04 09:50:09 +01:00
Dave Huseby
bcd6076fa4 adding bitrig snapshot to snapshots file 2015-03-03 22:51:36 -08:00
Dave Huseby
2361ec30bf bumping again to get the updated configure 2015-03-03 22:47:38 -08:00
Dave Huseby
6d36a1495d bumping the jemalloc revision to include the bitrig changes 2015-03-03 22:47:37 -08:00
Dave Huseby
1c2dc1a0eb updating llvm submodule to include bitrig support 2015-03-03 22:47:37 -08:00
Eduard Burtescu
8e50853b54 Remove integer suffixes where the types in compiled code are identical. 2015-03-04 07:03:05 +02:00
Eric Platon
dde4e5885e Made failing/working examples look alike.
The failing concurrency example was doing something different from the
working example. This commit changes just enough of the failing example
to (1) still fail with the same error, (2) tries to do the same as the
working example (increment a vector value and print it).

r? @steveklabnik
2015-03-04 13:11:57 +09:00
Niko Matsakis
8c28284e51 When generating WF criteria, do not visit the same type more than
once. Fixes an infinite stack overflow (#23003).
2015-03-03 19:27:50 -05:00
Alex Crichton
9893b44ad9 libc: Move features behind a cfg_attr gate
This same source is being built in the Cargo ecosystem and hence needs to build
on stable Rust as well. This commit places the `no_std` attribute along with the
`no_std` feature behind a `cfg_attr` flag so they are not processed when
compiled on crates.io
2015-03-03 13:05:55 -08:00
bors
fed12499e7 Auto merge of #23002 - pnkfelix:fsk-box-place-runway, r=nikomatsakis
Runway for RFC 809 (overloaded box/placement-in) by adding type annotations or explicit calls to `Box::new` where I found it necessary on PR #22086.

I have broken this up into more than one PR because the entire commit chain (see PR #22086) is long, widespread and unwieldy to rebase frequently.

To my knowledge this is not a breaking change.  Also, there is in principle nothing stopping someone from reverting some/all of these annotations, since without the rest of the commit chain in #22086, the associated code would continue to compile.

All I can do is ask: Try to discourage others from removing seemingly "unnecessary" uses of the `Box` type or the `Box::new()` function, until the rest of RFC 809 lands.
2015-03-03 20:17:08 +00:00
Felix S. Klock II
cb1b0dd589 Fix doc example to accommodate overloaded-box. 2015-03-03 21:16:03 +01:00
Felix S. Klock II
0d5bcb14ad Switched to Box::new in many places.
Many of the modifications putting in `Box::new` calls also include a
pointer to Issue 22405, which tracks going back to `box <expr>` if
possible in the future.

(Still tried to use `Box<_>` where it sufficed; thus some tests still
have `box_syntax` enabled, as they use a mix of `box` and `Box::new`.)

Precursor for overloaded-`box` and placement-`in`; see Issue 22181.
2015-03-03 21:05:55 +01:00
Felix S. Klock II
b03279aaa2 inline Box::new always.
(You shouldn't use it, but it is a semi-reasonable way to annotate
types when necessary.)
2015-03-03 20:29:01 +01:00
Felix S. Klock II
270f0eef73 Add : Box<_> or ::Box<_> type annotations to various places.
This is the kind of change that one is expected to need to make to
accommodate overloaded-`box`.

----

Note that this is not *all* of the changes necessary to accommodate
Issue 22181.  It is merely the subset of those cases where there was
already a let-binding in place that made it easy to add the necesasry
type ascription.

(For unnamed intermediate `Box` values, one must go down a different
route; `Box::new` is the option that maximizes portability, but has
potential inefficiency depending on whether the call is inlined.)

----

There is one place worth note, `run-pass/coerce-match.rs`, where I
used an ugly form of `Box<_>` type ascription where I would have
preferred to use `Box::new` to accommodate overloaded-`box`.  I
deliberately did not use `Box::new` here, because that is already done
in coerce-match-calls.rs.

----

Precursor for overloaded-`box` and placement-`in`; see Issue 22181.
2015-03-03 20:29:01 +01:00
Alex Crichton
da03392e1f std: Mark Index::Output as a stable associated type
This stability attribute was left out by accident and the stability pass has
since picked up the ability to check for this. As a result, crates are currently
getting warnings for implementations of `Index`.
2015-03-03 11:28:57 -08:00