Commit Graph

65311 Commits

Author SHA1 Message Date
gaurikholkar
5be4fa864a code fixes for error code use warning 2017-06-29 06:37:18 -07:00
gaurikholkar
5841021f07 conflict fixes 2017-06-29 06:37:18 -07:00
gaurikholkar
e8b8f30373 Code review fixes 2017-06-29 06:37:18 -07:00
Niko Matsakis
95409016f8 remove fn main() { } from extended errors 2017-06-29 06:37:18 -07:00
gaurikholkar
aebc4e0074 Changing the error code to E0621 2017-06-29 06:37:18 -07:00
gaurikholkar
82f25b32ae code review fixes 2017-06-29 06:37:18 -07:00
gaurikholkar
a851e1e543 Adding changes to track anonymous region in self 2017-06-29 06:37:18 -07:00
gaurikholkar
2d99ffd11b track anonymous regions in return types, fix tidy errors 2017-06-29 06:37:18 -07:00
gaurikholkar
8fb6f74e57 Enabling E0611 for inherent functions 2017-06-29 06:37:18 -07:00
gaurikholkar
ae92bd095c Interchange ^ and - 2017-06-29 06:37:18 -07:00
Niko Matsakis
4bed5f0094 update reference for test 2017-06-29 06:37:18 -07:00
gaurikholkar
5df7a2c863 Adding new ui test for trait impl 2017-06-29 06:37:18 -07:00
gaurikholkar
176225c4dd Adding diagnostic code 0611 for lifetime errors with one named, one anonymous lifetime parameter 2017-06-29 06:37:18 -07:00
bors
7acce3724d Auto merge of #42964 - arielb1:rollup, r=arielb1
Rollup of 12 pull requests

- Successful merges: #42219, #42831, #42832, #42884, #42886, #42901, #42919, #42920, #42946, #42953, #42955, #42958
- Failed merges:
2017-06-29 08:40:39 +00:00
Ariel Ben-Yehuda
d3329d7102 Rollup merge of #42958 - aidanhs:aphs-better-stamping, r=Mark-Simulacrum
Better timestamps in builds

r? @Mark-Simulacrum
2017-06-29 08:40:13 +00:00
Ariel Ben-Yehuda
b0ed6d11e1 Rollup merge of #42955 - matklad:doc-path, r=steveklabnik
Document that `/` works as separator on Windows

Hi Whenever I see code like `Path::new("./src/bin/main.rs")` or `path.ends_with("foo/bar")`, I wonder if it will work on Windows as I expect. Unfortunately, reading the current docs does not help to answer this question, because all examples are Unix-specific.

However, I believe that using `/` is fine, because both Windows itself [and Rust stdlib](47faf1d519/src/libstd/sys/windows/path.rs (L26)) do treat it as a file separator, and because it is [actually used](abf01e1edd/tests/git.rs (L579)) in Cargo. So looks like we can just document it?

r? @steveklabnik

cc @retep998 I don't actually program for windows that much, so I might be totally wrong, and perhaps we should advise to always use (allocating) `.join` method to construct paths of more than one component?
2017-06-29 08:40:12 +00:00
Ariel Ben-Yehuda
4f121542e9 Rollup merge of #42953 - estebank:fix-20729, r=petrochenkov
Move type parameter shadowing test to `ui`

Fix #20729.
2017-06-29 08:40:10 +00:00
Ariel Ben-Yehuda
486aca787a Rollup merge of #42946 - AndiDog:patch-1, r=GuillaumeGomez
compile-error.md: Fix link reference

Was a copy-paste mistake, I guess
2017-06-29 08:40:09 +00:00
Ariel Ben-Yehuda
647a36da73 Rollup merge of #42920 - behnam:cmp, r=BurntSushi
[libcore/cmp] Expand Ord/PartialOrd Derivable doc for enum types

Expand Derivable docblock section for `Ord` and `PartialOrd` to cover
`enum` types, in addition to the existing language explaining it for
`struct` types.
2017-06-29 08:40:08 +00:00
Ariel Ben-Yehuda
bfe0098b66 Rollup merge of #42919 - zackmdavis:once_again_we_heard_you_the_first_time, r=eddyb
make lint on-by-default/implied-by messages appear only once

From review discussion on #38103 (https://github.com/rust-lang/rust/pull/38103#discussion_r94845060).

