Commit Graph

98402 Commits

Author SHA1 Message Date
Albin Stjerna
6b09477e91 Polonius: emit initialization/move tracking facts
- var_starts_path
- parent
- initialized_at
- moved_out_at

This also switches to the intended emission of `var_drop_used` fact emission,
where that fact is always emitted on a drop-use of a variable, regardless of its
initialization status, as Polonius now handles that.
2019-09-04 09:46:44 +02:00
Albin Stjerna
996ba932cc NLL: Adapt to the new Polonius types 2019-09-04 09:44:40 +02:00
Albin Stjerna
2adb246b5c NLL: New Polonius version 2019-09-04 09:44:40 +02:00
bors
b9de4ef89e Auto merge of #64127 - Centril:rollup-dfgb9h8, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #64049 (Emit a single error on if expr with expectation and no else clause)
 - #64056 (Account for arbitrary self types in E0599)
 - #64058 (librustc_errors: Extract sugg/subst handling into method)
 - #64071 (use just one name when parameters and fields are the same)
 - #64104 (Emit error on intrinsic to fn ptr casts)

Failed merges:

r? @ghost
2019-09-03 15:17:31 +00:00
Mazdak Farrokhzad
24e3b1d0d3
Rollup merge of #64104 - Mark-Simulacrum:intrinsic-fn-ptr-ice, r=estebank
Emit error on intrinsic to fn ptr casts

I'm not sure if a type error is the best way of doing this but it seemed like a relatively correct place to do it, and I expect this is a pretty rare case to hit anyway.

Fixes #15694
2019-09-03 14:27:05 +02:00
Mazdak Farrokhzad
a906a83d98
Rollup merge of #64071 - guanqun:style-fix, r=Centril
use just one name when parameters and fields are the same
2019-09-03 14:27:03 +02:00
Mazdak Farrokhzad
586aeb4c9d
Rollup merge of #64058 - phansch:refactor_out_method, r=estebank
librustc_errors: Extract sugg/subst handling into method

An initial refactoring before working on #61809.

This moves the whole block into a method so that it can be reused in the
annotate-snippet emitter. The method is already used in the new emitter, but
there's no UI tests with suggestions included in this PR.

A first look at some UI tests with suggestions showed that there's some
more work to do in [annotate-snippet-rs][annotate-snippet-rs] before the new output is closer to the
current one, so I opted to do that in a second step.

r? @estebank

[annotate-snippet-rs]: https://github.com/rust-lang/annotate-snippets-rs
2019-09-03 14:27:01 +02:00
Mazdak Farrokhzad
56d00e388b
Rollup merge of #64056 - estebank:arbitrary-self-types, r=Centril
Account for arbitrary self types in E0599

Fix https://github.com/rust-lang/rust/issues/62373
2019-09-03 14:27:00 +02:00
Mazdak Farrokhzad
4245be7fb3
Rollup merge of #64049 - estebank:if-else-type-err, r=Centril
Emit a single error on if expr with expectation and no else clause

Fix https://github.com/rust-lang/rust/issues/60254.

r? @Centril
2019-09-03 14:26:58 +02:00
bors
815dec9db1 Auto merge of #63869 - GuillaumeGomez:fix-build-failure, r=Mark-Simulacrum
Fix build failure in case file doesn't exist

It fixes the following issue:

```bash
$ ./x.py test src/tools/linkchecker ./build/x86_64-apple-darwin/doc/ --stage 1
Updating only changed submodules
Submodules updated in 0.05 seconds
    Finished dev [unoptimized] target(s) in 0.15s
thread 'main' panicked at 'source "/Users/imperio/rust/rust/build/x86_64-apple-darwin/doc/version_info.html" failed to get metadata: No such file or directory (os error 2)', src/build_helper/lib.rs:179:19
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
failed to run: /Users/imperio/rust/rust/build/bootstrap/debug/bootstrap test src/tools/linkchecker ./build/x86_64-apple-darwin/doc/ --stage 1
Build completed unsuccessfully in 0:00:01
```

If the file doesn't exist, it makes sense anyway to just run the command in order to generate it.

r? @Mark-Simulacrum
2019-09-03 04:33:08 +00:00
bors
b50520835f Auto merge of #63561 - HeroicKatora:alloc-private-bytes, r=oli-obk
Make Allocation::bytes private

Fixes #62931.

Direct immutable access to the bytes is still possible but redirected through the new method `raw_bytes_with_undef_and_ptr`, similar to `get_bytes_with_undef_and_ptr` but without requiring an interpretation context and not doing *any* relocation or bounds checks. The `size` of the allocation is stored separately which makes access as `Size` and `usize` more ergonomic.

