]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoAuto merge of #57230 - estebank:return-mismatch, r=varkor
bors [Sat, 5 Jan 2019 22:25:47 +0000 (22:25 +0000)]
Auto merge of #57230 - estebank:return-mismatch, r=varkor

Modify mismatched type error for functions with no return

Fix #50009.

```
error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:3:24
   |
LL | fn plus_one(x: i32) -> i32 { //~ ERROR mismatched types
   |    --------            ^^^ expected i32, found ()
   |    |
   |    this function's body doesn't return
LL |     x + 1;
   |          - help: consider removing this semicolon
   |
   = note: expected type `i32`
              found type `()`
```

instead of

```
error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:3:28
   |
LL |   fn plus_one(x: i32) -> i32 { //~ ERROR mismatched types
   |  ____________________________^
LL | |     x + 1;
   | |          - help: consider removing this semicolon
LL | | }
   | |_^ expected i32, found ()
   |
   = note: expected type `i32`
              found type `()`
```

5 years agoAuto merge of #57354 - kennytm:rollup, r=kennytm
bors [Sat, 5 Jan 2019 17:39:59 +0000 (17:39 +0000)]
Auto merge of #57354 - kennytm:rollup, r=kennytm

Rollup of 17 pull requests

Successful merges:

 - #57219 (Remove some unused code)
 - #57229 (Fix #56806 by using `delay_span_bug` in object safety layout sanity checks)
 - #57233 (Rename and fix nolink-with-link-args test)
 - #57238 (Fix backtraces for inlined functions on Windows)
 - #57249 (Fix broken links to second edition TRPL.)
 - #57267 (src/jemalloc is gone, remove its mention from COPYRIGHT)
 - #57273 (Update the stdsimd submodule)
 - #57278 (Add Clippy to config.toml.example)
 - #57295 (Fix 'be be' constructs)
 - #57311 (VaList::copy should not require a mutable ref)
 - #57312 (`const fn` is no longer coming soon (const keyword docs))
 - #57313 (Improve Box<T> -> Pin<Box<T>> conversion)
 - #57314 (Fix repeated word typos)
 - #57326 (Doc rewording, use the same name `writer`)
 - #57338 (rustdoc: force binary filename for compiled doctests)
 - #57342 (librustc_mir: Make qualify_min_const_fn module public)
 - #57343 (Calculate privacy access only via query)

Failed merges:

 - #57340 (Use correct tracking issue for c_variadic)

r? @ghost

5 years agoRollup merge of #57343 - Xanewok:querify-access-levels, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:57:06 +0000 (23:57 +0800)]
Rollup merge of #57343 - Xanewok:querify-access-levels, r=nikomatsakis

Calculate privacy access only via query

Initially converted to query in https://github.com/rust-lang/rust/commit/a9f6babcda1479f4e5566d1aadbf9a0d99aa3182 and then changed to respect dependencies https://github.com/rust-lang/rust/commit/8281e883dd12260f00ce650aa8824507d9c447af.

I did this as an effort to prune `CrateAnalysis` from librustc_save_analysis, with the only thing remaining being the glob map (`name` is unused, existing `crate_name` is exposed in the compiler passes, instead).

Since calculating the glob map is opt-in, it'd be great if we could calculate that on-demand. However, it seems that it'd require converting resolution to queries, which I'm not sure how to do yet.

In an effort to get rid of `CrateAnalysis` altogether, could we try unconditionally calculating the glob_map in the resolver, thus completely removing `CrateAnalysis` struct, and doing a perf run?

r? @nikomatsakis

cc @petrochenkov do you have any idea how/if at all could we querify the resolver? I've stumbled upon a comment that's ~3? years old at the moment, so I'm guessing things might have changed and it actually may be feasible now. https://github.com/rust-lang/rust/blob/fe0c10019d7ee96909cc42cc265ef999a6b5dd70/src/librustc_driver/driver.rs#L589-L593

5 years agoRollup merge of #57342 - phansch:make_public, r=Centril
kennytm [Sat, 5 Jan 2019 15:57:04 +0000 (23:57 +0800)]
Rollup merge of #57342 - phansch:make_public, r=Centril

librustc_mir: Make qualify_min_const_fn module public

Trying to write a `const_fn` lint for Clippy. @oli-obk suggested
[here][link] to use the `is_min_const_fn` function from the
`qualify_min_const_fn` module. However, the module is currently private
and this commit makes it public.

I lack any historical knowledge of the development of the `const_fn`
feature, so I'm not sure if it was private on purpose or not. fwiw, all
modules are already public except `qualify_min_const_fn`.

r? @oli-obk

[link]: https://github.com/rust-lang/rust-clippy/issues/2440#issuecomment-446109978

5 years agoRollup merge of #57338 - QuietMisdreavus:doctest-file-name, r=GuillaumeGomez
kennytm [Sat, 5 Jan 2019 15:57:02 +0000 (23:57 +0800)]
Rollup merge of #57338 - QuietMisdreavus:doctest-file-name, r=GuillaumeGomez

