about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-08-15Removed `ignore-test-compare-mode-nll` from borrowck-closures-two-mut-fail.rsFelix S. Klock II-10/+93
by strengthening the tests there.
2018-08-15Removed `ignore-test-compare-mode-nll` from borrowck-closures-unique.rsFelix S. Klock II-8/+90
by strengthening the tests there. In almost all cases the strengthening amount to just encoding a use that models the original lexical lifetime. A more invasive revision was made in one case where it seems the actual issue is MIR-borrowck's greater "knowledge" of unreachable code in the control flow...
2018-08-14Auto merge of #53354 - kennytm:rollup, r=kennytmbors-229/+486
Rollup of 11 pull requests Successful merges: - #53112 (pretty print BTreeSet) - #53208 (Don't panic on std::env::vars() when env is null.) - #53226 (driver: set the syntax edition in phase 1) - #53229 (Make sure rlimit is only ever increased) - #53233 (targets: aarch64: Add bare-metal aarch64 target) - #53239 (rustc_codegen_llvm: Restore the closure env alloca hack for LLVM 5.) - #53246 (A few cleanups) - #53257 (Idiomatic improvements to IP method) - #53274 (Remove statics field from CodegenCx) - #53290 (Make LLVM emit assembly comments with -Z asm-comments) - #53317 (Mark prior failure to avoid ICE)
2018-08-14Rollup merge of #53317 - estebank:abolish-ice, r=oli-obkkennytm-0/+46
Mark prior failure to avoid ICE Fix #53251
2018-08-14Rollup merge of #53290 - whitequark:fix-35741, r=nagisakennytm-2/+9
Make LLVM emit assembly comments with -Z asm-comments Fixes #35741, and makes `-Z asm-comments` actually do something useful. Before: ``` .section .text.main,"ax",@progbits .globl main .p2align 4, 0x90 .type main,@function main: .cfi_startproc pushq %rax .cfi_def_cfa_offset 16 movslq %edi, %rax leaq _ZN1t4main17he95a7d4f1843730eE(%rip), %rdi movq %rsi, (%rsp) movq %rax, %rsi movq (%rsp), %rdx callq _ZN3std2rt10lang_start17h3121da83b2bc3697E movl %eax, %ecx movl %ecx, %eax popq %rcx .cfi_def_cfa_offset 8 retq .Lfunc_end8: .size main, .Lfunc_end8-main .cfi_endproc ``` After: ``` .section .text.main,"ax",@progbits .globl main # -- Begin function main .p2align 4, 0x90 .type main,@function main: # @main .cfi_startproc # %bb.0: pushq %rax .cfi_def_cfa_offset 16 movslq %edi, %rax leaq _ZN1t4main17he95a7d4f1843730eE(%rip), %rdi movq %rsi, (%rsp) # 8-byte Spill movq %rax, %rsi movq (%rsp), %rdx # 8-byte Reload callq _ZN3std2rt10lang_start17h3121da83b2bc3697E movl %eax, %ecx movl %ecx, %eax popq %rcx .cfi_def_cfa_offset 8 retq .Lfunc_end8: .size main, .Lfunc_end8-main .cfi_endproc # -- End function ```
2018-08-14Rollup merge of #53274 - bjorn3:remove_statics_field, r=nagisakennytm-7/+0
Remove statics field from CodegenCx It doesnt seem to be used anywhere.
2018-08-14Rollup merge of #53257 - faern:ip-method-idiomatic-improvement, r=TimNNkennytm-47/+50
Idiomatic improvements to IP method Since match ergonomics and slice patterns are stable this might be more idiomatic modern Rust implementations of these methods? Or well, slice patterns with `..` are not stabilized yet, so maybe we want to specify all fields but with `_`?
2018-08-14Rollup merge of #53246 - ljedrz:cleanup_various, r=kennytmkennytm-153/+141
A few cleanups - change `skip(1).next()` to `nth(1)` - collapse some `if-else` expressions - remove a few explicit `return`s - remove an unnecessary field name - dereference once instead of matching on multiple references - prefer `iter().enumerate()` to indexing with `for` - remove some unnecessary lifetime annotations - use `writeln!()` instead of `write!()`+`\n` - remove redundant parentheses - shorten some enum variant names - a few other cleanups suggested by `clippy`
2018-08-14Rollup merge of #53239 - cuviper:llvm5-closure-alloca, r=eddybkennytm-2/+24
rustc_codegen_llvm: Restore the closure env alloca hack for LLVM 5. This hack was removed in #50949, but without it I found that building `std` with full debuginfo would print many LLVM `DW_OP_LLVM_fragment` errors, then die `LLVM ERROR: Failed to strip malformed debug info`. It doesn't seem to be a problem for LLVM 6, so we can re-enable the hack just for older LLVM. This reverts commit da579ef75e4a8ca11fb98b24a0a3ea0c7ccffeeb. Fixes #53204. r? @eddyb
2018-08-14Rollup merge of #53233 - andre-richter:master, r=alexcrichtonkennytm-0/+48
targets: aarch64: Add bare-metal aarch64 target A generic AArch64 target that can be used for writing bare-metal code for 64-bit ARM architectures.
2018-08-14Rollup merge of #53229 - varkor:rlimits_min, r=nikomatsakiskennytm-8/+12
Make sure rlimit is only ever increased `libc::setrlimit` will fail if we try to set the rlimit to a value lower than it is currently, so make sure we're never trying to do this. Fixes #52801.
2018-08-14Rollup merge of #53226 - QuietMisdreavus:editions-for-all, r=estebankkennytm-5/+28
driver: set the syntax edition in phase 1 Fixes https://github.com/rust-lang/rust/issues/53203 It seems the way libsyntax handles the desired edition is to use a global, set via `syntax_pos::hygiene::set_default_edition`. Right now, this is set in the driver in `run_compiler`, which is the entry point for running the compiler all the way through to emitting files. Since rustdoc doesn't use this function, it wasn't properly setting this global. (When initially setting up editions in rustdoc, i'd assumed that setting `sessopts.edition` would have done this... `>_>`) This was "fixed" for doctests in https://github.com/rust-lang/rust/pull/52385, but rather than patching in a call to `set_default_edition` in all the places rustdoc sets up the compiler, i've instead moved the call in the driver to be farther in the process. This means that any use of `phase_1_parse_input` with the right session options will have the edition properly set without having to also remember to set libsyntax up separately. r? @rust-lang/compiler
2018-08-14Rollup merge of #53208 - BurntPizza:protect-the-environment, r=alexcrichtonkennytm-5/+30
Don't panic on std::env::vars() when env is null. Fixes #53200. Reviewer(s): * Do I need to do any `#[cfg()]` here? * Is this use of libc ok for a dev-dependency?
2018-08-14Rollup merge of #53112 - fukatani:pretty-print-btreeset, r=michaelwoeristerkennytm-0/+98
pretty print BTreeSet I want pretty printing for BTreeSet. ```rust use std::collections::*; fn main() { let mut s = BTreeSet::new(); s.insert(5); s.insert(3); s.insert(7); s.remove(&3); println!("{:?}", s); } ``` ``` (gdb) b 9 (gdb) p s $1 = BTreeSet<i32> with 2 elements = {[0] = 5, [1] = 7} ``` This is analogy of pretty printing for C++ std::set.
2018-08-14Auto merge of #53085 - ljedrz:cleanup_syntax_structures, r=ljedrzbors-245/+245
Move SmallVector and ThinVec out of libsyntax - move `libsyntax::util::SmallVector` tests to `librustc_data_structures::small_vec` - remove `libsyntax::util::SmallVector` - move `libsyntax::util::thin_vec` to `librustc_data_structures::thin_vec` Other than moving these data structures where they belong it allows modules using `SmallVector<T>` (`SmallVec<[T; 1]>`) to specify their own length (e.g. 8 or 32) independently from `libsyntax`.
2018-08-14Auto merge of #53196 - davidtwco:compile-fail-to-ui, r=nikomatsakisbors-77/+59549
Move `compile-fail` tests to `ui` Fixes #46841, #52531, #44844. r? @nikomatsakis
2018-08-14Auto merge of #53335 - eddyb:issue-53333, r=petrochenkovbors-2/+20
rustc_resolve: crates only exist in the type namespace. Fixes #53333 by resolving `::crate_name` in `TypeNS` alone, which was overlooked in #52923 and didn't break tests, since having `use crate_name;` and a `crate_name` value in the same scope is rare.
2018-08-14Moved problematic tests on x86_64-gnu-nopt back to compile-fail.David Wood-32/+0
2018-08-14Moved problematic tests on x86_64-pc-windows-gnu back to compile-fail.David Wood-37/+54
2018-08-14Moved problematic tests on armhf-gnu back to compile-fail.David Wood-22/+0
2018-08-14Moved problematic tests on wasm32-unknown back to compile-fail.David Wood-4/+25
2018-08-14Moved problematic tests on dist-x86_64-musl back to compile-fail.David Wood-12/+70
2018-08-14Moved problematic tests on i586-unknown-linux-gnu back to compile-fail.David Wood-7/+0
2018-08-14Normalize tests for i686 Windows.David Wood-82/+58
2018-08-14Fixed 'no such file or directory' mismatch between Windows and Linux.David Wood-16/+22
2018-08-14Moved problematic tests on Windows back to compile-fail.David Wood-79/+0
2018-08-14Moved tests back to compile-test if they don't work on ui.David Wood-65/+0
2018-08-14Fix no-link-with-link-args by introducing another normalization.David Wood-2/+10
2018-08-14Normalize crateresolve1.rs to support different candidate ordering between ↵David Wood-10/+12
executions.
2018-08-14Suggested trait implementation ordering is now deterministic.David Wood-10/+18
2018-08-14Fixed truncated path not being normalized.David Wood-2/+4
2018-08-14Normalize test build directory and root build directory.David Wood-8/+17
2018-08-14Tidy no longer fails when there are no files or subdirectories in a test ↵David Wood-9/+107
directory.
2018-08-14Merged migrated compile-fail tests and ui tests. Fixes #46841.David Wood-762/+884
2018-08-14Updated new UI tests to pass with NLL compare-modeDavid Wood-175/+273
These tests need a review to ensure that those marked as ignore-compare-mode-nll should be ignored and that this isn't a bug in NLL.
2018-08-14Moved compile-fail tests to ui tests.David Wood-0/+59249
2018-08-14Check error-patterns on UI tests. Fixes #52531.David Wood-21/+24
Previously, even if no expected errors were supplied, if a test execution failed then supplied error patterns would not be checked. This commit modifies the conditional that determines whether error patterns or expected errors are checked to remedy this. Further, this commit modifies the error pattern checking logic so that each pattern is checked against all lines of the string. This is required for UI tests as the stderr is in JSON format - all on one line - so in the previous implementation when the first pattern was found on the first line (which was actually the entire error) then no other patterns would be found on subsequent lines (as there weren't any).
2018-08-14Auto merge of #53033 - RalfJung:manually_dro, r=SimonSapinbors-3/+11
unsized ManuallyDrop I think this matches what @eddyb had in https://github.com/rust-lang/rust/pull/52711 originally. ~~However, I have never added a `CoerceUnsized` before so I am not sure if I did this right. I copied the `unstable` attribute on the `impl` from elsewhere, but AFAIK it is useless because `impl`'s are insta-stable... so shouldn't this rather say "stable since 1.30"?~~ This is insta-stable and hence requires FCP, at least. Fixes https://github.com/rust-lang/rust/issues/47034
2018-08-14rustc_resolve: crates only exist in the type namespace.Eduard-Mihai Burtescu-2/+20
2018-08-14Auto merge of #52895 - draganmladjenovic:minmax_qnan, r=alexcrichtonbors-0/+7
run-pass/simd-intrinsic-float-minmax: Force use of qNaN on Mips Workaround for #52746. r? @gnzlbg
2018-08-14rustc_resolve: also inject canaries to detect block scopes shadowing ↵Eduard-Mihai Burtescu-34/+118
`uniform_paths` imports.
2018-08-14rustc_resolve: inject ambiguity "canaries" when #![feature(uniform_paths)] ↵Eduard-Mihai Burtescu-15/+343
is enabled.
2018-08-14#[feature(uniform_paths)]: allow `use x::y;` to resolve through `self::x`, ↵Taylor Cramer-7/+367
not just `::x`.
2018-08-14rustc_resolve: fix special-case for one-segment import paths.Eduard-Mihai Burtescu-238/+433
2018-08-14syntax: gensym the injected std/core extern crates in the Rust 2018 edition.Eduard-Mihai Burtescu-10/+33
2018-08-13Mark prior failure to avoid ICEEsteban Küber-0/+46
Fix #53251
2018-08-14syntax: add `uniform_paths` feature-gate.Eduard-Mihai Burtescu-0/+34
2018-08-13Move SmallVec and ThinVec out of libsyntaxljedrz-245/+245
2018-08-13Auto merge of #53270 - petrochenkov:macuse-regr, r=alexcrichtonbors-116/+262
Fix a few regressions from enabling macro modularization The first commit restores the old behavior for some minor unstable stuff (`rustc_*` and `derive_*` attributes) and adds a new feature gate for arbitrary tokens in non-macro attributes. The second commit fixes https://github.com/rust-lang/rust/issues/53205 The third commit fixes https://github.com/rust-lang/rust/issues/53144. Same technique is used as for other things blocking expansion progress - if something causes indeterminacy too often, then prohibit it. In this case referring to crate-local macro-expanded `#[macro_export]` macros via module-relative paths is prohibited, see comments in code for more details. cc https://github.com/rust-lang/rust/pull/50911
2018-08-13fix behaviorUnknown-4/+3