![we_heard](https://user-images.githubusercontent.com/1076988/27564103-6284b78e-5a8a-11e7-9d35-f7f297ca9573.png)

r? @nikomatsakis
2017-06-29 08:40:07 +00:00
Ariel Ben-Yehuda
ea762f2bff Rollup merge of #42901 - alexcrichton:alloc-one, r=sfackler
std: Fix implementation of `Alloc::alloc_one`

This had an accidental `u8 as *mut T` where it was intended to have just a
normal pointer-to-pointer cast.

Closes #42827
2017-06-29 08:40:06 +00:00
Ariel Ben-Yehuda
effd1e040e Rollup merge of #42886 - durka:pplmm-mwe, r=petrochenkov
syntax: allow negative integer literal expression to be interpolated as pattern

Fixes #42820.

r? @jseyfried
2017-06-29 08:40:05 +00:00
Ariel Ben-Yehuda
4bae0d8b7f Rollup merge of #42884 - stepancheg:set-env-run-pass, r=alexcrichton
Move global vars changing tests into run-pass

Should fix race #42795
2017-06-29 08:40:04 +00:00
Ariel Ben-Yehuda
5682494cf8 Rollup merge of #42832 - rthomas:doc-fmt, r=steveklabnik
Update docs for std::fmt::format #29355.

This rewords and removes the `Arguments` section from the docs for
fmt::format.

r? @steveklabnik
2017-06-29 08:40:03 +00:00
Ariel Ben-Yehuda
8b32c511e7 Rollup merge of #42831 - rthomas:master, r=QuietMisdreavus
Update docs for fmt::write.

#29355

I reworded it slightly to make it more clear that the function only take
two arguments - the output and the Arguments struct that can be
generated from the format_args! macro.

r? @steveklabnik
2017-06-29 08:40:02 +00:00
Ariel Ben-Yehuda
bea4e60327 Rollup merge of #42219 - pwoolcoc:add-allow-fail-to-libtest, r=GuillaumeGomez
add `allow_fail` test attribute

This change allows the user to add an `#[allow_fail]` attribute to
tests that will cause the test to compile & run, but if the test fails
it will not cause the entire test run to fail. The test output will
show the failure, but in yellow instead of red, and also indicate that
it was an allowed failure.

Here is an example of the output: http://imgur.com/a/wt7ga
2017-06-29 08:40:01 +00:00
bors
dc2003b7cc Auto merge of #42848 - ids1024:redox-fix, r=sfackler
Fix Redox build, broken in ecbb896b9e
2017-06-29 06:20:17 +00:00
bors
0816b94f02 Auto merge of #42642 - venkatagiri:issue_42312, r=nikomatsakis
rustc_typeck: enforce argument type is sized

closes #42312

r? @nikomatsakis
2017-06-29 02:30:53 +00:00
bors
c28cbfb127 Auto merge of #42797 - arielb1:ex-falso-ice, r=nikomatsakis
avoid translating roots with predicates that do not hold

Finally I got around to doing this.

Fixes #37725.

r? @nikomatsakis
2017-06-28 23:58:11 +00:00
Aidan Hobson Sayers
984e76468b Record some details to help with possible bad clocks 2017-06-28 23:36:34 +01:00
Esteban Küber
5ed38946be Move type parameter shadowing test to ui 2017-06-28 15:11:05 -07:00
Aidan Hobson Sayers
b689e46c62 Stamp the whole build script 2017-06-28 22:54:05 +01:00
Ariel Ben-Yehuda
a6ca302097 add comments 2017-06-28 23:50:24 +03:00
Venkata Giri Reddy
5ed21f5d47 rustc_typeck: use body-id of type-checking item in need_type_info 2017-06-28 20:19:52 +00:00
bors
69c65d2961 Auto merge of #42850 - estebank:unwanted-return-rotj, r=nikomatsakis
Detect missing `;` on methods with return type `()`

 - Point out the origin of a type requirement when it is the return type
   of a method
 - Point out possibly missing semicolon when the return type is `()` and
   the implicit return makes sense as a statement
 - Suggest changing the return type of methods with default return type
 - Don't suggest changing the return type on `fn main()`
 - Don't suggest changing the return type on impl fn
 - Suggest removal of semicolon (instead of being help)
2017-06-28 20:16:13 +00:00
Aleksey Kladov
40dec0984e Document that / works as separator on Windows 2017-06-28 23:14:06 +03:00
Venkata Giri Reddy
74cb315a10 rustc_typeck: enforce argument type is sized 2017-06-28 17:54:18 +00:00
Venkata Giri Reddy
6db48380ce rustc_typeck: remove old-style WF obligation 2017-06-28 17:54:17 +00:00
bors
47faf1d519 Auto merge of #42819 - scottmcm:swap-nonoverlapping, r=sfackler
Reuse the mem::swap optimizations to speed up slice::rotate

This is most helpful for compound types where LLVM didn't vectorize the loop.  Highlight: bench slice::rotate_medium_by727_strings gets 38% faster.

Exposes the swapping logic from PR https://github.com/rust-lang/rust/pull/40454 as `pub unsafe fn ptr::swap_nonoverlapping` under library feature `swap_nonoverlapping` https://github.com/rust-lang/rust/issues/42818.

(The new method seemed plausible, and was the simplest way to share the logic.  I'm not attached to it, though, so let me know if a different way would be better.)
2017-06-28 14:33:00 +00:00
bors
c16930762a Auto merge of #42745 - sfackler:1.19-stabilization, r=alexcrichton
1.19 stabilization

r? @alexcrichton
2017-06-28 11:55:37 +00:00
Andreas Sommer
4fb67dcf8f Fix link reference 2017-06-28 10:55:57 +02:00
bors
6b52a1162e Auto merge of #42931 - arielb1:statement-visitor, r=eddyb
re-add the call to `super_statement` in EraseRegions

The move gathering code is sensitive to type-equality - that is rather
un-robust and I plan to fix it eventually, but that's a more invasive
change. And we want to fix the visitor anyway.

Fixes #42903.

r? @eddyb
2017-06-28 08:47:29 +00:00
Ariel Ben-Yehuda
71abfa7b91 re-add the call to super_statement in EraseRegions
The move gathering code is sensitive to type-equality - that is rather
un-robust and I plan to fix it eventually, but that's a more invasive
change. And we want to fix the visitor anyway.

Fixes #42903.
2017-06-28 11:01:42 +03:00
bors
5bc8941638 Auto merge of #42709 - stepancheg:discriminant-hash, r=jseyfried
deriv(Hash) for single-variant enum should not hash discriminant

Fixes #39137
2017-06-28 06:32:10 +00:00
bors
88c3242ef2 Auto merge of #42431 - nagisa:core-float-2, r=alexcrichton
Fix NaN handling in is_sign_negative/positive

This would be my proposed fix for the #42425 provided we decide it is indeed a problem.

Note this would technically be a breaking change to a stable API. We might want to consider deprecating these methods and adding new ones.
2017-06-28 03:41:22 +00:00
bors
4079e6128f Auto merge of #42417 - eddyb:separate-fn-sig, r=nikomatsakis
Don't drag function signatures along function item types.

This PR separates the signature of a function from the "function item type" (`TyFnDef`), leaving only the `DefId` and parameter `Substs`, making them even more like (captureless) closure types.

The motivation for this change is reducing typesystem complexity, and its consequences:
* operating on the signature instead of just the parameters was less efficient
  * specifically, signatures can easily add several levels of depth on top of the parameter types
  * and the signatured were always substituted and normalized, so typically even more complex
* it was *the only* type that was *both* nominal (identity) and structural (signature)
  * harder to model in Chalk than either a purely nominal or structural type
  * subtyping worked on the signature but parameters were always invariant
  * call type-checking was transforming signatures but keeping the nominal half intact
  * the signature could therefore get out of sync during type inference in several ways

That last point comes with a `[breaking-change]`, because functions with `'static` in their return types will now *not* be as usable as if they were using lifetime parameters instead:
```rust
// Will cause lifetime mismatch in main after this PR.
fn bar() -> &'static str { "bar" }
// Will continue to work fine, as every use can choose its own lifetime.
fn bar<'a>() -> &'a str { "bar" }

fn main() {
    let s = String::from("foo");
    Some(&s[..]).unwrap_or_else(bar);
}
```

r? @nikomatsakis
2017-06-28 01:12:12 +00:00
Esteban Küber
7dad2958be Review comments
- Fix typo
- Add docstring
- Remove spurious test output file
2017-06-27 13:34:56 -07:00
Alex Burka
0dfd9c30f2 syntax: allow negative integer literal expression to be interpolated as pattern 2017-06-27 18:39:38 +00:00
Eduard-Mihai Burtescu
69076f3a78 tests: work around fallout from normalizing signatures separately. 2017-06-27 16:39:58 +03:00
Eduard-Mihai Burtescu
a9d4069975 rustc_typeck: support functions in variance computation. 2017-06-27 16:39:58 +03:00