rustdoc: force binary filename for compiled doctests

Fixes https://github.com/rust-lang/rust/issues/57317, needed for https://github.com/rust-lang/rust-by-example/issues/1137

Right now, when building a doctest, rustdoc provides the compiler an output directory (a temp dir) but lets the compiler name the executable. If the doctest needs to be executed, it then tries to run a binary named `rust_out` from that directory. For the most part, this works fine. However, if the doctest sets its own crate name, the compiler uses that name for the output binary instead. This causes rustdoc to try to execute a nonexistent binary, causing the test to fail.

This PR changes the paths rustdoc gives to the compiler when building doctests to force the output *filename* instead of just the *directory*.

5 years agoRollup merge of #57326 - king6cong:doc, r=rkruppe
kennytm [Sat, 5 Jan 2019 15:57:01 +0000 (23:57 +0800)]
Rollup merge of #57326 - king6cong:doc, r=rkruppe

Doc rewording, use the same name `writer`

None

5 years agoRollup merge of #57314 - wiktorkuchta:master, r=Centril
kennytm [Sat, 5 Jan 2019 15:56:59 +0000 (23:56 +0800)]
Rollup merge of #57314 - wiktorkuchta:master, r=Centril

Fix repeated word typos

Inspired by #57295 (I skipped 'be be' because of it) and my [PR in another repo
](https://github.com/e-maxx-eng/e-maxx-eng/pull/389)
Not a stupid `sed`, I actually tried to fix case by case.

5 years agoRollup merge of #57313 - Nemo157:box-to-pin, r=cramertj
kennytm [Sat, 5 Jan 2019 15:56:58 +0000 (23:56 +0800)]
Rollup merge of #57313 - Nemo157:box-to-pin, r=cramertj

Improve Box<T> -> Pin<Box<T>> conversion

I found the `From` trait conversion for this very hard to find, having a named function for it is much more discoverable. Also fixes #56256 as I need that in the place I'm using this.

Has a placeholder tracking issue, will file an issue once I get feedback.

5 years agoRollup merge of #57312 - Mendess2526:master, r=Centril
kennytm [Sat, 5 Jan 2019 15:56:56 +0000 (23:56 +0800)]
Rollup merge of #57312 - Mendess2526:master, r=Centril

`const fn` is no longer coming soon (const keyword docs)

The `const` keyword [documentation](https://doc.rust-lang.org/std/keyword.const.html) mentions that `const fn`s are coming soon, but they have already been added.

5 years agoRollup merge of #57311 - dlrobertson:fix_valist_copy, r=KodrAus
kennytm [Sat, 5 Jan 2019 15:56:55 +0000 (23:56 +0800)]
Rollup merge of #57311 - dlrobertson:fix_valist_copy, r=KodrAus

VaList::copy should not require a mutable ref

`VaList::copy` does not need to take a mutable reference. The `va_copy`
intrinsic takes a immutable reference.

5 years agoRollup merge of #57295 - d-e-s-o:topic/be-be, r=zackmdavis
kennytm [Sat, 5 Jan 2019 15:56:53 +0000 (23:56 +0800)]
Rollup merge of #57295 - d-e-s-o:topic/be-be, r=zackmdavis

Fix 'be be' constructs

I noticed a duplicated "be" somewhere in the code. A search for it
manifested a couple more locations with the same problem. This change
removes one of the "be"s.

5 years agoRollup merge of #57278 - mati865:config_clippy, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:52 +0000 (23:56 +0800)]
Rollup merge of #57278 - mati865:config_clippy, r=alexcrichton

Add Clippy to config.toml.example

Omitted in https://github.com/rust-lang/rust/pull/51122

The order is based on https://github.com/rust-lang/rust/blob/ec194646fef1a467073ad74b8b68f6f202cfce97/src/bootstrap/install.rs#L212

5 years agoRollup merge of #57273 - alexcrichton:update-stdsimd, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:56:51 +0000 (23:56 +0800)]
Rollup merge of #57273 - alexcrichton:update-stdsimd, r=nikomatsakis

Update the stdsimd submodule

Add a new cmpxchg16b intrinsics for x86_64 and some corrections for ARM/AArch64

5 years agoRollup merge of #57267 - rust-lang:SimonSapin-patch-1, r=varkor
kennytm [Sat, 5 Jan 2019 15:56:49 +0000 (23:56 +0800)]
Rollup merge of #57267 - rust-lang:SimonSapin-patch-1, r=varkor

src/jemalloc is gone, remove its mention from COPYRIGHT

The `src/jemalloc` submodule was removed in 61e89446ef6e115630faa75c985c599d739f7586 / https://github.com/rust-lang/rust/pull/55238.

5 years agoRollup merge of #57249 - frewsxcv:frewsxcv-second-edition, r=KodrAus
kennytm [Sat, 5 Jan 2019 15:56:48 +0000 (23:56 +0800)]
Rollup merge of #57249 - frewsxcv:frewsxcv-second-edition, r=KodrAus

Fix broken links to second edition TRPL.

Fixes https://github.com/rust-lang/rust/issues/57104.

Remove `second-edition/` from TRPL hyperlinks.

5 years agoRollup merge of #57238 - Zoxc:bt-fix, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:47 +0000 (23:56 +0800)]
Rollup merge of #57238 - Zoxc:bt-fix, r=alexcrichton

Fix backtraces for inlined functions on Windows

Fixes an regression introduced in https://github.com/rust-lang/rust/pull/50526

r? @alexcrichton

5 years agoRollup merge of #57233 - Smibu:rename-and-fix-nolink-test, r=alexcrichton
kennytm [Sat, 5 Jan 2019 15:56:46 +0000 (23:56 +0800)]
Rollup merge of #57233 - Smibu:rename-and-fix-nolink-test, r=alexcrichton

Rename and fix nolink-with-link-args test

There are three problems with the nolink-with-link-args test:

* The test fails when using MSVC. It's caused by the `linker-flavor=ld` flag which was added in #46291.
* In its comment, this test tests that "link_args are indeed passed when nolink is specified", but the `nolink` attribute has been removed [a long time ago](https://github.com/rust-lang/rust/pull/12826).
* Pattern has a small typo.

At first I was going to completely remove this test, but there is [a closed pull request for that](https://github.com/rust-lang/rust/pull/21090).

So:

* rename the file as suggested in the closed PR
* adjust the comment
* fix typo in the pattern
* add `ignore-msvc`.

r? @alexcrichton

5 years agoRollup merge of #57229 - mikeyhew:fix-56806, r=varkor
kennytm [Sat, 5 Jan 2019 15:56:44 +0000 (23:56 +0800)]
Rollup merge of #57229 - mikeyhew:fix-56806, r=varkor

Fix #56806 by using `delay_span_bug` in object safety layout sanity checks

It's possible that `is_object_safe` is called on a trait method that with an invalid receiver type. This caused an ICE in #56806, because `receiver_is_dispatchable` returns `true` for `self: Box<dyn Trait>`, which causes one of the layout sanity checks in object_safety.rs to fail. Replacing `bug!` with `delay_span_bug` solves this.

The fact that `receiver_is_dispatchable` returns `true` here could be considered a bug. It passes the check that the method implements, though: `Box<dyn Trait>` implements `DispatchFromDyn<Box<dyn Trait>>` because `dyn Trait` implements `Unsize<dyn Trait>`. It would be good to hear what @eddyb and @nikomatsakis think.

Note that I only added a test for the case encountered in #56806. I could not come up with a case that triggered an ICE from the other check, `bug!("receiver when Self = dyn Trait should be ScalarPair, found Scalar")`. There is no way, to my knowledge, that you can make `receiver_is_dispatchable` return true but still have a `Scalar` ABI when `Self = dyn Trait`.

One other case I encountered while debugging #56806 was that if you have a type parameter `T` that implements `Deref<Target=Self>` and `DispatchFromDyn<T>`, and use it as a method receiver, it will cause an ICE during `is_object_safe` because `T` has no layout ([playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=d9b7497b3be0ca8382fa7d9497263214)):

```rust
trait Trait<T: Deref<Target=Self> + DispatchFromDyn<T>> {
    fn foo(self: T) -> dyn Trait<T>;
}
```

I don't intend to remove the ICE there because it is a pathological case, especially since there is no way to implement `DispatchFromDyn<T>` for `T` — the checks in typeck/coherence/builtin.rs do not allow that.

fixes #56806
r? @varkor

5 years agoRollup merge of #57219 - matthewjasper:mir-cleanup, r=nikomatsakis
kennytm [Sat, 5 Jan 2019 15:56:43 +0000 (23:56 +0800)]
Rollup merge of #57219 - matthewjasper:mir-cleanup, r=nikomatsakis

Remove some unused code

Closes #57096

5 years agoAuto merge of #57145 - RalfJung:panic-if-uninhabited, r=alexcrichton
bors [Sat, 5 Jan 2019 14:58:57 +0000 (14:58 +0000)]
Auto merge of #57145 - RalfJung:panic-if-uninhabited, r=alexcrichton

panic when calling MaybeUninhabited::into_inner on uninhabited type

I do this by adding an internal-only intrinsic `panic_if_uninhabited`. I have no idea what I am doing here, just mindlessly copying code around, so please review carefully!

5 years agoAuto merge of #57101 - o01eg:fix-57014, r=alexcrichton
bors [Sat, 5 Jan 2019 12:21:44 +0000 (12:21 +0000)]
Auto merge of #57101 - o01eg:fix-57014, r=alexcrichton

Search codegen backends based on target libdir instead of sysroot

Fixes #57014

Fixes cases with custom libdir when it consists of two or more parts.

5 years agoAuto merge of #57099 - davidtwco:issue-57098, r=nikomatsakis
bors [Sat, 5 Jan 2019 09:41:04 +0000 (09:41 +0000)]
Auto merge of #57099 - davidtwco:issue-57098, r=nikomatsakis

NLL: Add closure cannot be moved note.

Fixes #57098.

This PR extends existing logic for checking whether a closure that
is `FnOnce` and therefore moves variables that it captures from the
environment has already been invoked when being invoked again.

Now, this logic will also check whether the closure is being moved after
previously being moved or invoked and add an appropriate note.

r? @pnkfelix

5 years agoAuto merge of #56837 - arielb1:nonprincipal-trait-objects, r=nikomatsakis
bors [Sat, 5 Jan 2019 03:36:31 +0000 (03:36 +0000)]
Auto merge of #56837 - arielb1:nonprincipal-trait-objects, r=nikomatsakis

Add support for trait-objects without a principal

The hard-error version of #56481 - should be merged after we do something about the `traitobject` crate.

Fixes #33140.
Fixes #57057.

r? @nikomatsakis

5 years agoAuto merge of #56145 - weiznich:re_rebalance_coherence, r=nikomatsakis
bors [Sat, 5 Jan 2019 00:49:12 +0000 (00:49 +0000)]
Auto merge of #56145 - weiznich:re_rebalance_coherence, r=nikomatsakis

Implement the Re-rebalance coherence RFC

This is the first time I touch anything in the compiler so just tell me if I got something wrong.

Big thanks to @sgrif for the pointers where to look for those things.
cc #55437

5 years agouse `delay_span_bug` instead of `bug!` when doing layout sanity check
Michael Hewson [Wed, 19 Dec 2018 23:27:58 +0000 (18:27 -0500)]
use `delay_span_bug` instead of `bug!` when doing layout sanity check

It's possible that `is_object_safe` is called on a trait that is ill-formed, and we shouldn't ICE unless there are no errors being raised. Using `delay_span_bug` solves this.

fixes #56806

5 years agoAuto merge of #56079 - mark-i-m:patch-1, r=nikomatsakis
bors [Fri, 4 Jan 2019 22:14:13 +0000 (22:14 +0000)]
Auto merge of #56079 - mark-i-m:patch-1, r=nikomatsakis

Link to rustc guide

As proposed in https://github.com/rust-lang-nursery/rustc-guide/issues/239

5 years agoadd test for #57162
Ariel Ben-Yehuda [Fri, 4 Jan 2019 19:53:00 +0000 (21:53 +0200)]
add test for #57162

Fixes #57162.

5 years agoadd some debug logging to collect
Ariel Ben-Yehuda [Fri, 4 Jan 2019 13:27:55 +0000 (15:27 +0200)]
add some debug logging to collect

5 years agoAuto merge of #56897 - euclio:parse-fatal, r=estebank
bors [Fri, 4 Jan 2019 19:39:24 +0000 (19:39 +0000)]
Auto merge of #56897 - euclio:parse-fatal, r=estebank

make `panictry!` private to libsyntax

This commit completely removes usage of the `panictry!` macro from
outside libsyntax. The macro causes parse errors to be fatal, so using
it in libsyntax_ext caused parse failures *within* a syntax extension to
be fatal, which is probably not intended.

Furthermore, this commit adds spans to diagnostics emitted by empty
extensions if they were missing, à la #56491.

5 years agolibrustc_mir: Make qualify_min_const_fn module public
Philipp Hansch [Fri, 4 Jan 2019 19:13:24 +0000 (20:13 +0100)]
librustc_mir: Make qualify_min_const_fn module public

Trying to write a `const_fn` lint for Clippy. @oli-obk suggested
[here][link] to use the `is_min_const_fn` function from the
`qualify_min_const_fn` module. However, the module is currently private
and this commit makes it public.

I lack any historical knowledge of the development of the `const_fn`
feature, so I'm not sure if it was private on purpose or not. fwiw, all
modules are already public except `qualify_min_const_fn`.

[link]: https://github.com/rust-lang/rust-clippy/issues/2440#issuecomment-446109978

5 years agoreview comments
Esteban Küber [Fri, 4 Jan 2019 19:17:23 +0000 (11:17 -0800)]
review comments

5 years agoRemove unused name from CrateAnalysis
Igor Matuszewski [Fri, 4 Jan 2019 19:01:01 +0000 (20:01 +0100)]
Remove unused name from CrateAnalysis

5 years agoReplace CrateAnalysis::access_levels with query
Igor Matuszewski [Fri, 4 Jan 2019 16:23:39 +0000 (17:23 +0100)]
Replace CrateAnalysis::access_levels with query

5 years agoFix repeated word in astconv.rs
wiktorkuchta [Fri, 4 Jan 2019 17:50:53 +0000 (17:50 +0000)]
Fix repeated word in astconv.rs

5 years agoUpdate src/librustc/ty/fold.rs
Artem Varaksa [Fri, 4 Jan 2019 17:49:35 +0000 (17:49 +0000)]
Update src/librustc/ty/fold.rs

Co-Authored-By: wiktorkuchta <35867657+wiktorkuchta@users.noreply.github.com>
5 years agoAuto merge of #56723 - oli-obk:lazy_const, r=nikomatsakis
bors [Fri, 4 Jan 2019 17:01:24 +0000 (17:01 +0000)]
Auto merge of #56723 - oli-obk:lazy_const, r=nikomatsakis

Don't emit `Unevaluated` from `const_eval`

cc @eddyb @RalfJung

5 years agoforce binary filename for compiled doctests
QuietMisdreavus [Fri, 4 Jan 2019 15:57:17 +0000 (09:57 -0600)]
force binary filename for compiled doctests

5 years agoAuto merge of #56074 - matthewjasper:forbid-recursive-impl-trait, r=nikomatsakis
bors [Fri, 4 Jan 2019 14:21:19 +0000 (14:21 +0000)]
Auto merge of #56074 - matthewjasper:forbid-recursive-impl-trait, r=nikomatsakis

Forbid recursive impl trait

There is no type T, such that `T = [T; 2]`, but impl Trait could sometimes
be to circumvented this.

This patch makes it a hard error for an opaque type to resolve to such a
"type". Before this can be merged it needs

- [x] A better error message - it's good enough for now.
- [x] A crater run (?) to see if this any real-world code

closes #47659

5 years agoalphabetize marker traits when printed
Ariel Ben-Yehuda [Fri, 4 Jan 2019 13:09:09 +0000 (15:09 +0200)]
alphabetize marker traits when printed

This makes sure they are printed in a compiler-version-independent
order, avoiding ui test instability.

5 years agoAuto merge of #55986 - cjgillot:issue-45510, r=nikomatsakis
bors [Fri, 4 Jan 2019 11:51:30 +0000 (11:51 +0000)]
Auto merge of #55986 - cjgillot:issue-45510, r=nikomatsakis

Allow to dispatch fn traits depending on number of parameters

Hello,

By following @eddyb's advise on issue #45510, I managed to have the snippets of code in #45510 and #18952 passing without breaking older diagnostics.

EDIT: the codegen tests breakage I experienced is due to the poor quality of my laptop.

If any kind reviewer has any advice, you are very welcome.

5 years agoUpdate tests changed by rebase
Georg Semmler [Fri, 4 Jan 2019 09:19:22 +0000 (10:19 +0100)]
Update tests changed by rebase

5 years agoAuto merge of #57315 - ehuss:update-cargo, r=alexcrichton
bors [Fri, 4 Jan 2019 09:10:13 +0000 (09:10 +0000)]
Auto merge of #57315 - ehuss:update-cargo, r=alexcrichton

Update cargo

24 commits in 0d1f1bbeabd5b43a7f3ecfa16540af8e76d5efb4..34320d212dca8cd27d06ce93c16c6151f46fcf2e
2018-12-19 14:45:14 +0000 to 2019-01-03 19:12:38 +0000
- Display environment variables for rustc commands (rust-lang/cargo#6492)
- Fix a very minor race condition in `cargo fix`. (rust-lang/cargo#6515)
- Add a high-level overview of how `fix` works. (rust-lang/cargo#6516)
- Add dependency `registry` to `cargo metadata`. (rust-lang/cargo#6500)
- Fix fingerprint calculation for patched deps. (rust-lang/cargo#6493)
- serialize version directly (rust-lang/cargo#6512)
- use DYLD_FALLBACK_LIBRARY_PATH for dylib_path_envvar on macOS (rust-lang/cargo#6355)
- Fix error message when resolving dependencies (rust-lang/cargo#6510)
- use PathBuf in cargo metadata (rust-lang/cargo#6511)
- Fixed link to testsuite in CONTRIBUTING.md (rust-lang/cargo#6506)
- Update display of contents of Cargo.toml (rust-lang/cargo#6501)
- Update display of contents of Cargo.toml (rust-lang/cargo#6502)
- Fixup cargo install's help message (rust-lang/cargo#6495)
- testsuite: Require failing commands to check output. (rust-lang/cargo#6497)
- Delete unnecessary 'return' (rust-lang/cargo#6496)
- Fix new unused patch warning. (rust-lang/cargo#6494)
- Some minor documentation changes. (rust-lang/cargo#6481)
- Add `links` to `cargo metadata`. (rust-lang/cargo#6480)
- Salvaged semver work (rust-lang/cargo#6476)
- Warn on unused patches. (rust-lang/cargo#6470)
- don't write a an incorrect rustc version to the fingerprint file (rust-lang/cargo#6473)
- Rewrite `login` and registry cleanups. (rust-lang/cargo#6466)
- [issue#6461] Fix cargo commands list (rust-lang/cargo#6462)
- Restrict registry names to same style as package names. (rust-lang/cargo#6469)

5 years agoAuto merge of #56958 - alexcrichton:upgrade-docker, r=kennytm
bors [Fri, 4 Jan 2019 04:34:13 +0000 (04:34 +0000)]
Auto merge of #56958 - alexcrichton:upgrade-docker, r=kennytm

ci: Upgrade Travis to Xenial

In theory we shouldn't require trusty so long as docker continues to
work!

5 years agoDoc rewording, use the same name `writer`
king6cong [Fri, 4 Jan 2019 03:23:24 +0000 (11:23 +0800)]
Doc rewording, use the same name `writer`

5 years agoimplement a hack to make traitobject 0.1.0 compile
Ariel Ben-Yehuda [Thu, 3 Jan 2019 21:46:46 +0000 (23:46 +0200)]
implement a hack to make traitobject 0.1.0 compile

5 years agoRevert "add coherence future-compat warnings for marker-only trait objects"
Ariel Ben-Yehuda [Tue, 1 Jan 2019 21:53:52 +0000 (23:53 +0200)]
Revert "add coherence future-compat warnings for marker-only trait objects"

This reverts commit 760639635facb6c9a0926ac9278bcba71880b0b3.

5 years agoRevert "fix stupid bug"
Ariel Ben-Yehuda [Tue, 1 Jan 2019 21:22:37 +0000 (23:22 +0200)]
Revert "fix stupid bug"

This reverts commit 6e4b2b3ae79770c7ccfcdbfc90dc34fe47ec5f09.

5 years agoadd comment to <List<ExistentialPredicates>>::principal
Ariel Ben-Yehuda [Mon, 17 Dec 2018 22:50:58 +0000 (00:50 +0200)]
add comment to <List<ExistentialPredicates>>::principal

5 years agohack-fix to rustdoc
Ariel Ben-Yehuda [Sat, 15 Dec 2018 15:35:55 +0000 (17:35 +0200)]
hack-fix to rustdoc

5 years agoadd tests
Ariel Ben-Yehuda [Sat, 15 Dec 2018 01:21:00 +0000 (03:21 +0200)]
add tests

5 years agofix ppaux
Ariel Ben-Yehuda [Fri, 14 Dec 2018 23:52:50 +0000 (01:52 +0200)]
fix ppaux

5 years agoavoid giving a principal to marker-only trait objects
Ariel Ben-Yehuda [Tue, 4 Dec 2018 13:17:35 +0000 (15:17 +0200)]
avoid giving a principal to marker-only trait objects

Fixes #33140.

5 years agoadd support for principal-less trait object types
Ariel Ben-Yehuda [Tue, 4 Dec 2018 11:28:06 +0000 (13:28 +0200)]
add support for principal-less trait object types

should be a pure refactoring.

5 years agoForbid impl Trait from referring to unnamable recursive types
Matthew Jasper [Sun, 18 Nov 2018 18:33:44 +0000 (18:33 +0000)]
Forbid impl Trait from referring to unnamable recursive types

There is no type T, such that `T = [T; 2]`, we should not allow this
to be circumvented by impl Trait.

5 years agoMore test deduplication
Georg Semmler [Thu, 3 Jan 2019 12:25:49 +0000 (13:25 +0100)]
More test deduplication

5 years agoAdd missing files
Georg Semmler [Sat, 29 Dec 2018 01:13:06 +0000 (02:13 +0100)]
Add missing files

5 years agoFix typo
Georg Semmler [Fri, 28 Dec 2018 23:51:26 +0000 (00:51 +0100)]
Fix typo

5 years agoUnify tests
Georg Semmler [Fri, 28 Dec 2018 23:11:13 +0000 (00:11 +0100)]
Unify tests

Implement compile tests as variants of existing tests

5 years agoUpdate some new tests to changed error messages
Georg Semmler [Fri, 14 Dec 2018 14:06:03 +0000 (15:06 +0100)]
Update some new tests to changed error messages

5 years agoFix failing compile tests
Georg Semmler [Fri, 14 Dec 2018 11:18:29 +0000 (12:18 +0100)]
Fix failing compile tests

5 years agoDirectly check if input_ty is a type parameter and therefore a
Georg Semmler [Fri, 23 Nov 2018 09:45:17 +0000 (10:45 +0100)]
Directly check if input_ty is a type parameter and therefore a
uncoverd type

5 years agoUpdate src/doc/unstable-book/src/language-features/re-rebalance-coherence.md
varkor [Thu, 22 Nov 2018 22:00:19 +0000 (22:00 +0000)]
Update src/doc/unstable-book/src/language-features/re-rebalance-coherence.md

Co-Authored-By: weiznich <Georg_semmler_05@web.de>
5 years agoFix tidy
Georg Semmler [Wed, 21 Nov 2018 23:14:35 +0000 (00:14 +0100)]
Fix tidy

5 years agoAdd some docs about the new feature to the unstable book
Georg Semmler [Wed, 21 Nov 2018 20:37:09 +0000 (21:37 +0100)]
Add some docs about the new feature to the unstable book

5 years agoAdd some tests
Georg Semmler [Wed, 21 Nov 2018 20:35:56 +0000 (21:35 +0100)]
Add some tests

This copies and adjusts the existing coherence tests to ensure that
they continue to work using the new implementation.

5 years agoImplement the re-rebalance coherence rfc
Georg Semmler [Tue, 20 Nov 2018 22:37:19 +0000 (23:37 +0100)]
Implement the re-rebalance coherence rfc

5 years agoUpdate cargo
Eric Huss [Thu, 3 Jan 2019 20:59:54 +0000 (12:59 -0800)]
Update cargo

5 years agoDisplay `impl Sized` correctly
Matthew Jasper [Wed, 14 Nov 2018 22:24:22 +0000 (22:24 +0000)]
Display `impl Sized` correctly

It used to display as just `impl`

5 years agoFix repeated word typos
Wiktor Kuchta [Thu, 3 Jan 2019 20:27:50 +0000 (21:27 +0100)]
Fix repeated word typos

Found with `git grep -P '\b([a-z]+)\s+\1\b'`

5 years agoci: Upgrade Travis to Xenial
Alex Crichton [Tue, 18 Dec 2018 21:32:09 +0000 (13:32 -0800)]
ci: Upgrade Travis to Xenial

In theory we shouldn't require trusty so long as docker continues to
work!

5 years agoAdd discoverable function for converting Box<T> -> Pin<Box<T>>
Wim Looman [Thu, 3 Jan 2019 20:04:35 +0000 (21:04 +0100)]
Add discoverable function for converting Box<T> -> Pin<Box<T>>

5 years agoAllow converting Box<T: !Sized> -> Pin<Box<T>>
Wim Looman [Thu, 3 Jan 2019 20:03:29 +0000 (21:03 +0100)]
Allow converting Box<T: !Sized> -> Pin<Box<T>>

5 years agoconst fn no longer comming soon on const docs
Mendess2526 [Thu, 3 Jan 2019 19:23:25 +0000 (19:23 +0000)]
const fn no longer comming soon on const docs

5 years agoAuto merge of #55517 - nikomatsakis:universes, r=scalexm
bors [Thu, 3 Jan 2019 17:18:15 +0000 (17:18 +0000)]
Auto merge of #55517 - nikomatsakis:universes, r=scalexm

Universes

This PR transitions the compiler to use **universes** instead of the **leak-check**. It is marked as [WIP] for a few reasons:

- The diagnostics at present are terrible =)
- This changes the behavior of coherence, regressing some things that used to compile

The goals of this PR at present are:

- To start getting some eyes on the code
- To do a crater run
- To see the full travis results (due to https://github.com/rust-lang/rust/issues/52452, I am not able to run the full test suite locally anymore at present)

The first few commits in the PR are changing how `evaluate` treats regions. We now track whether region comparisons occurred, reverting the "staticized" query approach that @arielb1 put in. The problem with "staticized" queries is that it relied on the leak-check to get higher-ranked things correct, and we are removing the leak-check in this PR series, so that caused problems.

You can see at the end a collection of test updates. Mostly we behave the same but with atrocious diagnostics, but there are a number of cases where we used to error and now no longer do, as well as single case where we used to **not** error but we now do (the coherence-subtyping change).

(Note: it would be possible to do a version of leak-check that propagates universe information and recover the old behavior. I am reluctant to do so because I'd like to leave us room to get more precise -- e.g., I want to eventually handle things like `exists<'a> { for<'b> { if ('a: 'b) { 'a: 'b } } }` which presently the leak-check cannot cope with etc. Also because it seems more consistent to me: most folks I've talked to expect the new behavior and are surprised to learn that binding sites were so significant before when it comes to coherence. One question is, though, to what extent are people relying on this in the wild?)

5 years agoVaList::copy should not require a mutable ref
Dan Robertson [Thu, 3 Jan 2019 15:51:50 +0000 (15:51 +0000)]
VaList::copy should not require a mutable ref

VaList::copy does not need to take a mutable reference. The va_copy
intrinsic takes a immutable reference.

5 years agoAuto merge of #56507 - nikomatsakis:polonius-integrate, r=MatthewJasper
bors [Thu, 3 Jan 2019 12:42:16 +0000 (12:42 +0000)]
Auto merge of #56507 - nikomatsakis:polonius-integrate, r=MatthewJasper

polonius tweaks

- bump polonius to 0.6.0
- fix 2-phase-borrow activations

r? @matthewjasper

5 years agoAuto merge of #57282 - matthewjasper:wellformed-return-ty, r=nikomatsakis
bors [Thu, 3 Jan 2019 03:48:12 +0000 (03:48 +0000)]
Auto merge of #57282 - matthewjasper:wellformed-return-ty, r=nikomatsakis

Wf-check the output type of a function in MIR-typeck

Closes #57265

cc @scalexm

5 years agoFix 'be be' constructs
Daniel Mueller [Thu, 3 Jan 2019 02:06:49 +0000 (18:06 -0800)]
Fix 'be be' constructs

I noticed a duplicated "be" somewhere in the code. A search for it
manifested a couple more locations with the same problem. This change
removes one of the "be"s.

5 years agorename `type_moves_by_default` to `type_is_copy_modulo_regions`
Niko Matsakis [Tue, 20 Nov 2018 16:59:06 +0000 (11:59 -0500)]
rename `type_moves_by_default` to `type_is_copy_modulo_regions`

5 years agotry to detect affected code and direct people to #56105
Niko Matsakis [Tue, 20 Nov 2018 16:20:05 +0000 (11:20 -0500)]
try to detect affected code and direct people to #56105

5 years agotrack if any region constraints involved placeholders
Niko Matsakis [Tue, 20 Nov 2018 15:24:38 +0000 (10:24 -0500)]
track if any region constraints involved placeholders

5 years agopacify the mercilous eddyb ;)
Niko Matsakis [Mon, 19 Nov 2018 16:57:22 +0000 (11:57 -0500)]
pacify the mercilous eddyb ;)

5 years agoadd some comments about lifetimes etc
Niko Matsakis [Mon, 19 Nov 2018 15:56:24 +0000 (10:56 -0500)]
add some comments about lifetimes etc

5 years agoaddress tmandry nits
Niko Matsakis [Mon, 19 Nov 2018 15:47:34 +0000 (10:47 -0500)]
address tmandry nits

5 years agopacify the mercilous tidy
Niko Matsakis [Mon, 19 Nov 2018 15:29:50 +0000 (10:29 -0500)]
pacify the mercilous tidy

5 years agoimprove handling for subtype
Niko Matsakis [Mon, 19 Nov 2018 15:26:04 +0000 (10:26 -0500)]
improve handling for subtype

Still not great, but good enough to land this PR.

5 years agosay "the lifetime" instead of "some lifetime" when it feels right
Niko Matsakis [Mon, 19 Nov 2018 00:13:37 +0000 (19:13 -0500)]
say "the lifetime" instead of "some lifetime" when it feels right

In particular, when we want to indicate that there is a connection
between the self type and the other types.

5 years agoapply the same logic to ConcreteFailure errors
Niko Matsakis [Mon, 19 Nov 2018 00:07:38 +0000 (19:07 -0500)]
apply the same logic to ConcreteFailure errors

5 years agorefactor highlighting to take any RegionKind, making it more general
Niko Matsakis [Sun, 18 Nov 2018 20:25:57 +0000 (15:25 -0500)]
refactor highlighting to take any RegionKind, making it more general

5 years agoapply the new placeholder errors even with just one placeholder
Niko Matsakis [Sun, 18 Nov 2018 18:25:53 +0000 (13:25 -0500)]
apply the new placeholder errors even with just one placeholder

5 years agointroduce placeholder-placeholder errors for trait matching
Niko Matsakis [Sat, 17 Nov 2018 13:18:37 +0000 (08:18 -0500)]
introduce placeholder-placeholder errors for trait matching

5 years agoadd the ability to highlight placeholders
Niko Matsakis [Sat, 17 Nov 2018 12:03:26 +0000 (07:03 -0500)]
add the ability to highlight placeholders

5 years agogeneralize region highlights into a struct
Niko Matsakis [Sat, 17 Nov 2018 11:27:44 +0000 (06:27 -0500)]
generalize region highlights into a struct

5 years agodump out the exact state in error reporting debugs
Niko Matsakis [Sat, 17 Nov 2018 11:10:30 +0000 (06:10 -0500)]
dump out the exact state in error reporting debugs

5 years agomake `get_highlight_region_for_regionvid` only affect re-vid
Niko Matsakis [Sat, 17 Nov 2018 00:13:55 +0000 (19:13 -0500)]
make `get_highlight_region_for_regionvid` only affect re-vid

In NLL, ReVid is all there is, but I might want to repurpose.

5 years agoremove outdated `rustc_driver` tests
Niko Matsakis [Wed, 31 Oct 2018 17:20:48 +0000 (13:20 -0400)]
remove outdated `rustc_driver` tests

they are subsumed by `hr-subtype/hr-subtype.rs` and other tests

5 years agoWIP other test changes
Niko Matsakis [Mon, 31 Dec 2018 18:45:48 +0000 (13:45 -0500)]
WIP other test changes

5 years agotests: cases where we now do the right thing but did not before
Niko Matsakis [Mon, 31 Dec 2018 18:45:40 +0000 (13:45 -0500)]
tests: cases where we now do the right thing but did not before

Fixes #33684

5 years agotests: worse diagnostics, but basically same errors
Niko Matsakis [Tue, 30 Oct 2018 20:57:52 +0000 (16:57 -0400)]
tests: worse diagnostics, but basically same errors

5 years agotests: move coherence-subtyping from run-pass to compile-fail
Niko Matsakis [Tue, 30 Oct 2018 20:39:29 +0000 (16:39 -0400)]
tests: move coherence-subtyping from run-pass to compile-fail

This is the pattern we no longer accept.