Commit Graph

52833 Commits

Author SHA1 Message Date
Sébastien Marie 21117259b0 specify the archive file as stdout
If the `-f` option isn't given, GNU tar will use environment variable
`TAPE` first, and next use the compiled-in default, which isn't
necessary `stdout` (it is the tape device `/dev/rst0` under OpenBSD for
example).
2016-05-05 06:48:35 +02:00
bors 7a0ccc458f Auto merge of #33376 - Manishearth:rollup, r=Manishearth
Rollup of 14 pull requests

- Successful merges: #33277, #33294, #33314, #33322, #33333, #33338, #33339, #33340, #33343, #33357, #33363, #33365, #33371, #33372
- Failed merges:
2016-05-04 14:26:28 -07:00
Manish Goregaokar 631e7b4eaa
Rollup merge of #33372 - birkenfeld:rustdoc-escape-code, r=cmr
rustdoc: HTML-escape Rust code (from constants)

Especially in cases like the one in the test file, this can blow up the rendering big time if string constants in the code contain HTML.

But also other constants can contain special chars (e.g. `&` as an operator in constant expressions).
2016-05-03 19:54:59 +05:30
Manish Goregaokar 1ab019584e
Rollup merge of #33371 - birkenfeld:issue-33302, r=cmr
rustdoc: fix inserting source code spans for constant values

This will go wrong when the constants partially result from macro expansion.
Instead, use the expressions and pretty-print them as Rust code.

Fixes: #33302
2016-05-03 19:54:58 +05:30
Manish Goregaokar 676fd362ff
Rollup merge of #33357 - pcwalton:inline-mem-forget, r=brson
libcore: Inline `mem::forget()`.

Was causing severe performance problems in WebRender.

r? @brson
2016-05-03 19:54:56 +05:30
Manish Goregaokar 51a3a8f523
Rollup merge of #33343 - birkenfeld:issue-32214, r=Manishearth
parser: change warning into an error on `T<A=B, C>`

part of #32214

This seems to be the obvious fix, and the error message is consistent with all the other parser errors ("expected x, found y").
2016-05-03 19:54:55 +05:30
Manish Goregaokar 52c97f237b
Rollup merge of #33340 - birkenfeld:issue-23716, r=Manishearth
resolve: print location of static for "static in pattern" error

The implementation mirrors the one for "constant defined here" annotation used for constant patterns in the irrefutable-pattern case.

Fixes: #23716
2016-05-03 19:54:54 +05:30
Manish Goregaokar 041a269bc7
Rollup merge of #33339 - oli-obk:fix/const_eval, r=japaric
fix various const eval errors

These were found after const_evaluating arbitrary expressions and linting if the const evaluator failed

fixes #33275 (int -> float casts for negative ints)
fixes #33291 (int -> char casts (new! wasn't allowed in constants until this PR))

r? @eddyb

cc @bluss @japaric
2016-05-03 19:54:52 +05:30
Manish Goregaokar 2e4474f890
Rollup merge of #33322 - justsostephen:master, r=steveklabnik
doc/book/getting-started.md: Spelling correction and revised wording.

The word 'Internet' was spelt with both an uppercase and a lowercase 'I'. The correct spelling seems to be a matter of some debate these days, however the first occurrence in the file has an uppercase 'I', so I've changed the second occurrence to suit for consistency.

Under the section titled 'Converting to Cargo', there's mention of creating a new executable. This, however, is not part of the process described. I've revised the wording to reflect as much.

Small changes, but I hope they are of benefit! :-)

r? @steveklabnik
2016-05-03 19:54:51 +05:30
Manish Goregaokar 5bac8cb16d
Rollup merge of #33294 - timothy-mcroy:E0501, r=GuillaumeGomez
Add detailed error explanation for E0501

r? @GuillaumeGomez

Bring on the nits!
2016-05-03 19:54:50 +05:30
Manish Goregaokar af05b568c0
Rollup merge of #33277 - birkenfeld:fmt-named-dollar-args, r=steveklabnik
Fix std::fmt format spec: named args are allowed with "$" syntax
2016-05-03 19:54:48 +05:30
Georg Brandl 1bcf41e53f rustdoc: HTML-escape Rust code (from constants)
Especially in cases like the one in the test file, this can blow
up the docs big time if string constants in the code contain HTML.

