Commit Graph

84786 Commits

Author SHA1 Message Date
ljedrz
12b5c7b26d Don't collect to vectors where unnecessary 2018-10-14 07:53:36 +02: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
Vadim Petrochenkov
894a8d574d resolve: Scale back hard-coded extern prelude additions 2018-10-13 21:35:19 +03:00
Vadim Petrochenkov
522948827b Copy extern prelude from resolver to global context 2018-10-13 21:35:19 +03:00
Vadim Petrochenkov
83bb430663 Revert "rustc_resolve: move extern_prelude from Resolver to Session."
This reverts commit e90985acde.
2018-10-13 21:35:19 +03:00
Oliver Scherer
585490d816 Also adjust rustdoc to the principal changes 2018-10-13 19:41:27 +02:00
Tshepang Lekhonkhobe
af6c871fa1 doc: make core::fmt::Error example more simple 2018-10-13 19:28:18 +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
Ralf Jung
93f53e5113 size_and_align_of can return no result for extern types 2018-10-13 09:09:03 +02:00
Ralf Jung
f79a22c3d5 validate return value on stack pop 2018-10-13 09:09:02 +02:00
Ralf Jung
a05914e2dc check return type even for uninhabited case 2018-10-13 09:09:02 +02:00
Ralf Jung
5b75ec0a91 fix validation around transmuting copy_op 2018-10-13 09:09:02 +02:00
bors
fb3b47aa42 Auto merge of #54980 - zackmdavis:and_the_case_of_the_universal_call, r=oli-obk
structured suggestion for E0223 ambiguous associated type

(routine (and when are we going to be done finding these, anyway?) but something that stuck out to me while glancing at #54970)

r? @estebank
2018-10-13 06:48:17 +00:00
Zack M. Davis
ab91a6b4df #[must_use] for associated functions is supposed to actually work
In the comments of (closed, defunct) pull request #54884, Mazdak
"Centril" Farrokhzad noted that 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.)
2018-10-12 22:01:43 -07:00
bors
c47785f6be Auto merge of #54945 - estebank:asm-span, r=petrochenkov
Point to variable in `asm!` macro when failing borrowck

Fix #34940.
2018-10-13 00:56:30 +00:00
Eric Huss
09f42dd902 Add missing lifetime fragment specifier to error message.
A very minor issue, `lifetime` was missing from the error list.
I left `literal` in the list, even though it is unstable. It looks like it may stabilize soon anyways.
2018-10-12 17:51:48 -07:00
Alex Crichton
9562b69b4f 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-12 17:04:31 -07:00
Andy Russell
1811f1322a
raise ICE if LLVM worker threads panic 2018-10-12 17:30:13 -04:00
Andy Russell
00e1f5b8df
exit with status code 101 on fatal LLVM error
Fixes #54992.
2018-10-12 17:29:40 -04:00
bors
2c2e2c57dc Auto merge of #54942 - matthewjasper:wf-type-annotations, r=nikomatsakis
[NLL] Check user types are well-formed

Also contains a change of span for AscribeUserType.
I'm not quite sure if this was what @nikomatsakis was thinking.

Closes #54620

r? @nikomatsakis
2018-10-12 21:28:42 +00:00
memoryruins
ba446d72be Add nll stderr to #52240 2018-10-12 14:33:38 -04:00