Commit Graph

84684 Commits

Author SHA1 Message Date
Oliver Scherer
8ac7fa414b Synchronize get_vtable with the codegen_llvm one 2018-10-15 20:59:15 +02:00
Oliver Scherer
80feed380d Deduplicate vtables within a single evaluation 2018-10-15 20:54:23 +02:00
bors
4f9b581f71 Auto merge of #54917 - varkor:unused-which, r=cramertj
Unused result warning: "X which must" ↦ "X that must"

Address a little grammatical faux pas in the unused result warning.
2018-10-15 14:16:45 +00:00
bors
2a5de33193 Auto merge of #55084 - matthiaskrgr:clippy, r=oli-obk
submodules: update clippy from 9d337313 to 5afdf8b7

Should fix toolstate.

Changes:

````
fix for rustc master
mem_forget: fix syntax error in code sample
explicit_counter_loop fix #3308 false positive
new_ret_no_self test remove tool lints cfg flag
Added new_ret_no_self exception to clippy to pass dogfood tests
Removed new_ret_no_self tests from method.rs
new_ret_no_self correctly lint impl return
Removed unused variables
new_ret_no_self fix false positive for impl trait return with associated type self
new_ret_no_self corrected panic and added test stderr
new_ret_no_self added positive test cases
Fix some more `stutter` warnings
unused unit lint
Install Windows SDK 10.0 on travis
cmp_owned refactor
cmp_owned correct error message if rhs is deref
Add a comment reminding to update README if the default changes
Specify which categories are enabled by default
Only run markdown linter on linux
Move Travis Windows build to allowed failures
Add Travis windows build
Fix `doc_markdown` lints
Fix `stutter` lints
Fix `similar_names` warnings
cmp_owned current suggestion for multiple deref
cmp_owned add test for multiple dereference
Corrected single-character string constant used as pattern found in dogfood test
Fixes 3289, cmp_owned wording and false positive
````
2018-10-15 10:31:48 +00:00
bors
42f401dd02 Auto merge of #55064 - RalfJung:miri-update, r=oli-obk
update miri

This pulls in the changes in miri to actually enable validation. So, the rustc test suite will let us know if anything we cover regresses in that regard. :)

r? @oli-obk
2018-10-15 06:36:23 +00:00
Matthias Krüger
5086280c3a submodules: update clippy from 9d337313 to 5afdf8b7
Changes:

````
fix for rustc master
mem_forget: fix syntax error in code sample
explicit_counter_loop fix #3308 false positive
new_ret_no_self test remove tool lints cfg flag
Added new_ret_no_self exception to clippy to pass dogfood tests
Removed new_ret_no_self tests from method.rs
new_ret_no_self correctly lint impl return
Removed unused variables
new_ret_no_self fix false positive for impl trait return with associated type self
new_ret_no_self corrected panic and added test stderr
new_ret_no_self added positive test cases
Fix some more `stutter` warnings
unused unit lint
Install Windows SDK 10.0 on travis
cmp_owned refactor
cmp_owned correct error message if rhs is deref
Add a comment reminding to update README if the default changes
Specify which categories are enabled by default
Only run markdown linter on linux
Move Travis Windows build to allowed failures
Add Travis windows build
Fix `doc_markdown` lints
Fix `stutter` lints
Fix `similar_names` warnings
cmp_owned current suggestion for multiple deref
cmp_owned add test for multiple dereference
Corrected single-character string constant used as pattern found in dogfood test
Fixes 3289, cmp_owned wording and false positive
````
2018-10-15 06:50:56 +02:00
bors
c40e2ac2b6 Auto merge of #55024 - alexcrichton:wasm-simd-by-val, r=estebank
rustc: Allow targets to specify SIMD args are by-val

The upcoming SIMD support in the wasm target is unique from the other
platforms where it's either unconditionally available or not available,
there's no halfway where a subsection of the program can use it but no
other parts of the program can use it. In this world it's valid for wasm
SIMD args to always be passed by value and there's no need to pass them
by reference.

This commit adds a new custom target specification option
`simd_types_indirect` which defaults to `true`, but the wasm backend
disables this and sets it to `false`.
2018-10-15 02:48:24 +00:00
bors
f02768b685 Auto merge of #55008 - ljedrz:cleanup_rustc_driver, r=estebank
Cleanup rustc/driver

