about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2020-04-13Auto merge of #71056 - matthiaskrgr:submodule_upd, r=Dylan-DPCbors-26/+17
submodules: update clippy from d342cee7 to af5940b7 Changes: ```` Allow UUID style formatting for `inconsistent_digit_grouping` lint rustup https://github.com/rust-lang/rust/pull/70986 rustup https://github.com/rust-lang/rust/pull/69745 Rustup to https://github.com/rust-lang/rust/pull/70913 compare with the second largest instead of the smallest variant Revert "Downgrade new_ret_no_self to pedantic" Check for clone-on-copy in argument positions Check fn header along with decl when suggesting to implement trait Downgrade implicit_hasher to pedantic Move cognitive_complexity to nursery Run fmt and update test Use int assoc consts in MANUAL_SATURATING_ARITHMETIC Use int assoc consts in checked_conversions lint Use primitive type assoc consts in more tests Use integer assoc consts in more lint example code Don't import primitive type modules Use assoc const NAN for zero_div_zero lint Fix float cmp to use assoc fxx::EPSILON Fix NAN comparison lint to use assoc NAN Refine lint message. Lint on opt.as_ref().map(|x| &**x). Include OpAssign in suspicious_op_assign_impl result_map_or_into_option: fix syntax error in example result_map_or_into: fix dogfood_clippy error => {h,l}int CONTRIBUTING.md: fix broken triage link result_map_or_into_option: fix `cargo dev fmt --check` errors result_map_or_into_option: move arg checks into tuple assignment result_map_or_into_option: add `opt.map_or(None, |_| Some(y))` test result_map_or_into_option: destructure lint tuple or return early result_map_or_into_option: add good and bad examples result_map_or_into_option: explicitly note absence of known problems Downgrade new_ret_no_self to pedantic Downgrade unreadable_literal to pedantic Update CONTRIBUTING.md Rename rustc -> rustc_middle in doc links result_map_or_into_option: add lint to catch manually adpating Result -> Option Move matches test in matches module Run update_lints Make lint modules private Don't filter lints in code generation functions Build lint lists once and the reuse them to update files Get rid of Lint::is_internal method Clean up update_lints Downgrade inefficient_to_string to pedantic Downgrade trivially_copy_pass_by_ref to pedantic Downgrade let_unit_value to pedantic ```` Fixes #70993 r? @Dylan-DPC
2020-04-13Disallow bit-shifting in `integer_arithmetic` lintMichael Sproul-1/+1
With this change, the lint checks all operations that are defined as being capable of overflow in the Rust Reference.
2020-04-13Remove `FnCtxt::impl_self_ty`Yuki Okushi-35/+9
2020-04-13Auto merge of #71023 - mati865:mingw-unwind-linking-cleanup, r=Amanieubors-2/+14
[windows] Add testscase for self-contained executables and fix pthread linking Fixes https://github.com/rust-lang/rust/issues/71061
2020-04-12update lintsEmerentius-1/+1
2020-04-12Rollup merge of #71069 - marmeladema:dummy-hir-id-obligation-clause, r=eddybDylan DPC-36/+27
Remove some usage of `DUMMY_HIR_ID` Use `ObligationClause::dummy()` when appropriate or replace `hir::DUMMY_HIR_ID`by `hir::CRATE_HIR_ID`, as used in `ObligationClause::dummy()`.
2020-04-12Rollup merge of #71064 - dwrensha:issue-69130, r=eddybDylan DPC-2/+33
fix issue 69130 Closes #69130.
2020-04-12Rollup merge of #71013 - jonas-schievink:visit-projection, r=eddybDylan DPC-74/+39
Pass the `PlaceElem::Index` local to `visit_local` Fixes https://github.com/rust-lang/rust/issues/71008 cc @rust-lang/wg-mir-opt r? @spastorino
2020-04-12Rollup merge of #67766 - sapir:fix-unused-in-or-pattern-warning, r=matthewjasperDylan DPC-52/+229
Fix warning for unused variables in or pattern (issue #67691) Is this a good way to fix it? Also, the tests fail, the "fixed" code output says `{ i, j }` instead of `{ i, j: _ }`, how can I fix that?
2020-04-12Remove usage of `DUMMY_HIR_ID` in `Scope::hir_id`marmeladema-10/+10
2020-04-12Remove usage of `DUMMY_HIR_ID` in `CheckAttrVisitor::check_inline`marmeladema-3/+2
2020-04-12Remove usage of `DUMMY_HIR_ID` in `CheckLoopVisitor`marmeladema-8/+8
2020-04-12Remove usage of `DUMMY_HIR_ID` in calls to `ObligationClause::misc`marmeladema-15/+7
Use `ObligationClause::dummy()` when appropriate or replace `hir::DUMMY_HIR_ID` by `hir::CRATE_HIR_ID`, as used in `ObligationClause::dummy()`.
2020-04-12[windows-gnu] Link pthread staticallyMateusz Mikuła-2/+2
2020-04-12Auto merge of #71059 - Dylan-DPC:rollup-zgu6jmx, r=Dylan-DPCbors-40/+113
Rollup of 6 pull requests Successful merges: - #71029 (Partial work on building with Cargo) - #71034 (Clean up E0515 explanation) - #71041 (Update links of `rustc guide`) - #71048 (Normalize source when loading external foreign source into SourceMap) - #71053 (Add some basic docs to `sym` and `kw` modules) - #71057 (Clean up E0516 explanation) Failed merges: r? @ghost
2020-04-12rustbuild: Remove LLD flavor workaround for MSVCVadim Petrochenkov-21/+0
2020-04-12fix issue 69130David Renshaw-2/+33
2020-04-12Document unsafety in `src/libcore/hash/sip.rs`LeSeulArtichaut-3/+8
2020-04-12Rollup merge of #71057 - GuillaumeGomez:cleanup-e0516, r=Dylan-DPCDylan DPC-0/+1
Clean up E0516 explanation r? @Dylan-DPC
2020-04-12Rollup merge of #71053 - phansch:update_kw_sym_docs, r=Dylan-DPCDylan DPC-0/+8
Add some basic docs to `sym` and `kw` modules I was looking into improving some Clippy documentation but was missing a place that explains the `kw` and `sym` modules from rustc. This adds some very basic usage documentation to these modules.
2020-04-12Rollup merge of #71048 - arlosi:normalize_ext_src, r=eddybDylan DPC-1/+59
Normalize source when loading external foreign source into SourceMap The compiler normalizes source when reading files initially (removes BOMs, etc), but not when loading external sources. This leads to the external source matching according to the `src_hash`, but differing internally because it was not normalized. Fixes #70874.
2020-04-12Rollup merge of #71041 - JohnTitor:rustc-dev-guide, r=jonas-schievinkDylan DPC-4/+4
Update links of `rustc guide` Picks up the things we left behind in the transition, hopefully they're last ones. r? @spastorino
2020-04-12Rollup merge of #71034 - GuillaumeGomez:cleanup-e0515, r=Dylan-DPCDylan DPC-4/+4
Clean up E0515 explanation r? @Dylan-DPC
2020-04-12Rollup merge of #71029 - Mark-Simulacrum:cargo-build, r=Mark-SimulacrumDylan DPC-31/+37
Partial work on building with Cargo This cherry picks the commits I'm directly approving from #70999, I want to land them so that that PR is smaller.
2020-04-12Auto merge of #70873 - mark-i-m:update-rdg, r=JohnTitorbors-1/+3
Update rustc-dev-guide This should finally fix toolstate r? @JohnTitor
2020-04-12Clean up E0516 explanationGuillaume Gomez-0/+1
2020-04-12Add long error explanation for E0708 #61137bishtpawan-2/+28
Refactor code as per the suggestions Refacotor code provide edition support
2020-04-12submodules: update clippy from d342cee7 to af5940b7Matthias Krüger-26/+17
Changes: ```` Allow UUID style formatting for `inconsistent_digit_grouping` lint rustup https://github.com/rust-lang/rust/pull/70986 rustup https://github.com/rust-lang/rust/pull/69745 Rustup to https://github.com/rust-lang/rust/pull/70913 compare with the second largest instead of the smallest variant Revert "Downgrade new_ret_no_self to pedantic" Check for clone-on-copy in argument positions Check fn header along with decl when suggesting to implement trait Downgrade implicit_hasher to pedantic Move cognitive_complexity to nursery Run fmt and update test Use int assoc consts in MANUAL_SATURATING_ARITHMETIC Use int assoc consts in checked_conversions lint Use primitive type assoc consts in more tests Use integer assoc consts in more lint example code Don't import primitive type modules Use assoc const NAN for zero_div_zero lint Fix float cmp to use assoc fxx::EPSILON Fix NAN comparison lint to use assoc NAN Refine lint message. Lint on opt.as_ref().map(|x| &**x). Include OpAssign in suspicious_op_assign_impl result_map_or_into_option: fix syntax error in example result_map_or_into: fix dogfood_clippy error => {h,l}int CONTRIBUTING.md: fix broken triage link result_map_or_into_option: fix `cargo dev fmt --check` errors result_map_or_into_option: move arg checks into tuple assignment result_map_or_into_option: add `opt.map_or(None, |_| Some(y))` test result_map_or_into_option: destructure lint tuple or return early result_map_or_into_option: add good and bad examples result_map_or_into_option: explicitly note absence of known problems Downgrade new_ret_no_self to pedantic Downgrade unreadable_literal to pedantic Update CONTRIBUTING.md Rename rustc -> rustc_middle in doc links result_map_or_into_option: add lint to catch manually adpating Result -> Option Move matches test in matches module Run update_lints Make lint modules private Don't filter lints in code generation functions Build lint lists once and the reuse them to update files Get rid of Lint::is_internal method Clean up update_lints Downgrade inefficient_to_string to pedantic Downgrade trivially_copy_pass_by_ref to pedantic Downgrade let_unit_value to pedantic ```` Fixes #70993
2020-04-12Add some basic docs to `sym` and `kw` modulesPhilipp Hansch-0/+8
I was looking into improving some Clippy documentation but was missing a place that explains the `kw` and `sym` modules from rustc.
2020-04-12Add blessed tests after compiler message fixYashhwanth Ram-65/+225
2020-04-12Fix order of comparison and remove incorrect case for ints in typeck/demand.rsYashhwanth Ram-6/+64
Add tests for *size
2020-04-12Auto merge of #69707 - estebank:impl-trait-missing-bounds, r=Centrilbors-50/+304
Handle `impl Trait` where `Trait` has an assoc type with missing bounds When encountering a type parameter that needs more bounds the trivial case is `T` `where T: Bound`, but it can also be an `impl Trait` param that needs to be decomposed to a type param for cleaner code. For example, given ```rust fn foo(constraints: impl Iterator) { for constraint in constraints { println!("{:?}", constraint); } } ``` the previous output was ``` error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug` --> src/main.rs:3:26 | 1 | fn foo(constraints: impl Iterator) { | - help: consider further restricting the associated type: `where <impl Iterator as std::iter::Iterator>::Item: std::fmt::Debug` 2 | for constraint in constraints { 3 | println!("{:?}", constraint); | ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` | = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item` = note: required by `std::fmt::Debug::fmt` ``` which is incorrect as `where <impl Iterator as std::iter::Iterator>::Item: std::fmt::Debug` is not valid syntax nor would it restrict the positional `impl Iterator` parameter if it were. The output being introduced is ``` error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug` --> src/main.rs:3:26 | 3 | println!("{:?}", constraint); | ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` | = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item` = note: required by `std::fmt::Debug::fmt` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL | fn foo<T: Iterator>(constraints: T) where <T as std::iter::Iterator>::Item: std::fmt::Debug { | ^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` This suggestion is correct and lead the user in the right direction: because you have an associated type restriction you can no longer use `impl Trait`, the only reasonable alternative is to introduce a named type parameter, bound by `Trait` and with a `where` binding on the associated type for the new type parameter `as Trait` for the missing bound. *Ideally*, we would want to suggest something like the following, but that is not valid syntax today ``` error[E0277]: `<impl Iterator as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug` --> src/main.rs:3:26 | 3 | println!("{:?}", constraint); | ^^^^^^^^^^ `<impl Iterator as std::iter::Iterator>::Item` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug` | = help: the trait `std::fmt::Debug` is not implemented for `<impl Iterator as std::iter::Iterator>::Item` = note: required by `std::fmt::Debug::fmt` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL | fn foo(constraints: impl Iterator<Item: std::fmt::Debug>) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` Fix #69638.
2020-04-11Normalize source when loading external foreign source into SourceMapArlo Siemsen-1/+59
The compiler normalizes source when reading files initially (removes BOMs, etc), but not when loading external sources. Fixes #70874 by normalizing when loading external sources too. Adds a test to verify normalization.
2020-04-12Auto merge of #69926 - RoccoDev:master, r=estebank,varkorbors-132/+515
rustc: Add a warning count upon completion This adds a `build completed with one warning/x warnings` message, similar to the already present `aborted due to previous error` message.
2020-04-11Add `#[inline(always)]` to `into_query_param`Dylan MacKenzie-0/+2
2020-04-11Apply suggestions from reviewDylan MacKenzie-20/+20
2020-04-11Use custom trait instead of `Into`Dylan MacKenzie-3/+23
2020-04-11Simplify macroDylan MacKenzie-57/+19
2020-04-11Remove call to `to_def_id` before calling query helperDylan MacKenzie-1/+1
2020-04-11Fix inference falloutDylan MacKenzie-1/+1
2020-04-11Impl `From<LocalDefId>` for `DefId`Dylan MacKenzie-0/+6
2020-04-11Make query helpers on `TyCtxt` take `impl Into<DefId>`Dylan MacKenzie-23/+66
2020-04-11fix rebaseEsteban Küber-5/+5
2020-04-11Make panic-unwind a default feature for libstdLuca Barbieri-1/+1
x.py sets it unconditionally, so want it for plain "cargo build". We need to load one of the panic runtimes that is in src (vs. pre-built in the compiler's sysroot) to ensure that we don't load libpanic_unwind from the sysroot. That would lead to a load of libcore, also from the sysroot, and create lots of errors about duplicate lang items.
2020-04-11Don't emit rerun-if-changed on llvm-config if using system LLVMLuca Barbieri-10/+20
The code was broken because it printed "llvm-config" instead of the absolute path to the llvm-config executable, causing Cargo to always rebuild librustc_llvm if using system LLVM. Also, it's not the build system's job to rebuild when a system library changes, so we simply don't emit "rerun-if-changed" if a path to LLVM was not explicitly provided.
2020-04-11Require compiler-rt root at ../src/llvm-project/compiler-rtLuca Barbieri-2/+5
2020-04-11Depend on getopts from crates.ioLuca Barbieri-10/+7
rustc_session exports it for other crates to avoid mismatching crate versions.
2020-04-11review commentsEsteban Küber-8/+8
2020-04-11review commentsEsteban Küber-29/+32
2020-04-11Try to use the first char in the trait name as type paramEsteban Küber-12/+15