But also other constants can contain special chars (e.g. `&` as an
operator in constant expressions).
2016-05-03 13:31:29 +02:00
bors 3157691f96 Auto merge of #33330 - birkenfeld:issue-29121, r=Manishearth
typeck: when suggesting associated fns, do not show call site as fallback

In case we cannot produce a span for the location of the definition, just do not show a span at all.

cc: #29121
2016-05-03 04:23:13 -07:00
Georg Brandl 24117f3c58 rustdoc: fix inserting source code spans for constant values
This will go wrong when the constants partially result from macro expansion.
Instead, use the expressions and pretty-print them as Rust code.

Fixes: #33302
2016-05-03 13:09:42 +02:00
bors 7d8100a068 Auto merge of #33119 - nrc:pretty, r=pnkfelix
Refactor pretty printing to use the compiler API
2016-05-02 23:56:48 -07:00
Georg Brandl 780f725176 typeck: when suggesting associated fns, do not show call site as fallback
In case we cannot produce a span for the location of the definition,
just do not show a span at all.

cc: #29121
2016-05-03 08:26:00 +02:00
bors 43c5fef47d Auto merge of #33354 - Manishearth:rollup, r=Manishearth
Rollup of 14 pull requests

- Successful merges: #32756, #33129, #33225, #33260, #33309, #33320, #33323, #33324, #33325, #33330, #33332, #33334, #33335, #33346
- Failed merges:
2016-05-02 21:37:18 -07:00
Manish Goregaokar 638cf9f675
Rollup merge of #33346 - Ryman:patch-4, r=alexcrichton
libstd: correct the link to functions in io module documentation

Currently the link refers to it's own section of the documentation rather than the list of functions generated by rustdoc.