cc: @RalfJung
2019-09-02 22:07:40 +00:00
Mark Rousskov
dd323f8a72 Emit error on intrinsic to fn ptr casts 2019-09-02 17:28:37 -04:00
bors
9af17757be Auto merge of #63692 - iluuu1994:issue-49660, r=sfackler
Test that Wrapping arithmetic ops are implemented for all int types

Closes #49660
2019-09-02 15:32:08 +00:00
Guillaume Gomez
a80ab3a2f8 Generate version file if it doesn't exist 2019-09-02 14:13:36 +02:00
bors
fdaf594bab Auto merge of #63834 - andjo403:rustdoc-linker-remove, r=Mark-Simulacrum
remove the unstable rustdoc parameter --linker

use the code generation parameter -Clinker (same parameter as rustc)
to control what linker to use for building the rustdoc test executables.

closes: #63816
2019-09-02 02:11:07 +00:00
Esteban Küber
141f5a7558 review comments 2019-09-01 11:20:33 -07:00
bors
dfd43f0fdd Auto merge of #63870 - estebank:async-fn-call, r=oli-obk
Suggest call fn ctor passed as arg to fn with type param bounds

_Reviewer note: the relevant changes are in the second commit, the first is simple and mechanical, but verbose._

When forgetting to call a fn in an argument position to an fn that has a generic bound:

```rust
async fn foo() {}

fn bar(f: impl Future<Output=()>) {}

fn main() {
    bar(foo); // <- should be `bar(foo());`
}
```

suggest calling it:

```
error[E0277]: the trait bound `fn() -> impl std::future::Future {foo}: std::future::Future` is not satisfied
  --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:9:5
   |
LL | fn bar(f: impl Future<Output=()>) {}
   | --------------------------------- required by `bar`
...
LL |     bar(foo);
   |     ^^^ the trait `std::future::Future` is not implemented for `fn() -> impl std::future::Future {foo}`
   |
   = help: it looks like you forgot to use parentheses to call the function: `foo()`
```

Fix #63100. Follow up to #63833 and #63337.
2019-09-01 18:04:49 +00:00
Esteban Küber
f53c2179ba review comments 2019-09-01 10:49:07 -07:00
Guanqun Lu
ab12dfeb16 following the same style 2019-09-02 00:38:05 +08:00
bors
e29faf0d09 Auto merge of #64057 - Centril:rollup-nwtk2fb, r=Centril
Rollup of 5 pull requests

Successful merges:

 - #63410 (Update BufWriter example to include call to flush())
 - #64029 (Account for rounding errors when deciding the diagnostic boundaries)
 - #64032 (rustdoc use -Ccodegen-units=1 by default for test compile)
 - #64039 (Update sync condvar doc style)
 - #64042 (Fix word repetition in str documentation)

Failed merges:

r? @ghost
2019-09-01 11:46:45 +00:00
Philipp Hansch
84ccbe2076
librustc_errors: Extract sugg/subst handling into method
An initial refactoring before working on #61809.

This moves the whole block into a method so that it can be reused in the
annotate-snippet output. It's already used in the new emitter, but
there's no UI tests with suggestions included in this PR.

A first look at some UI tests with suggestions showed that there's some
more work to do in [annotate-snippet-rs][annotate-snippet-rs] before the
new output is closer to the current one.
2019-09-01 13:05:47 +02:00
Mazdak Farrokhzad
0211246c7b
Rollup merge of #64042 - juliangehring:string-docs, r=jonas-schievink
Fix word repetition in str documentation

Fixes a few repetitions of "like like" in the `trim*` methods documentation of `str`.
2019-09-01 11:39:30 +02:00
Mazdak Farrokhzad
a7ba1befd7
Rollup merge of #64039 - pickfire:patch-1, r=jonas-schievink
Update sync condvar doc style
2019-09-01 11:39:29 +02:00
Mazdak Farrokhzad
6eadfc3459
Rollup merge of #64032 - andjo403:codegen-units, r=Mark-Simulacrum
rustdoc use -Ccodegen-units=1 by default for test compile

as the test is small we do not want split up in multiple codegen units
and also as there is multiple test running at the same time this
will reduce the number of concurrent threads

tested the test time with `./x.py test src/libcore --doc`
for my 16 core 32 thread cpu i get about 6% faster execution
and my 2 core 4 thread cpu I get about 10% faster execution

cc #63638
 r? @Mark-Simulacrum
2019-09-01 11:39:28 +02:00
Mazdak Farrokhzad
bccf49ffc8
Rollup merge of #64029 - estebank:fix-miri, r=RalfJung
Account for rounding errors when deciding the diagnostic boundaries

