about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-01-17Document Unpin in std::prelude documentationKonrad Borowski-2/+3
2019-01-16Auto merge of #57321 - petrochenkov:atokens, r=nikomatsakisbors-1625/+1398
Implement basic input validation for built-in attributes Correct top-level shape (`#[attr]` vs `#[attr(...)]` vs `#[attr = ...]`) is enforced for built-in attributes, built-in attributes must also fit into the "meta-item" syntax (aka the "classic attribute syntax"). For some subset of attributes (found by crater run), errors are lowered to deprecation warnings. NOTE: This PR previously included https://github.com/rust-lang/rust/pull/57367 as well.
2019-01-16Auto merge of #57416 - alexcrichton:remove-platform-intrinsics, r=nagisabors-15986/+4
rustc: Remove platform intrinsics crate This was originally attempted in #57048 but it was realized that we could fully remove the crate via the `"unadjusted"` ABI on intrinsics. This means that all intrinsics in stdsimd are implemented directly against LLVM rather than using the abstraction layer provided here. That ends up meaning that this crate is no longer used at all. This crate developed long ago to implement the SIMD intrinsics, but we didn't end up using it in the long run. In that case let's remove it!
2019-01-15Auto merge of #57629 - matthiaskrgr:clippy_submodule_upd, r=oli-obkbors-10/+15
submodules: update clippy from c63b6349 to 1b89724b Changes: ```` Really fix issue number in `map_clone` test Fix issue number in `map_clone` test Remove `map_clone` fixed known problem Fix `map_clone` bad suggestion Add run-rustfix to unnecessary_fold Add run-rustfix to unit_arg test Add run-rustfix for types test Add run-rustfix to starts_ends_with Add run-rustfix to replace_const test Add run-rustfix to redundant_field_names Missing docs: don't require documenting Global Asm items. Add run-rustfix for precedence test Add run-rustfix to mem_replace test Add run-rustfix to map_clone test Add run-rustfix to large_digit_groups Add run-rustfix to into_iter_on_ref Add run-rustfix to infallible_destructuring_match Add rustfix to inconsistent_digit_grouping test Add run-rustfix to explicit_write test Add run-rustfix to excessive_precision test Add run-rustfix to duration_subsec test Disable deprecated_cfg_attr lint for inner attributes Add run-rustfix to collapsible_if test Update Readme Update Readme for (arguably) better readability rustup: the features if_while_or_patterns has been stabilized Fix comments in clippy_lints/src/len_zero.rs readme: update travis badge to reflect migration from travis-ci.org to travis-ci.com Remove all copyright license headers Move cast_ref_to_mut list to correctness group Rustftmt Don't import ty::Ref in cast_ref_to_mut lint Move a hint to an error message in cast_ref_to_mut lint Add a note to cast_ref_to_mut lint Use ty::Ref instead of ty::TyKind::Ref cast_ref_to_mut lint Add missing ` in default lint Improve tests and exclude nested impls Update `unwrap_get` code review suggestions Update known problems Restrict use_self on nested items Improve `get_unwrap` suggestion ````
2019-01-15Auto merge of #57630 - Centril:rollup, r=Centrilbors-35/+417
Rollup of 8 pull requests Successful merges: - #56044 (Drop partially bound function parameters in the expected order) - #57352 (forbid manually impl'ing one of an object type's marker traits) - #57456 (RawVec doesn't always abort on allocation errors) - #57467 (Implement `check_attribute` to forbid `#[allow_internal_unsafe]`) - #57579 (Add core::iter::once_with()) - #57587 (Add 'rustc-env:RUST_BACKTRACE=0' to const-pat-ice test) - #57608 (Simplify 'product' factorial example) - #57614 ([rustdoc] Fix crates filtering box not being filled) Failed merges: r? @ghost
2019-01-15Rollup merge of #57614 - GuillaumeGomez:fix-crate-filtering, r=QuietMisdreavusMazdak Farrokhzad-1/+1
[rustdoc] Fix crates filtering box not being filled Currently, the filter crate box (at the left of the search input) is always empty. To get the number of keys of dictionary in JS, you need to call `Object.keys()` on it. r? @QuietMisdreavus
2019-01-15Rollup merge of #57608 - timvisee:master, r=frewsxcvMazdak Farrokhzad-1/+1
Simplify 'product' factorial example This simplifies the [`factorial(n: 32)`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#examples-46) implementation as example for the `Iterator::product()` function. It currently uses unnecessary additional complexity. Although very minimal, I do not want to include it in some other irrelevant PR.
2019-01-15Rollup merge of #57587 - Aaron1011:fix/const-pat-ice, r=alexcrichtonMazdak Farrokhzad-0/+1
Add 'rustc-env:RUST_BACKTRACE=0' to const-pat-ice test This ensures that the test passes, regardless of what the user has set RUST_BACKTRACE to.
2019-01-15Rollup merge of #57579 - stjepang:once-with, r=SimonSapinMazdak Farrokhzad-0/+135
Add core::iter::once_with() Functions `iter::once()` and `iter::repeat()` construct iterators from values. The latter has the lazy variant `iter::repeat_with()`, but the former doesn't. This PR therefore adds `iter::once_with()`. Another way to think of `iter::once_with()` is that it's a function that converts `FnOnce() -> T` into `Iterator<Item = T>`. If this seems like a reasonable addition, I'll open a tracking issue and update the `#[feature(...)]` attributes.
2019-01-15Rollup merge of #57467 - JohnTitor:implement-the-check-attribute-1, r=oli-obkMazdak Farrokhzad-21/+58
Implement `check_attribute` to forbid `#[allow_internal_unsafe]` Fixes #56768. r? @oli-obk
2019-01-15Rollup merge of #57456 - fintelia:patch-4, r=dtolnayMazdak Farrokhzad-1/+1
RawVec doesn't always abort on allocation errors
2019-01-15Rollup merge of #57352 - arielb1:no-manual-markers, r=nikomatsakisMazdak Farrokhzad-4/+145
forbid manually impl'ing one of an object type's marker traits This shouldn't break compatibility for crates that do not use `feature(optin_builtin_traits)`, because as the test shows, it is only possible to impl a marker trait for a trait object in the crate the marker trait is defined in, which must define `feature(optin_builtin_traits)`. Fixes #56934. r? @nikomatsakis
2019-01-15Rollup merge of #56044 - matthewjasper:function-param-drop-order, r=cramertjMazdak Farrokhzad-7/+75
Drop partially bound function parameters in the expected order Given the function ```rust fn foo((_x, _): (LogDrop, LogDrop), (_, _y): (LogDrop, LogDrop)) {} ``` Prior to 1.12.0 we dropped both `_x` and `_y` before the rest of their respective parameters, since then we dropped `_x` and `_y` after. The original order appears to be the correct order, as the value created later is dropped first, so we revert to that order and add a test for it. While this is technically a breaking change, I can't work out how anyone could be relying on this without making their code very brittle. If this is considered to be too likely to break real world code then I can revert the change and change the test to check for the current order.
2019-01-15submodules: update clippy from c63b6349 to 1b89724bMatthias Krüger-10/+15
Changes: ```` Really fix issue number in `map_clone` test Fix issue number in `map_clone` test Remove `map_clone` fixed known problem Fix `map_clone` bad suggestion Add run-rustfix to unnecessary_fold Add run-rustfix to unit_arg test Add run-rustfix for types test Add run-rustfix to starts_ends_with Add run-rustfix to replace_const test Add run-rustfix to redundant_field_names Missing docs: don't require documenting Global Asm items. Add run-rustfix for precedence test Add run-rustfix to mem_replace test Add run-rustfix to map_clone test Add run-rustfix to large_digit_groups Add run-rustfix to into_iter_on_ref Add run-rustfix to infallible_destructuring_match Add rustfix to inconsistent_digit_grouping test Add run-rustfix to explicit_write test Add run-rustfix to excessive_precision test Add run-rustfix to duration_subsec test Disable deprecated_cfg_attr lint for inner attributes Add run-rustfix to collapsible_if test Update Readme Update Readme for (arguably) better readability rustup: the features if_while_or_patterns has been stabilized Fix comments in clippy_lints/src/len_zero.rs readme: update travis badge to reflect migration from travis-ci.org to travis-ci.com Remove all copyright license headers Move cast_ref_to_mut list to correctness group Rustftmt Don't import ty::Ref in cast_ref_to_mut lint Move a hint to an error message in cast_ref_to_mut lint Add a note to cast_ref_to_mut lint Use ty::Ref instead of ty::TyKind::Ref cast_ref_to_mut lint Add missing ` in default lint Improve tests and exclude nested impls Update `unwrap_get` code review suggestions Update known problems Restrict use_self on nested items Improve `get_unwrap` suggestion ````
2019-01-15Fix testsYuki Okushi-32/+11
2019-01-15Change from _ to NoneYuki Okushi-1/+1
2019-01-15Restore error messageYuki Okushi-2/+3
2019-01-15Stabilize FileExt::read_exact_at/write_all_atDror Levin-4/+2
Closes #51984.
2019-01-15Auto merge of #57130 - ↵bors-20/+134
VardhanThigle:Vardhan/x86_64-fortanix-unknown-sgx-tier2_support, r=alexcrichton Upgrade x86_64-fortanix-unknown-sgx platform support to tier 2 ## Overview 1. This PR upgrades x86_64-fortanix-unknown-sgx platform support to tier 2 (std only) by setting up build automation for this target. 1. For supporting unwinding, this target needs to link to a port of LLVM's libunwind (more details could be found in #56979), which will be distributed along with the Rust binaries (similar to the extra musl objects) ### Building and copying libunwind: We have added a new build script (`build-x86_64-fortanix-unknown-sgx-toolchain.sh`) that will run while the container is built. This will build `libunwind.a` from git source. While the container is built, the persistent volumes where obj/ gets created aren't yet mapped. As a workaround, we copy the built `libunwind.a` to `obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-fortanix-unknown-sgx/lib/` after x.py runs. If any reviewer knows of a better solution, please do tell. r? @Mark-Simulacrum
2019-01-15Fix crates filtering box not being filledGuillaume Gomez-1/+1
2019-01-14Auto merge of #57607 - Centril:rollup, r=Centrilbors-496/+715
Rollup of 8 pull requests Successful merges: - #57043 (Fix poor worst case performance of set intersection) - #57480 (Clean up and fix a bug in query plumbing) - #57481 (provide suggestion for invalid boolean cast) - #57540 (Modify some parser diagnostics to continue evaluating beyond the parser) - #57570 (Querify local `plugin_registrar_fn` and `proc_macro_decls_static`) - #57572 (Unaccept `extern_in_paths`) - #57585 (Recover from item trailing semicolon) - #57589 (Add a debug_assert to Vec::set_len) Failed merges: r? @ghost
2019-01-15fix test output changing in rebaseAriel Ben-Yehuda-2/+2
2019-01-15Add error checkYuki Okushi-9/+30
2019-01-15Add testYuki Okushi-0/+30
2019-01-15Make UnsafeCode EarlyLintPassYuki Okushi-22/+20
2019-01-15Run lint for unsafe on the astYuki Okushi-1/+1
2019-01-15Add PartialEqYuki Okushi-2/+2
2019-01-14Simplify 'product' factorial exampletimvisee-1/+1
2019-01-14Rollup merge of #57589 - scottmcm:vec-set_len-debug_assert, r=alexcrichtonMazdak Farrokhzad-0/+2
Add a debug_assert to Vec::set_len Following the precedent of https://github.com/rust-lang/rust/pull/52972, which found https://github.com/llogiq/bytecount/pull/42. (This may well make a test fail; let's see what Travis says.)
2019-01-14Rollup merge of #57585 - estebank:trailing-semicolon, r=petrochenkovMazdak Farrokhzad-30/+113
Recover from item trailing semicolon CC https://github.com/rust-lang/rfcs/pull/2479 r? @petrochenkov
2019-01-14Rollup merge of #57572 - Centril:unaccept-extern-in-path, r=petrochenkovMazdak Farrokhzad-233/+62
Unaccept `extern_in_paths` Based on completed fcp-close in https://github.com/rust-lang/rust/issues/55600, this removes `extern_in_path` (e.g. `extern::foo::bar`) from the language. The changes are primarily reversing https://github.com/rust-lang/rust/commit/32db83b16e06cb5cca72d0e6a648a8008eda0fac. Closes https://github.com/rust-lang/rust/issues/55600 r? @petrochenkov
2019-01-14Rollup merge of #57570 - Xanewok:querify-some, r=ZoxcMazdak Farrokhzad-41/+66
Querify local `plugin_registrar_fn` and `proc_macro_decls_static` Instead of calculating them as part of the `Session`, we do that in the query system. It's also nice that these queries are already defined for external crates - here, we provide the queries for the local crate. r? @nikomatsakis
2019-01-14Rollup merge of #57540 - estebank:eval-more, r=petrochenkovMazdak Farrokhzad-141/+344
Modify some parser diagnostics to continue evaluating beyond the parser Continue evaluating further errors after parser errors on: - trailing type argument attribute - lifetime in incorrect location - incorrect binary literal - missing `for` in `impl Trait for Foo` - type argument in `where` clause - incorrect float literal - incorrect `..` in pattern - associated types - incorrect discriminator value variant error and others. All of these were found by making `continue-parse-after-error` `true` by default to identify errors that would need few changes. There are now only a handful of errors that have any change with `continue-parse-after-error` enabled. These changes make it so `rust` _won't_ stop evaluation after finishing parsing, enabling type checking errors to be displayed on the existing code without having to fix the parse errors. Each commit has an individual diagnostic change with their corresponding tests. CC #48724.
2019-01-14Rollup merge of #57481 - euclio:bool-cast-suggestion, r=estebankMazdak Farrokhzad-24/+47
provide suggestion for invalid boolean cast Also, don't suggest comparing to zero for non-numeric expressions.
2019-01-14Rollup merge of #57480 - Zoxc:query-fix, r=michaelwoeristerMazdak Farrokhzad-20/+21
Clean up and fix a bug in query plumbing r? @michaelwoerister
2019-01-14Rollup merge of #57043 - ssomers:master, r=alexcrichtonMazdak Farrokhzad-7/+60
Fix poor worst case performance of set intersection Specifically, intersection of asymmetrically sized sets when the large set is on the left. See also the [latest answer on stackoverflow](https://stackoverflow.com/questions/35439376/python-set-intersection-is-faster-then-rust-hashset-intersection). Also applied to the union member, where the effect is much less but still measurable. Formatted the changed code only, does not increase the error count reported by tidy check, and tried to adhere to the spirit of the unit tests.
2019-01-14Auto merge of #57559 - ehuss:update-cargo, r=alexcrichtonbors-0/+0
Update cargo 13 commits in 34320d212dca8cd27d06ce93c16c6151f46fcf2e..2b4a5f1f0bb6e13759e88ea9512527b0beba154f 2019-01-03 19:12:38 +0000 to 2019-01-12 04:13:12 +0000 - Add test for publish with [patch] + cleanup. (rust-lang/cargo#6544) - Fix clippy warning (rust-lang/cargo#6546) - Revert "Workaround by using yesterday's nightly" (rust-lang/cargo#6540) - Adding feature-flags to `cargo publish` and `cargo package` (rust-lang/cargo#6453) - Fix the Travis CI badge (rust-lang/cargo#6530) - Add helpful text for Windows exceptions like Unix (rust-lang/cargo#6532) - Report fix bugs to Rust instead of Cargo (rust-lang/cargo#6531) - --{example,bin,bench,test} with no argument now lists all available targets (rust-lang/cargo#6505) - Rebuild on mid build file modification (rust-lang/cargo#6484) - Derive Clone for TomlDependency (rust-lang/cargo#6527) - publish: rework the crates.io detection logic. (rust-lang/cargo#6525) - avoid duplicates in ignore files (rust-lang/cargo#6521) - Rustflags in metadata (rust-lang/cargo#6503) r? @alexcrichton
2019-01-14rustc: Remove platform intrinsics crateAlex Crichton-15986/+4
This was originally attempted in #57048 but it was realized that we could fully remove the crate via the `"unadjusted"` ABI on intrinsics. This means that all intrinsics in stdsimd are implemented directly against LLVM rather than using the abstraction layer provided here. That ends up meaning that this crate is no longer used at all. This crate developed long ago to implement the SIMD intrinsics, but we didn't end up using it in the long run. In that case let's remove it!
2019-01-14Add another feature(iter_once_with)Stjepan Glavina-0/+2
2019-01-14Add feature(iter_once_with)Stjepan Glavina-0/+2
2019-01-14Auto merge of #57592 - Centril:rollup, r=Centrilbors-253/+340
Rollup of 6 pull requests Successful merges: - #57232 (Parallelize and optimize parts of HIR map creation) - #57418 (MetadataOnlyCodegenBackend: run the collector only once) - #57465 (Stabilize cfg_target_vendor) - #57477 (clarify resolve typo suggestion) - #57556 (privacy: Fix private-in-public check for existential types) - #57584 (Remove the `connect_timeout_unroutable` test.) Failed merges: r? @ghost
2019-01-14Remove unnecessary mutStjepan Glavina-1/+1
2019-01-14Rollup merge of #57584 - nnethercote:rm-connect_timeout_unroutable, r=sfacklerMazdak Farrokhzad-11/+0
Remove the `connect_timeout_unroutable` test. It requires an unreachable IP address, but there is no such thing, and this has caused it to fail for multiple people. Fixes #44698, fixes #50065. r? @sfackler
2019-01-14Rollup merge of #57556 - petrochenkov:privexist, r=arielb1Mazdak Farrokhzad-3/+23
privacy: Fix private-in-public check for existential types Fixes https://github.com/rust-lang/rust/issues/53546 (regression from https://github.com/rust-lang/rust/pull/56878) r? @arielb1
2019-01-14Rollup merge of #57477 - euclio:clarify-lev-suggestion, r=zackmdavisMazdak Farrokhzad-125/+249
clarify resolve typo suggestion Include the kind of the binding that we're suggesting, and use a structured suggestion. Fixes #53445.
2019-01-14Rollup merge of #57465 - jethrogb:jb/stablize-cfg-target-vendor, ↵Mazdak Farrokhzad-56/+8
r=joshtriplett,Centril Stabilize cfg_target_vendor This stabilizes the use of `cfg(target_vendor = "...")` and removes the corresponding `cfg_target_vendor` feature. Other unstable cfgs remain behind their existing feature gates. This functionality was added back in 2015 in #28612 to complete the coverage of target tuples (`<arch><sub>-<vendor>-<os>-<env>`). [RFC 131](https://github.com/rust-lang/rfcs/blob/master/text/0131-target-specification.md) governs the target specification, not including `target_vendor` seems to have just been an oversight. `target_os`, `target_family`, and `target_arch` are stable as of 1.0.0. `target_env` was also not mentioned in RFC 131, was added in #24777, never behind a feature_gate, and insta-stable at 1.1.0. The functionality is tested in [test/run-pass/cfg/cfg-target-vendor.rs](https://github.com/rust-lang/rust/blob/master/src/test/run-pass/cfg/cfg-target-vendor.rs). Closes #29718
2019-01-14Rollup merge of #57418 - lqd:collector_query, r=michaelwoeristerMazdak Farrokhzad-14/+3
MetadataOnlyCodegenBackend: run the collector only once Use the `collect_and_partition_mono_items` query to avoid calling the collector directly twice. Fixes #57406.
2019-01-14Rollup merge of #57232 - Zoxc:par-collector-misc, r=michaelwoeristerMazdak Farrokhzad-44/+57
Parallelize and optimize parts of HIR map creation r? @michaelwoerister
2019-01-14Auto merge of #57322 - Centril:stabilize-identity, r=SimonSapinbors-6/+1
Stabilize core::convert::identity r? @SimonSapin fixes https://github.com/rust-lang/rust/issues/53500 This is waiting for FCP to complete but in the interim it would be good to review.
2019-01-14Stabilize `cfg_target_vendor`, #29718Jethro Beekman-56/+6