i.e. [this](http://doc.rust-lang.org/std/io/index.html#functions) should link to [this](http://doc.rust-lang.org/std/io/index.html#functions-1)
2016-05-03 08:05:30 +05:30
Manish Goregaokar d6c6bbf200
Rollup merge of #33335 - cramertj:master, r=alexcrichton
docs: Changed docs for `size_of` to describe size as a stride offset

Current documentation for `std::mem::size_of` is ambiguous, and the documentation for `std::intrinsics::size_of` incorrectly defines size.

This fix re-defines size as the offset in bytes between successive instances of a type, as described in LLVM's [getTypeAllocSize](http://llvm.org/docs/doxygen/html/classllvm_1_1DataLayout.html#a1d6fcc02e91ba24510aba42660c90e29).

Fixes: #33266
2016-05-03 08:05:29 +05:30
Manish Goregaokar ac19fdc09c
Rollup merge of #33334 - birkenfeld:issue29088, r=Manishearth
lexer: do not display char confusingly in error message

Current code leads to messages like `... use a \xHH escape: \u{e4}` which is confusing.

The printed span already points to the offending character, which should be enough to identify the non-ASCII problem.

Fixes: #29088
2016-05-03 08:05:29 +05:30
Manish Goregaokar 7e88dc7760
Rollup merge of #33332 - alexcrichton:handle-more-races, r=michaelwoerister
rustc: Handle concurrent `create_dir` requests

The compiler created a directory as part of `-Z incremental` but that may be
hierarchically used concurrently so we need to protect ourselves against that.
2016-05-03 08:05:29 +05:30
Manish Goregaokar 0ee84c71fc
Rollup merge of #33325 - birkenfeld:issue-31341, r=jseyfried
typeck: remove confusing suggestion for calling a fn type

* It is not clear what a "base function" is.
* The suggestion just adds parens, so suggests calling without args.

The second point could be fixed with e.g. `(...)` instead of `()`,
but the preceding "note: X is a function, perhaps you wish to call it"
should already be clear enough.

Fixes: #31341
2016-05-03 08:05:28 +05:30
Manish Goregaokar 68c29e0904
Rollup merge of #33324 - birkenfeld:issue-30497, r=GuillaumeGomez
E0269: add suggestion to check for trailing semicolons

In situations where the value of the last expression must be inferred,
rustc will not emit the "you might need to remove the semicolon" warning,
so at least note this in the extended description.

Fixes: #30497
2016-05-03 08:05:28 +05:30
Manish Goregaokar c4d950d6d5
Rollup merge of #33323 - birkenfeld:issue-31221, r=Manishearth
match check: note "catchall" patterns in unreachable error

Caught as catchall patterns are:

* unconditional name bindings
* references to them
* tuple bindings with catchall elements

Fixes #31221.
2016-05-03 08:05:27 +05:30
Manish Goregaokar 1d6cc191fc
Rollup merge of #33320 - birkenfeld:issue31573, r=arielb1
diagnostics for E0432: imports are relative to crate root

This is curiously missing from both the short message and this long diagnostic.

Refs #31573 (not sure if it should be considered "fixed" as the short message still only refers to extern crates).
2016-05-03 08:05:27 +05:30
Manish Goregaokar 308f10cdf5
Rollup merge of #33309 - birkenfeld:pp, r=nrc
Make libsyntax::print::pp more idiomatic

Minor cleanup, and using VecDeque as a ring buffer instead of a vector.
2016-05-03 08:05:26 +05:30
Manish Goregaokar 40199f68d9
Rollup merge of #32756 - nikomatsakis:borrowck-snippet, r=nrc
Overhaul borrowck error messages and compiler error formatting generally

This is a major overhaul of how the compiler reports errors. The primary goal is to be able to give many spans within the same overall context, such as this:

```
./borrow-errors.rs:73:17: 73:20: error: cannot borrow `*vec` as immutable because previous closure requires unique access [E0501]
70     let append = |e| {
                    ~~~ closure construction occurs here
71         vec.push(e)
           ~~~ previous borrow occurs due to use of `vec` in closure
72     };
73     let data = &vec[3];
                   ~~~ borrow occurs here
74 }
   ~ borrow from closure ends here
```

However, in the process we made a number of other changes:

- Removed the repetitive filenames from snippets and just give the line number.
- Color the line numbers blue so they "fade away"
- Remove the file name and line number from the error code suggestions since they don't seem to fit anymore. (This should probably happen in more places, like existing notes.)
- Newlines in between errors to help group them better.

This PR is not quite ready to land, but we thought it made sense to stop here and get some feedback from people at large. It'd be great if people can check out the branch and play with it. We'd be especially interested in hearing about cases that don't look good with the new formatting (I suspect they exist).

Here is a checklist of some pending work items for this PR. Some of them may be best left for follow-up PRs:

- [x] Accommodate multiple files in a `MultiSpan` (this should be easy)
  - In this case, we want to print filenames though.
- [x] Remove duplicate E0500 code.
- [x] Make the header message bold, rather than current hack that makes all errors/warnings bold
- [x] Update warning text color (yellow is hard to read w/ a white background)

Moved numerous follow-ups to: https://github.com/rust-lang/rust/issues/33240

Joint work with @jonathandturner.

Fixes https://github.com/rust-lang/rust/issues/3533
2016-05-03 08:05:26 +05:30
bors 44b3cd8c46 Auto merge of #32756 - nikomatsakis:borrowck-snippet, r=nrc
Overhaul borrowck error messages and compiler error formatting generally

This is a major overhaul of how the compiler reports errors. The primary goal is to be able to give many spans within the same overall context, such as this:

```
./borrow-errors.rs:73:17: 73:20: error: cannot borrow `*vec` as immutable because previous closure requires unique access [E0501]
70     let append = |e| {
                    ~~~ closure construction occurs here
71         vec.push(e)
           ~~~ previous borrow occurs due to use of `vec` in closure
72     };
73     let data = &vec[3];
                   ~~~ borrow occurs here
74 }
   ~ borrow from closure ends here
```

However, in the process we made a number of other changes:

- Removed the repetitive filenames from snippets and just give the line number.
- Color the line numbers blue so they "fade away"
- Remove the file name and line number from the error code suggestions since they don't seem to fit anymore. (This should probably happen in more places, like existing notes.)
- Newlines in between errors to help group them better.

This PR is not quite ready to land, but we thought it made sense to stop here and get some feedback from people at large. It'd be great if people can check out the branch and play with it. We'd be especially interested in hearing about cases that don't look good with the new formatting (I suspect they exist).

Here is a checklist of some pending work items for this PR. Some of them may be best left for follow-up PRs:

- [x] Accommodate multiple files in a `MultiSpan` (this should be easy)
  - In this case, we want to print filenames though.
- [x] Remove duplicate E0500 code.
- [x] Make the header message bold, rather than current hack that makes all errors/warnings bold
- [x] Update warning text color (yellow is hard to read w/ a white background)

Moved numerous follow-ups to: https://github.com/rust-lang/rust/issues/33240

Joint work with @jonathandturner.

Fixes https://github.com/rust-lang/rust/issues/3533
2016-05-02 19:21:56 -07:00
Nick Cameron c1c6e99bfd rebasing
Note that this whole PR is a [breaking-change] for clients of the Compiler API.
2016-05-03 11:15:09 +12:00
Nick Cameron aaf56d7086 Fix tests 2016-05-03 10:51:01 +12:00
Nick Cameron 52a2b33a4b Refactor pretty printing to use more of the driver 2016-05-03 10:51:01 +12:00
Nick Cameron 7ee02d9f4d Use the compiler API to run pretty printing.
This commit still does a lot of building in pretty because we always run after parsing.
2016-05-03 10:49:47 +12:00
Nick Cameron a4000cbbf8 Make pretty printer take Session by ref 2016-05-03 10:48:22 +12:00
Patrick Walton 237eb7285e libcore: Inline `mem::forget()`.
Was causing severe performance problems in WebRender.
2016-05-02 13:57:53 -07:00
Georg Brandl 4ba6bf44bd resolve: print location of static for "static in pattern" error
The implementation mirrors the one for "constant defined here" annotation
used for constant patterns in the irrefutable-pattern case.

Fixes: #23716
2016-05-02 22:02:07 +02:00
bors 9a003b0ef2 Auto merge of #32386 - brandonedens:llvm_min_size, r=alexcrichton
Add CodeGen options to optimize for size.

Add CodeGen options to annotate functions with the attributes OptimizeSize and/or MinSize used by LLVM to reduce .text size.
Closes #32296
2016-05-02 11:27:20 -07:00
Niko Matsakis 9355a91224 assert we get at least two rendered lines back 2016-05-02 13:05:14 -04:00
Alex Crichton 71e63296a2 rustc: Handle concurrent `create_dir` requests
The compiler created a directory as part of `-Z incremental` but that may be
hierarchically used concurrently so we need to protect ourselves against that.
2016-05-02 09:38:07 -07:00
bors d80497e628 Auto merge of #33308 - ollie27:wingnu_jemalloc, r=alexcrichton
Fix alloc_jemalloc on windows gnu targets

jemalloc prefixes the symbols by default on Windows so we need to account
for that to avoid link errors such as: `undefined reference to 'mallocx'`
when using alloc_jemalloc.
2016-05-02 09:16:23 -07:00
Niko Matsakis db8a9a92b3 avoid double panic 2016-05-02 11:49:26 -04:00
Niko Matsakis 9d151a71c0 do not fail if len(rendered_lines) is == 1
also handle more rendered-lines
2016-05-02 11:49:26 -04:00
jonathandturner f359aa2762 Fix unicode test to use original error format 2016-05-02 11:49:26 -04:00
Niko Matsakis 64e0819fc2 patch travis failure 2016-05-02 11:49:26 -04:00
Niko Matsakis 95576b8ec4 update unit tests 2016-05-02 11:49:26 -04:00
Niko Matsakis 2ba5fac1a4 fix rebase flaws 2016-05-02 11:49:26 -04:00
Jonathan Turner 5974e5b294 Fix up error-pattern style test 2016-05-02 11:49:26 -04:00
Jonathan Turner 79f61a4532 Finish up with 'old school' error mode 2016-05-02 11:49:25 -04:00
Jonathan Turner 84cb56f8ee Add back in a 'old school' error format 2016-05-02 11:49:25 -04:00
Niko Matsakis 49dfac4872 move "lint level defined here" into secondary note
It does not help you to understand the error, just explains why you are
seeing it, so it is clearly secondary.
2016-05-02 11:49:25 -04:00
Niko Matsakis 89d086be74 change color of warning to YELLOW 2016-05-02 11:49:25 -04:00