summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2020-07-30Fix #[track_caller] shims for trait objects.Adam Perry-0/+25
We were missing an Instance::resolve_for_fn_ptr in resolve_for_vtable. Closes #74764.
2020-07-30Add a test for pattern matching within a tupleMark Rousskov-0/+7
2020-07-30Revert "Fix an ICE on an invalid `binding @ ...` in a tuple struct pattern"Mark Rousskov-33/+0
This reverts commit 174b58287c66a6ad3eaa1897279d769611919960.
2020-07-25The const propagator cannot trace references.Oliver Scherer-40/+166
Thus we avoid propagation of a local the moment we encounter references to it.
2020-07-23Fix an ICE on an invalid `binding @ ...` in a tuple struct patternJakub Adam Wieczorek-0/+33
2020-07-22Use `ReEmpty(U0)` as the implicit region bound in typeckMatthew Jasper-0/+101
2020-07-10Change how compiler-builtins gets many CGUsAlex Crichton-40/+0
This commit intends to fix an accidental regression from #70846. The goal of #70846 was to build compiler-builtins with a maximal number of CGUs to ensure that each module in the source corresponds to an object file. This high degree of control for compiler-builtins is desirable to ensure that there's at most one exported symbol per CGU, ideally enabling compiler-builtins to not conflict with the system libgcc as often. In #70846, however, only part of the compiler understands that compiler-builtins is built with many CGUs. The rest of the compiler thinks it's building with `sess.codegen_units()`. Notably the calculation of `sess.lto()` consults `sess.codegen_units()`, which when there's only one CGU it disables ThinLTO. This means that compiler-builtins is built without ThinLTO, which is quite harmful to performance! This is the root of the cause from #73135 where intrinsics were found to not be inlining trivial functions. The fix applied in this commit is to remove the special-casing of compiler-builtins in the compiler. Instead the build system is now responsible for special-casing compiler-builtins. It doesn't know exactly how many CGUs will be needed but it passes a large number that is assumed to be much greater than the number of source-level modules needed. After reading the various locations in the compiler source, this seemed like the best solution rather than adding more and more special casing in the compiler for compiler-builtins. Closes #73135
2020-07-10Perform obligation deduplication to avoid buggy `ExistentialMismatch`Esteban Küber-0/+26
Fix #59326.
2020-07-10rustc_lexer: Simplify shebang parsing once moreVadim Petrochenkov-5/+9
2020-07-10rustdoc: Rename invalid_codeblock_attribute lint to be pluralOliver Middleton-6/+6
2020-07-10rustdoc: Fix doc aliases with crate filteringOliver Middleton-0/+37
Fix a crash when searching for an alias contained in the currently selected filter crate. Also remove alias search results for crates that should be filtered out. The test suite needed to be fixed to actually take into account the crate filtering and check that there are no results when none are expected.
2020-06-26Beta backport of PR #73005 (obligation error impl candidate)Aaron Hill-181/+37
2020-06-26Ensure stack when building MIR for matchesSimonas Kazlauskas-0/+5208
In particular matching on complex types such as strings will cause deep recursion to happen. Fixes #72933
2020-06-26Don't run test on emscripten which doesn't have threadsAmanieu d'Antras-0/+1
2020-06-26Add -O compile flag to testAmanieu d'Antras-0/+1
2020-06-26Fix link error with #[thread_local] introduced by #71192Amanieu d'Antras-0/+12
2020-06-26Allow inference regions when relating constsTyler Mandry-0/+12
Fixes #73050
2020-06-26Disable the `SimplifyArmIdentity` pass on betaWesley Wiser-61/+82
This pass is buggy so I'm disabling it to fix a stable-to-beta regression. Related to #73223
2020-06-26Add regression test for #73431Dylan MacKenzie-0/+29
2020-06-13further bless tests.Felix S. Klock II-19/+19
2020-06-13Revert "Defer creating drop trees in MIR lowering until leaving that scope"Felix S. Klock II-3/+3
This reverts commit 611988551fba1bcbb33ae2e1e0171cb8d2e70d5a.
2020-06-13Revert "Bless mir-opt tests"Felix S. Klock II-819/+973
This reverts commit a030c923412b0a0f7b02a585debe7bf60357370d.
2020-06-13normalize adt fields during structural match checkBastian Kauschke-0/+23
2020-06-13Add regression test for #73137Dylan MacKenzie-0/+42
Co-authored-by: Aaron1011 <aa1ronham@gmail.com>
2020-06-13Revert "Auto merge of #71956 - ↵Mark Rousskov-2/+2
ecstatic-morse:remove-requires-storage-analysis, r=tmandry" This reverts commit 458a3e76294fd859fb037f425404180c91e14767, reversing changes made to d9417b385145af1cabd0be8a95c65075d2fc30ff.
2020-06-02Rollup merge of #72893 - RalfJung:unleash-tls, r=ecstatic-morseYuki Okushi-3/+55
test miri-unleash TLS accesses Finally gets rid of `IS_SUPPORTED_IN_MIRI`. :-) I also added a test for the new `asm!` while I am at it. r? @ecstatic-morse Cc @rust-lang/wg-const-eval
2020-06-02Rollup merge of #72825 - Amanieu:asm-warning, r=davidtwcoYuki Okushi-10/+16
Clarify errors and warnings about the transition to the new asm! Hopefully addresses the concerns from https://github.com/rust-lang/rust/pull/71007#issuecomment-636412905.
2020-06-02Rollup merge of #72795 - petrochenkov:identgroup, r=nikomatsakisYuki Okushi-33/+99
Add a test for `$:ident` in proc macro input cc https://github.com/rust-lang/rust/issues/72545#issuecomment-636388019
2020-06-02Rollup merge of #72775 - JohnTitor:await-sugg, r=estebankYuki Okushi-0/+35
Return early to avoid ICE Fixes #72766
2020-06-02Fix commentRalf Jung-1/+1
Co-authored-by: Aaron Hill <aa1ronham@gmail.com>
2020-06-01test miri-unleash TLS accessesRalf Jung-3/+55
2020-06-01Auto merge of #71192 - oli-obk:eager_alloc_id_canonicalization, r=wesleywiserbors-0/+53
Make TLS accesses explicit in MIR r? @rust-lang/wg-mir-opt cc @RalfJung @vakaras for miri thread locals cc @bjorn3 for cranelift fixes #70685
2020-06-01Rollup merge of #72823 - matthewjasper:describe-queries, r=eddybDylan DPC-56/+61
Add descriptions for all queries This also removes the default description for queries with DefId keys and makes the macro validate that a description is provided. cc #72730 r? @eddyb
2020-05-31Rollup merge of #72807 - xiaotianrandom:fix-assoc-type-diagnostics, r=estebankDylan DPC-0/+29
Avoid setting wrong obligation cause span of associated type mismatch Removes code that sets wrong obligation cause span of associated type mismatch. See the linked issue for details. Closes #72806.
2020-05-31Add descriptions for all queriesMatthew Jasper-56/+61
2020-05-31Clarify errors and warnings about the transition to the new asm!Amanieu d'Antras-10/+16
2020-05-31Rollup merge of #72715 - estebank:trailing-comma-where, r=petrochenkovRalf Jung-1/+1
Account for trailing comma when suggesting `where` clauses Fix #72693.
2020-05-31Add a test for wrong assoc type diagnosticsXIAO Tian-0/+29
2020-05-31Add a test for `$:ident` in proc macro inputVadim Petrochenkov-0/+94
2020-05-31test-macros: Avoid always producing errors in `#[derive(Print)]`Vadim Petrochenkov-33/+5
2020-05-30Rollup merge of #72772 - RalfJung:valid-char, r=petrochenkovRalf Jung-1/+1
miri validation: clarify valid values of 'char' The old text said "expected a valid unicode codepoint", which is not actually correct -- it has to be a scalar value (which is a code point that is not part of a surrogate pair).
2020-05-30Rollup merge of #72757 - petrochenkov:shebang, r=varkorRalf Jung-0/+14
rustc_lexer: Optimize shebang detection slightly Sorry, I just couldn't resist. It shouldn't make any difference in practice. Also, documented a previously unnoticed case with doc comments treated as regular comments during shebang detection.
2020-05-30Rollup merge of #72668 - ↵Ralf Jung-0/+68
awoimbee:give-fn-parenthetical-notation-parentheses, r=estebank Fix missing parentheses Fn notation error Fixes #72611 Well, fixes the error output, I think E0658 is the right error to throw in this case so I didn't change that
2020-05-30Rollup merge of #72666 - ivanloz:profile_emit_flag, r=matthewjasperRalf Jung-0/+3
Add -Z profile-emit=<path> for Gcov gcda output. Adds a -Z flag to control the file path that the Gcov gcda output is written to during runtime. This flag expects a path and filename, e.g. -Z profile-emit=gcov/out/lib.gcda. This works similar to GCC/Clang's -fprofile-dir flag which allows control over the output path for gcda coverage files.
2020-05-30Rollup merge of #72657 - flip1995:impl_lint_pass-ty, r=matthewjasperRalf Jung-0/+26
Allow types (with lifetimes/generics) in impl_lint_pass cc https://github.com/rust-lang/rust-clippy/pull/5279#discussion_r430790267 This allows to implement `LintPass` for types with lifetimes and/or generics. The only thing, I'm not sure of is the `LintPass::name` function, which now includes the lifetime(s) (which will be `'_` most of the time) in the name returned for the lint pass, if it exists. But I don't think that this should be a problem, since the `LintPass::name` is never used for output for the user (?).
2020-05-30Rollup merge of #72637 - euclio:env-hygiene, r=davidtwcoRalf Jung-0/+8
expand `env!` with def-site context Similar to #66349. Fixes rust-lang/rust-clippy#5619.
2020-05-30Rollup merge of #72625 - Amanieu:asm-srcloc, r=petrochenkovRalf Jung-12/+133
Improve inline asm error diagnostics Previously we were just using the raw LLVM error output (with line, caret, etc) as the diagnostic message, which ends up looking rather out of place with our existing diagnostics. The new diagnostics properly format the diagnostics and also take advantage of LLVM's per-line `srcloc` attribute to map an error in inline assembly directly to the relevant line of source code. Incidentally also fixes #71639 by disabling `srcloc` metadata during LTO builds since we don't know what crate it might have come from. We can only resolve `srcloc`s from the currently crate since it indexes into the source map for the current crate. Fixes #72664 Fixes #71639 r? @petrochenkov ### Old style ```rust #![feature(llvm_asm)] fn main() { unsafe { let _x: i32; llvm_asm!( "mov $0, $1 invalid_instruction $0, $1 mov $0, $1" : "=&r" (_x) : "r" (0) :: "intel" ); } } ``` ``` error: <inline asm>:3:14: error: invalid instruction mnemonic 'invalid_instruction' invalid_instruction ecx, eax ^~~~~~~~~~~~~~~~~~~ --> src/main.rs:6:9 | 6 | / llvm_asm!( 7 | | "mov $0, $1 8 | | invalid_instruction $0, $1 9 | | mov $0, $1" ... | 12 | | :: "intel" 13 | | ); | |__________^ ``` ### New style ```rust #![feature(asm)] fn main() { unsafe { asm!( "mov {0}, {1} invalid_instruction {0}, {1} mov {0}, {1}", out(reg) _, in(reg) 0i64, ); } } ``` ``` error: invalid instruction mnemonic 'invalid_instruction' --> test.rs:7:14 | 7 | invalid_instruction {0}, {1} | ^ | note: instantiated into assembly here --> <inline asm>:3:14 | 3 | invalid_instruction rax, rcx | ^^^^^^^^^^^^^^^^^^^ ```
2020-05-30Tweak wording and spans of `'static` `dyn Trait`/`impl Trait` requirementsEsteban Küber-135/+65
2020-05-30Account for enclosing item when suggesting new lifetime nameEsteban Küber-10/+63
2020-05-30Tweak type parameter errors to reduce verbosityEsteban Küber-363/+55