Fix Miri by fixing the bug raised in https://github.com/rust-lang/rust/pull/63402#discussion_r319485328.

Fixes https://github.com/rust-lang/rust/issues/64020
2019-09-01 11:39:26 +02:00
Mazdak Farrokhzad
064b7041c5
Rollup merge of #63410 - johnterickson:master, r=joshtriplett
Update BufWriter example to include call to flush()

I was playing with a writing a Huffman encoder/decoder and was getting weird corruptions and truncations.  I finally realized it was was because `BufWriter` was swallowing write errors 😬.  I've found Rust to generally be explicit and err on the safe side, so I definitely found this unintuitive and not "rustic".

https://twitter.com/johnterickson/status/1159514988123312128
2019-09-01 11:39:25 +02:00
Esteban Küber
a9ce33c059 Account for arbitrary self types in E0599 2019-09-01 02:22:42 -07:00
Esteban Küber
e553051950 review comment 2019-09-01 02:22:03 -07:00
bors
d0677b9abc Auto merge of #64036 - matthewjasper:kill-borrows-on-self-assign, r=estebank
Kill borrows from assignments after generating new borrows

Closes #63719
2019-09-01 08:15:04 +00:00
Andreas Jonson
f0b30c7ded remove the unstable rustdoc parameter --linker
use the code generation parameter -Clinker (same parameter as rustc)
to control what linker to use for building the rustdoc test executables.

closes: #63816
2019-09-01 08:50:23 +02:00
Esteban Küber
aae2b245e4 deduplicate code 2019-08-31 19:07:59 -07:00
Esteban Küber
cab607edcf Emit a single error on if expr with expectation and no else clause 2019-08-31 18:34:50 -07:00
Esteban Küber
84567190e0 Use saturating_sub 2019-08-31 13:42:53 -07:00
Esteban Küber
aee6cd937a Fix nll tests 2019-08-31 13:40:20 -07:00
bors
59cc53e6e7 Auto merge of #63703 - tommilligan:warn-empty-doctest, r=ollie27
rustdoc: warn on empty doc test

Closes #60319.

A doc test that only contains whitespace should result in a warning.

This PR adds detection of empty doc tests to `check-code-block-syntax`, as having an invalid doc test is mutually exclusive with an empty doc test.
2019-08-31 20:10:20 +00:00
Andreas Molzer
f3c435eb78 Reorder AllocationDefinedness members
This improves the clarity of the documentation a bit since they can
reference each other when reading the member docs in sequence.
2019-08-31 21:21:29 +02:00
Julian Gehring
c4d0c285fe Fix word repetition in str documentation
Fixes a few repetitions of "like like" in the `trim*` methods documentation of `str`.
2019-08-31 17:38:23 +01:00
bors
fba38ac27e Auto merge of #64025 - Wind-River:master_003, r=alexcrichton
remove directory libstd/sys/vxworks/backtrace which is not used any more

r? @alexcrichton
cc @n-salim
2019-08-31 16:19:10 +00:00
Andreas Molzer
823c3b9845 Improve documentation around allocation accessors 2019-08-31 17:19:01 +02:00
Ivan Tham
e2e1175ce2
Update sync condvar doc style 2019-08-31 23:09:37 +08:00
John Erickson
1b946106b7 clarify that not all errors are observed 2019-08-31 07:38:13 -07:00
John Erickson
cccce09dda Add in generic type to description of BufReader and BufWriter 2019-08-31 07:38:13 -07:00
John Erickson
c8e474871a Update BufWriter example to include call to flush() 2019-08-31 07:38:02 -07:00
Matthew Jasper
c621919deb Kill borrows from assignments after generating new borrows 2019-08-31 15:35:20 +01:00
Esteban Küber
9d15b6fb95 fix rebase 2019-08-31 00:15:52 -07:00
Esteban Küber
7604eed2a9 review comments: reword comment 2019-08-31 00:14:23 -07:00
Esteban Küber
5384d5584f Suggest call fn ctor passed as arg to fn with type param bounds 2019-08-31 00:14:23 -07:00
Esteban Küber
444bc3ca66 Use span label instead of note for cause in E0631 2019-08-31 00:14:23 -07:00
bors
b3146549ab Auto merge of #63991 - Centril:unique-improper-ctype, r=rkruppe
`improper_ctypes`: guard against accidental change to `Unique<T>`

r? @eddyb
2019-08-31 06:38:46 +00:00
Esteban Küber
bf90154410 Tweak terminal width trimming
Properly account for left margin when setting terminal width through
CLI flag and don't trim code by default if we can't get the terminal's
dimensions.
2019-08-30 19:47:21 -07:00