- improve/remove allocations
- simplify `profile::trace::cons*`
- don't sort `base` if it only has one element
- use `Cow<str>` where applicable
- use `unwrap_or_else` with function calls
- remove an explicit `return`, add an explicit `None`
- remove lifetimes from `const`s
- improve common patterns
- improve macro calls
- whitespace & formatting fixes
2018-10-15 00:18:27 +00:00
bors
0c665e20db Auto merge of #55046 - wesleywiser:no_virtual_call_inlining, r=varkor
[mir-inlining] Don't inline virtual calls
2018-10-14 21:50:23 +00:00
bors
14f42a732f Auto merge of #55032 - oli-obk:the_early_unwrap_gets_the_panic, r=Mark-Simulacrum
Check the invariant for `principal` inside the method

r? @Mark-Simulacrum
2018-10-14 18:06:20 +00:00
Wesley Wiser
69eaa11633 [mir-inlining] Don't inline virtual calls
Prior to this change, the test case would output `1` instead of `2` like
it should.
2018-10-14 13:45:46 -04:00
varkor
f5b89062f6 Unused result warning: "X which must" ↦ "X that must" 2018-10-14 18:25:30 +01:00
bors
68df433037 Auto merge of #55055 - matthiaskrgr:bump_beta, r=Mark-Simulacrum
bump bootstrap compiler to rustc beta 2018-10-13

beta was switched to bootstrap from stable 1.29.2 since 1.29.2 got the aliasing bug workaround.
For extra sanity we should probably bootstrap from a beta that was built with these fixed applied in the host compiler.
2018-10-14 14:24:19 +00:00
bors
b1bdf04c97 Auto merge of #55051 - matthiaskrgr:dist_msg, r=Mark-Simulacrum
boostrap: dist: if a file cannot be installed because it does not exist, print its name in the error message.
2018-10-14 11:56:09 +00:00
Ralf Jung
ad04cb72f9 update miri 2018-10-14 11:33:50 +02:00
bors
2462a2de8c Auto merge of #55015 - dsciarra:underscores-constant-names, r=petrochenkov
Support underscore as constant name

Issue: #54912
2018-10-14 09:28:19 +00:00
Donato Sciarra
406cbf1a39 Support underscore as constant name
Issue: 54912
2018-10-14 10:14:58 +02:00
bors
1ebcb215fc Auto merge of #55049 - tshepang:fix, r=withoutboats
doc: fix sentence structure in std::fmt
2018-10-14 06:40:17 +00:00
bors
2bab4bf486 Auto merge of #55018 - euclio:issue-24421, r=alexcrichton
add test for #24421

Fixes #24421.

Also removes a README which points to a non-existent directory.
2018-10-14 01:53:28 +00:00
bors
9788a7bb2a Auto merge of #55017 - memoryruins:add-tests, r=alexcrichton
Add tests for issues #54966 and #52240

Closes #54966
Closes #52240
2018-10-13 23:22:15 +00:00
Matthias Krüger
2cdd9f8e52 bump bootstrap compiler to rustc beta 2018-10-13
beta was switched to bootstrap from stable 1.29.2 since 1.29.2 got the aliasing bug workaround.
For extra sanity we should probably bootstrap from a beta that was built with these fixed appied in the host compiler.
2018-10-14 00:52:47 +02:00
Matthias Krüger
da1c75c3a6 boostrap: dist: if a file cannot be installed because it does not exist, print its name in the error message. 2018-10-13 23:33:10 +02:00
bors
4699283c5b Auto merge of #54916 - matthiaskrgr:submodules_update, r=oli-obk
submodules: update clippy, rls and cargo, fix toolstate

rustfmt update failed because of different rustc-ap-syntax versions.

fix clippy toolstate failure

Fixes #54697
2018-10-13 19:43:36 +00:00
Tshepang Lekhonkhobe
2bb85b236a doc: fix sentence structure in std::fmt 2018-10-13 21:20:36 +02:00
Matthias Krüger
9c651b3b31 bootstrap: update clippy license locations which changed due to relicensing. 2018-10-13 20:38:49 +02:00
Oliver Scherer
585490d816 Also adjust rustdoc to the principal changes 2018-10-13 19:41:27 +02:00
Matthias Krüger
ab4e697d0b submodules: update cargo from ad6e5c00 to 5dbac988
Changes:

Switch to use crates-io as the registry name and don't include publish when registry is not specified
fix redundant pkgid generation
validate some basic properties of a valid resolve
Detail dep name in invalid version error
Fix dashes in rename dependencies.
Bump flate2 to 1.0.3
Add default in config document
Add support for providing a default registry
Add support for registry to new and init
use impl Iterator instead of custom types in `source`
let jetbrains reorder some impls to match the definition
use impl Iterator instead of custom types in resolver and graph
remove Graph::sort as it is unused
fmt
Bump libgit2-sys to 0.7.9
Switch to use registry
Allow registry option for cargo install.
Second attempt at fixing msys terminal width.
Try to improve "version not found" error
Fix typo
2018-10-13 19:11:29 +02:00
Matthias Krüger
2e84e9c09d submodules: update rls from 15d4d4a to 440a985
Changes:

Apply Clippy lints
Respect build_dir when creating external build plans
Fix Windows tests
Implement external build plan
Detect manifest diagnostic position for toml:🇩🇪:Error
Fix std::sync hover doc expectation
Apply CI specific long timeout
Propagate cargo errors as manifest diagnostics
Add test for use statement function completions
Refactor cmd test `within_timeout`
Avoid stdout-writer/rls process exit race
Improve cmd test "no shutdown response" error message
Add RUST_BACKTRACE=1 to ci env
Improve cmd test timeout reliability
Fix use statement function suggestions
Revert "Revert "Remove "edition" Cargo feature (it's stable now)""
Add build_wait() tests
Automatically tune wait_to_build
Rework cmd tests

Fixes #54697
2018-10-13 19:11:29 +02:00
Matthias Krüger
ce61be81be submodules: update clippy from 32b1d1fc to 9d337313
Changes:

Remove now-useless `allow(unknown_lints)`
Stabilize tool lints
Use `impl Iterator` in arg position in clippy_dev
Fix fn_to_numeric_cast_with_truncation suppression
Limit commutative assign op lint to primitive types
Clarify code
Fix #2937
Fix cast_possible_wrap and cast_sign_loss warnings
Fix cast_possible_truncation warnings
Fixes #2925 cmp_owned false positive
if_let_redundant_pattern_matching: use Span.to() instead of Span.with_hi() to fix crash.
Improve diagnostics in case of lifetime elision (closes #3284)
Fix items_after_statements for `const`s
Fix items_after_statements for sub-functions
Fix items_after_statements for `use` statements
Don't suggest cloned() for map Box deref
Fix excessive_precision false positive
Fix FP in `fn_to_numeric_cast_with_truncation`
new_without_default should not warn about unsafe new
fix command to manually test an example
Add license to README
Adding more detail to filter_map lint documentation.
additional people
Add license header to other files
Add license header to Rust files
Relicense clippy
Document relicensing process
Fix util/export.py to include lints from methods
2018-10-13 19:11:29 +02:00
bors
8f19cadf95 Auto merge of #55003 - zackmdavis:must_use_assoc_fn, r=varkor
`#[must_use]` for associated functions is supposed to actually work

In the comments of (closed, defunct) pull request #54884, @Centril [noted that](https://github.com/rust-lang/rust/pull/54884#issuecomment-427626495) must-use annotations didn't work on an associated function (what other communities might call a "static method"). Subsequent logging revealed that in this case we have a `Def::Method`, whereas the lint pass was only matching on `Def::Fn`. (One could argue that those def-names are thereby misleading—must-use for `self`-ful methods have always worked—but documenting or reworking that can be left to another day.)

r? @varkor
2018-10-13 17:03:47 +00:00
bors
f51752774b Auto merge of #54951 - alexcrichton:more-wasm-threads, r=sfackler
std: Implement TLS for wasm32-unknown-unknown

This adds an implementation of thread local storage for the
`wasm32-unknown-unknown` target when the `atomics` feature is
implemented. This, however, comes with a notable caveat of that it
requires a new feature of the standard library, `wasm-bindgen-threads`,
to be enabled.

Thread local storage for wasm (when `atomics` are enabled and there's
actually more than one thread) is powered by the assumption that an
external entity can fill in some information for us. It's not currently
clear who will fill in this information nor whose responsibility it
should be long-term. In the meantime there's a strategy being gamed out
in the `wasm-bindgen` project specifically, and the hope is that we can
continue to test and iterate on the standard library without committing
to a particular strategy yet.

As to the details of `wasm-bindgen`'s strategy, LLVM doesn't currently
have the ability to emit custom `global` values (thread locals in a
`WebAssembly.Module`) so we leverage the `wasm-bindgen` CLI tool to do
it for us. To that end we have a few intrinsics, assuming two global values:

* `__wbindgen_current_id` - gets the current thread id as a 32-bit
  integer. It's `wasm-bindgen`'s responsibility to initialize this
  per-thread and then inform libstd of the id. Currently `wasm-bindgen`
  performs this initialization as part of the `start` function.
* `__wbindgen_tcb_{get,set}` - in addition to a thread id it's assumed
  that there's a global available for simply storing a pointer's worth
  of information (a thread control block, which currently only contains
  thread local storage). This would ideally be a native `global`
  injected by LLVM, but we don't have a great way to support that right
  now.

To reiterate, this is all intended to be unstable and purely intended
for testing out Rust on the web with threads. The story is very likely
to change in the future and we want to make sure that we're able to do
that!
2018-10-13 14:28:48 +00:00
bors
24faa97589 Auto merge of #54997 - davidtwco:issue-54896, r=nagisa
The #[panic_handler] attribute can be applied to non-functions

Fixes #54896.

This commit extends the existing lang items functionality to assert
that the `#[lang_item]` attribute is only found on the appropriate item
for any given lang item. That is, language items representing traits
must only ever have their corresponding attribute placed on a trait, for
example.

r? @nagisa
2018-10-13 11:52:49 +00:00
Oliver Scherer
78aaa3e546 Check the invariant for principal inside the method 2018-10-13 11:32:49 +02:00
bors
2d81989974 Auto merge of #54955 - RalfJung:miri-validate2, r=oli-obk
miri engine: Fix run-time validation

This fixes all false positives that came up when actually enabling this in miri.

r? @oli-obk
2018-10-13 09:20:48 +00:00
ljedrz
b03a82cfca rustc/driver: whitespace & formatting fixes 2018-10-13 10:15:46 +02:00
ljedrz
d838a7fcca rustc/driver: unwrap_or_else with function calls 2018-10-13 10:15:46 +02:00
ljedrz
c46c4d7135 rustc/driver: remove explicit return, add explicit None 2018-10-13 10:09:42 +02:00
ljedrz
292cc1e36f rustc/driver: don't sort base if it only has one element 2018-10-13 10:09:42 +02:00
ljedrz
9b01b51560 rustc/driver: remove lifetimes from consts 2018-10-13 10:09:41 +02:00
ljedrz
d599f5bf61 rustc/driver: improve common patterns 2018-10-13 10:09:41 +02:00
ljedrz
2c482d8d41 rustc/driver: use Cow<str> where applicable 2018-10-13 10:09:40 +02:00
ljedrz
9a1de086e4 rustc/driver: improve/remove allocations 2018-10-13 10:09:40 +02:00
Ralf Jung
6426cbe382 update miri 2018-10-13 09:10:24 +02:00
Ralf Jung
06a4911ce1 run-time validation: accept undef in int arrays, as we do for ints 2018-10-13 09:09:03 +02:00
Ralf Jung
b2ddd27c2e address nits 2018-10-13 09:09:03 +02:00
Ralf Jung
dc4b2771f8 validation: accept pointers in integer arrays 2018-10-13 09:09:03 +02:00
Ralf Jung
c96eb706f0 Fix and test upvar name printing for validity 2018-10-13 09:09:03 +02:00
Ralf Jung
69576fcdee make ENFORCE_VALIDITY a function
miri needs this extra flexibility
2018-10-13 09:09:03 +02:00
Ralf Jung
3272c9845c foreign types: use size and align from layout 2018-10-13 09:09:03 +02:00
Ralf Jung
d0c585c525 seems like for generators we cannot access the freevars 2018-10-13 09:09:03 +02:00