about summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2019-09-02Auto merge of #63692 - iluuu1994:issue-49660, r=sfacklerbors-0/+77
Test that Wrapping arithmetic ops are implemented for all int types Closes #49660
2019-09-02Auto merge of #63834 - andjo403:rustdoc-linker-remove, r=Mark-Simulacrumbors-1/+1
remove the unstable rustdoc parameter --linker use the code generation parameter -Clinker (same parameter as rustc) to control what linker to use for building the rustdoc test executables. closes: #63816
2019-09-01Auto merge of #63870 - estebank:async-fn-call, r=oli-obkbors-2081/+1234
Suggest call fn ctor passed as arg to fn with type param bounds _Reviewer note: the relevant changes are in the second commit, the first is simple and mechanical, but verbose._ When forgetting to call a fn in an argument position to an fn that has a generic bound: ```rust async fn foo() {} fn bar(f: impl Future<Output=()>) {} fn main() { bar(foo); // <- should be `bar(foo());` } ``` suggest calling it: ``` error[E0277]: the trait bound `fn() -> impl std::future::Future {foo}: std::future::Future` is not satisfied --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:9:5 | LL | fn bar(f: impl Future<Output=()>) {} | --------------------------------- required by `bar` ... LL | bar(foo); | ^^^ the trait `std::future::Future` is not implemented for `fn() -> impl std::future::Future {foo}` | = help: it looks like you forgot to use parentheses to call the function: `foo()` ``` Fix #63100. Follow up to #63833 and #63337.
2019-09-01review commentEsteban Küber-2/+2
2019-09-01Auto merge of #64036 - matthewjasper:kill-borrows-on-self-assign, r=estebankbors-0/+20
Kill borrows from assignments after generating new borrows Closes #63719
2019-09-01remove the unstable rustdoc parameter --linkerAndreas Jonson-1/+1
use the code generation parameter -Clinker (same parameter as rustc) to control what linker to use for building the rustdoc test executables. closes: #63816
2019-08-31Fix nll testsEsteban Küber-37/+24
2019-08-31Auto merge of #63703 - tommilligan:warn-empty-doctest, r=ollie27bors-0/+32
rustdoc: warn on empty doc test Closes #60319. A doc test that only contains whitespace should result in a warning. This PR adds detection of empty doc tests to `check-code-block-syntax`, as having an invalid doc test is mutually exclusive with an empty doc test.
2019-08-31Kill borrows from assignments after generating new borrowsMatthew Jasper-0/+20
2019-08-31Suggest call fn ctor passed as arg to fn with type param boundsEsteban Küber-0/+56
2019-08-31Use span label instead of note for cause in E0631Esteban Küber-2044/+1154
2019-08-31Auto merge of #63991 - Centril:unique-improper-ctype, r=rkruppebors-13/+23
`improper_ctypes`: guard against accidental change to `Unique<T>` r? @eddyb
2019-08-31improper_ctypes: guard against accidental change to Unique<T>.Mazdak Farrokhzad-13/+23
2019-08-30Auto merge of #64026 - Centril:rollup-le667lp, r=Centrilbors-106/+162
Rollup of 7 pull requests Successful merges: - #62957 (Match the loop examples) - #63600 (Merge oli-obk mail addresses) - #63684 (Constify LinkedList new function) - #63847 ([rustdoc] Fix system theme detection) - #63999 (Add missing links on AsRef trait) - #64014 ( miri: detect too large dynamically sized objects ) - #64015 (some const-eval test tweaks) Failed merges: r? @ghost
2019-08-30Rollup merge of #64015 - RalfJung:const-tests, r=oli-obkMazdak Farrokhzad-60/+84
some const-eval test tweaks Best reviewed commit-by-commit. r? @oli-obk
2019-08-30Rollup merge of #64014 - RalfJung:miri-slice, r=oli-obkMazdak Farrokhzad-46/+78
miri: detect too large dynamically sized objects Needed to make https://github.com/rust-lang/miri/pull/929 pass. r? @oli-obk
2019-08-30Auto merge of #63982 - sam09:fix-63976, r=estebankbors-2/+2
When accessing private field of union, do not misidentify it as a struct Fix incorrect error message when accessing private field of union. Fixes #63976.
2019-08-30add testRalf Jung-0/+29
2019-08-30Skip wrapping arithmetic tests on emscripten for 128 bit integersIlija Tovilo-0/+2
2019-08-30const-eval tests: make all unions repr(C)Ralf Jung-59/+79
2019-08-30explain why REF_AS_USIZE is importantRalf Jung-0/+3
2019-08-30tweak const-valid testRalf Jung-1/+2
2019-08-30make unions repr(C)Ralf Jung-18/+21
2019-08-30Auto merge of #63402 - estebank:strip-margin, r=oli-obkbors-24/+118
Strip code to the left and right in diagnostics for long lines Fix #62999.
2019-08-30better variable namesRalf Jung-28/+28
2019-08-30Update testsOliver Scherer-2/+2
2019-08-30Add a "diagnostic item" schemeOliver Scherer-0/+32
This allows lints and other diagnostics to refer to items by a unique ID instead of relying on whacky path resolution schemes that may break when items are relocated.
2019-08-30Fix test.Sam Radhakrishan-2/+2
2019-08-29Also test isize and usize in wrapping arithmeticsIlija Tovilo-0/+2
2019-08-29Rollup merge of #63956 - alexcrichton:fix-lto-all-cached, r=michaelwoeristerMazdak Farrokhzad-1/+14
rustc: Handle modules in "fat" LTO more robustly When performing a "fat" LTO the compiler has a whole mess of codegen units that it links together. To do this it needs to select one module as a "base" module and then link everything else into this module. Previously LTO passes assume that there's at least one module in-memory to link into, but nowadays that's not always true! With incremental compilation modules may actually largely be cached and it may be possible that there's no in-memory modules to work with. This commit updates the logic of the LTO backend to handle modules a bit more uniformly during a fat LTO. This commit immediately splits them into two lists, one serialized and one in-memory. The in-memory list is then searched for the largest module and failing that we simply deserialize the first serialized module and link into that. This refactoring avoids juggling three lists, two of which are serialized modules and one of which is half serialized and half in-memory. Closes #63349
2019-08-29Rollup merge of #62734 - GuillaumeGomez:hide-default-methods, r=Mark-SimulacrumMazdak Farrokhzad-9/+9
Hide trait default methods Fixes #62499. However, the question remains: do we want to extend it to this point or not? r? @QuietMisdreavus
2019-08-29Rollup merge of #63992 - lzutao:integer-ord, r=nagisaMazdak Farrokhzad-2/+2
Small improvement for Ord implementation of integers Godbolt link: https://godbolt.org/z/tuTDOg ### Before **asm** ```asm example::cmp: mov eax, dword ptr [rdi] xor ecx, ecx cmp eax, dword ptr [rsi] seta cl mov eax, 255 cmovae eax, ecx ret ``` **llvm-mca** ``` Iterations: 100 Instructions: 700 Total Cycles: 217 Total uOps: 1100 Dispatch Width: 6 uOps Per Cycle: 5.07 IPC: 3.23 Block RThroughput: 1.8 ``` ### After **asm** ```asm example::cmp: mov eax, dword ptr [rdi] xor ecx, ecx cmp eax, dword ptr [rsi] setne cl mov eax, 255 cmovae eax, ecx ret ``` **llvm-mca** ``` Iterations: 100 Instructions: 700 Total Cycles: 209 Total uOps: 1000 Dispatch Width: 6 uOps Per Cycle: 4.78 IPC: 3.35 Block RThroughput: 1.7 ``` r? @nagisa
2019-08-29Rollup merge of #63880 - RalfJung:miri-meta, r=oli-obkMazdak Farrokhzad-66/+123
Validation: check raw wide pointer metadata While I was at it, I also added a missing check for slices not to be too big. r? @oli-obk Fixes https://github.com/rust-lang/miri/issues/918
2019-08-29Rollup merge of #63867 - petrochenkov:dhelpers, r=matthewjasperMazdak Farrokhzad-75/+88
resolve: Block expansion of a derive container until all its derives are resolved So, it turns out there's one more reason to block expansion of a `#[derive]` container until all the derives inside it are resolved, beside `Copy` (https://github.com/rust-lang/rust/pull/63248). The set of derive helper attributes registered by derives in the container also has to be known before the derives themselves are expanded, otherwise it may be too late (see https://github.com/rust-lang/rust/pull/63468#issuecomment-524550872 and the `#[stable_hasher]`-related test failures in https://github.com/rust-lang/rust/pull/63468). So, we stop our attempts to unblock the container earlier, as soon as the `Copy` status is known, and just block until all its derives are resolved. After all the derives are resolved we immediately go and process their helper attributes in the item, without delaying it until expansion of the individual derives. Unblocks https://github.com/rust-lang/rust/pull/63468 r? @matthewjasper (as a reviewer of https://github.com/rust-lang/rust/pull/63248) cc @c410-f3r
2019-08-29Auto merge of #63990 - Centril:rollup-q1nt0b0, r=Centrilbors-118/+453
Rollup of 11 pull requests Successful merges: - #63811 (Correctly suggest adding bounds to `impl Trait` argument) - #63933 (Resolve some small issues related to #63580) - #63938 (or-pattern: fix typo in error message) - #63945 (Recover `mut $pat` and other improvements) - #63958 (const_prop: only call error_to_const_error if we are actually showing something) - #63961 (Add Option<Span> to `require_lang_item`) - #63963 (remove the reference to __cxa_thread_atexit_impl) - #63965 (Prevent syntax error in LD linker version script) - #63968 (rustc_apfloat: make the crate #![no_std] explicitly.) - #63970 (Notify me (flip1995) when Clippy toolstate changes) - #63980 (add missing `#[repr(C)]` on the Slices union) Failed merges: - #63989 (Add Yaah to clippy toolstain notification list) r? @ghost
2019-08-29Small improvement for Ord implementation of integersLzu Tao-2/+2
2019-08-29Rollup merge of #63961 - JohnTitor:improve-require-lang-item, r=estebankMazdak Farrokhzad-0/+4
Add Option<Span> to `require_lang_item` Fixes #63954 I'm not sure where to take `Some(span)` or something so I use `None` in many places. r? @estebank
2019-08-29Rollup merge of #63945 - Centril:recover-mut-pat, r=estebankMazdak Farrokhzad-116/+392
Recover `mut $pat` and other improvements - Recover on e.g. `mut Foo(x, y)` and suggest `Foo(mut x, mut y)`. Fixes https://github.com/rust-lang/rust/issues/63764. - Recover on e.g. `let mut mut x;` - Recover on e.g. `let keyword` and `let keyword(...)`. - Cleanups in `token.rs` with `fn is_non_raw_ident_where` and friends.
2019-08-29Rollup merge of #63938 - tshepang:typo, r=CentrilMazdak Farrokhzad-2/+2
or-pattern: fix typo in error message cc https://github.com/rust-lang/rust/issues/54883.
2019-08-29Rollup merge of #63811 - estebank:impl-trait-arg, r=cramertjMazdak Farrokhzad-0/+55
Correctly suggest adding bounds to `impl Trait` argument Fix #63706.
2019-08-29Auto merge of #62855 - Aaron1011:feature/rustdoc-reexport-final, r=petrochenkovbors-17/+28
Improve Rustdoc's handling of procedural macros Fixes #58700 Fixes #58696 Fixes #49553 Fixes #52210 This commit removes the special rustdoc handling for proc macros, as we can now retrieve their span and attributes just like any other item. A new command-line option is added to rustdoc: `--crate-type`. This takes the same options as rustc's `--crate-type` option. However, all values other than `proc-macro` are treated the same. This allows Rustdoc to enable 'proc macro mode' when handling a proc macro crate. In compiletest, a new 'rustdoc-flags' option is added. This allows us to pass in the '--proc-macro-crate' flag in the absence of Cargo. I've opened [an additional PR to Cargo](https://github.com/rust-lang/cargo/pull/7159) to support passing in this flag. These two PRS can be merged in any order - the Cargo changes will not take effect until the 'cargo' submodule is updated in this repository.
2019-08-28Auto merge of #63875 - philipc:issue-57822, r=michaelwoeristerbors-8/+63
debuginfo: give unique names to closure and generator types Closure types have been moved to the namespace where they are defined, and both closure and generator type names now include the disambiguator. This fixes an exception when lldb prints nested closures. Fixes #57822 I haven't included the `DW_AT_artificial` changes discussed in #57822 because they make the output worse IMO, but I can easily add these if still required. For example, for the new test case the output is now: ``` (lldb) p g (issue_57822::main::closure-1) $1 = closure-1(closure(1)) ``` but adding `DW_AT_artificial` changes this to: ``` (lldb) p g (issue_57822::main::closure-1) $0 = closure-1 { } ``` Note that nested generators didn't cause the exception. I haven't determined why, but I think it makes sense to add the disambiguator for them too. It feels like we still don't really understand why closures were causing an error though. r? @michaelwoerister
2019-08-28Auto merge of #63853 - matthewjasper:test-ast-serialization, r=estebankbors-0/+51
Add default serialization for `Ident`s Also add tests for `-Zast-json` and `-Zast-json-noexpand` closes #63728
2019-08-28Auto merge of #63820 - oli-obk:eager_const_eval, r=nikomatsakisbors-10/+10
Simplify eager normalization of constants r? @nikomatsakis
2019-08-28Auto merge of #63127 - kper:pr, r=nikomatsakisbors-12/+12
Cleanup: Consistently use `Param` instead of `Arg` #62426 Fixes #62426
2019-08-28or-pattern: fix typo in error messageTshepang Lekhonkhobe-2/+2
2019-08-28Remove `sized` spansYuki Okushi-14/+2
2019-08-28Apply review commentsYuki Okushi-2/+14
2019-08-28Add Option<Span> to `require_lang_item`Yuki Okushi-0/+4
2019-08-27Add default serialization for `Ident`sMatthew Jasper-0/+51
Add tests for -Zast-json and -Zast-json-noexpand, which need this impl.