about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-12-18Auto merge of #56160 - oli-obk:const_fn_let, r=nikomatsakisbors-132/+1085
Fix various aspects around `let` bindings inside const functions * forbid `let` bindings in const contexts that use short circuiting operators * harden analysis code against derefs of mutable references Initially this PR was about stabilizing `let` bindings, but too many flaws were exposed that need some more testing on nightly
2018-12-18Update LLVM submoduleJethro Beekman-0/+0
2018-12-18Explain the mathOliver Scherer-4/+9
2018-12-18treat ref-to-raw cast like a reborrow: do a special kind of retagRalf Jung-128/+76
2018-12-18Explain that lack of short circuiting support in constants is temporaryOliver Scherer-3/+6
2018-12-18Properly worded diagnostic messageOliver Scherer-3/+3
2018-12-18Fix rustdoc-js testsJohn Heitmann-2/+14
Fixes rustdoc-js tests by teaching tester.js how to handle single-line js comments. Also, added speculative support for template strings, and warnings for future debuggers.
2018-12-18Auto merge of #56481 - arielb1:dynamic-order, r=nikomatsakisbors-59/+458
add coherence future-compat warnings for marker-only trait objects The future-compat warnings break code that assumes that `dyn Send + Sync != dyn Sync + Send`, and are the first step in making them equal. cc #33140. Note: this lint should be made to default-warn before we merge. It is deny only for the crater run. r? @nikomatsakis / @scalexm . cc @Centril & @alexreg.
2018-12-17bootstrap: Link LLVM as a dylib with ThinLTOAlex Crichton-51/+17
When building a distributed compiler on Linux where we use ThinLTO to create the LLVM shared object this commit switches the compiler to dynamically linking that LLVM artifact instead of statically linking to LLVM. The primary goal here is to reduce CI compile times, avoiding two+ ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll reuse the one ThinLTO step done by LLVM's build itself. Lots of discussion about this change can be found [here] and down. A perf run will show whether this is worth it or not! [here]: https://github.com/rust-lang/rust/pull/53245#issuecomment-417015334
2018-12-17fix testsNicole Mazzuca-2/+2
2018-12-17deny intra-doc link resolution failures in libstdAndy Russell-3/+24
2018-12-17Reordered match armsNathan West-1/+1
2018-12-17rename div_euc -> div_euclid, and mod_euc -> rem_euclidNicole Mazzuca-121/+141
logic is written up in https://github.com/rust-lang/rust/issues/49048 Also, update the documentation slightly
2018-12-18Fix DOM errorsGuillaume Gomez-32/+28
2018-12-18improve tests as suggested by review commentsAriel Ben-Yehuda-2/+92
2018-12-17Add --progress to git submodule commandsClar Fon-2/+2
2018-12-17Update the stdsimd submoduleAlex Crichton-15/+16
This brings in a few updates: * Update wasm intrinsic naming for atomics * Update and reimplement most simd128 wasm intrinsics * Other misc improvements here and there, including a small start to AVX-512 intrinsics
2018-12-17Stabilize `underscore_imports`Vadim Petrochenkov-69/+11
2018-12-17Do not point at delim spans for complete correct blocksEsteban Küber-1/+28
2018-12-17static eval: Do not ICE on layout size overflowDan Robertson-4/+30
Layout size overflow and typeck eval errors are reported. Trigger a bug only when the eval error is strictly labeled as TooGeneric.
2018-12-17rustc: Don't ICE on usage of two new target featuresAlex Crichton-1/+8
I seem to always forget to update this portion of the compiler...
2018-12-17Add required lifetime parameter to BitDenotation.David Wood-132/+138
This avoids all sorts of confusing issues with using both `dest_place` and `self` in the `propagate_call_return` function in the `BitDenotation` implementation for `Borrows`.
2018-12-17Auto merge of #56904 - sinkuu:cycle_fold, r=blussbors-13/+2
Remove Cycle::try_fold override Fixes #56883
2018-12-17Remove a wrong multiplier on relocation offset computationOliver Scherer-4/+13
2018-12-17profiler: improve readabilityljedrz-59/+56
2018-12-17profiler: simplify total_durationljedrz-3/+1
2018-12-17Kill borrows from a projection after assignment.David Wood-81/+125
This commit extends previous work to kill borrows from a local after assignment into that local to kill borrows from a projection after assignment into a prefix of that place.
2018-12-17Auto merge of #56810 - sinkuu:build_match, r=oli-obkbors-69/+339
Improve MIR match generation for ranges Improves MIR match generation to rule out ranges/values distinct from the range that has been tested. e.g., for this code: ```rust match x { 0..=5 if b => 0, 6..=10 => 1, _ => 2, } ``` MIR (before): ```rust bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb6, otherwise: bb5]; } bb1: { _3 = const 0i32; goto -> bb8; } bb2: { _6 = _2; switchInt(move _6) -> [false: bb6, otherwise: bb1]; } // If `!b`, jumps to test if `6 <= x <= 10`. bb3: { _3 = const 1i32; goto -> bb8; } bb4: { _3 = const 2i32; goto -> bb8; } bb5: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb6, otherwise: bb2]; } bb6: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; } bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; } ``` MIR (after): ```rust bb0: { ...; _4 = Le(const 0i32, _1); switchInt(move _4) -> [false: bb5, otherwise: bb6]; } bb1: { _3 = const 0i32; goto -> bb8; } bb2: { _6 = _2; switchInt(move _6) -> [false: bb4, otherwise: bb1]; } // If `!b`, jumps to `_ =>` arm. bb3: { _3 = const 1i32; goto -> bb8; } bb4: { _3 = const 2i32; goto -> bb8; } bb5: { _7 = Le(const 6i32, _1); switchInt(move _7) -> [false: bb4, otherwise: bb7]; } bb6: { _5 = Le(_1, const 5i32); switchInt(move _5) -> [false: bb5, otherwise: bb2]; } bb7: { _8 = Le(_1, const 10i32); switchInt(move _8) -> [false: bb4, otherwise: bb3]; } ``` cc #29623
2018-12-17Simplify MIR generation for logical opsShotaro Yamada-30/+23
2018-12-17Enable stack probes for UEFI imagesWonwoo Choi-0/+1
2018-12-17Address LLVM assertion failure by prepopulating with *just* name-anon-globals.Felix S. Klock II-1/+1
2018-12-17Address the pull request review comments.Vytautas Astrauskas-14/+12
2018-12-17Use compiletest timestamp to check if the tests should be rerun.Vytautas Astrauskas-10/+18
2018-12-17Auto merge of #56853 - matthiaskrgr:clippy, r=oli-obkbors-19/+12
submodules: update clippy from b7a431ea to a416c5e0 Changes: ```` rustup rust-lang/rust#52994 Fix test Line length fix Remove references to sized for end users Remove DUMMY_SP Add suggestion for replacement Update lint definitions Lint for Vec<Box<T: Sized>> - Closes #3530 Fix doc_markdown mixed case false positive question_mark: Suggest Some(opt?) for if-else redundant_field_names: Do not trigger on path with type params question_mark: Lint only early returns question_mark: Fix applicability Remove obsolete comment new_without_default, partialeq_ne_impl: Use span_lint_node Update .stderr after rebase cargo fmt and remove stabilized feature Make suggestion Applicability::MachineApplicable Address review feedback Extract method Check array lengths to prevent OOB access Add suggestion for explicit_write lint Fix write_with_newline escaping false positive ```` make toolstate green again
2018-12-17Auto merge of #56833 - nagisa:ios-fix, r=alexcrichtonbors-0/+2
Provide -isysroot with sdkroot for ios builds Necessary for the new XCode? Absolutely positively definitely untested… although I did ``` cargo rustc -- -Clink-arg=-isysroot -Clink-arg=$sdk_root ``` and stuff did compile for once.
2018-12-17tidyShotaro Yamada-1/+1
2018-12-17Add MIR testShotaro Yamada-0/+85
2018-12-17Revert thread-local changesJohn Kåre Alsaker-14/+4
2018-12-17Remove *_inlined variantsJohn Kåre Alsaker-13/+5
2018-12-17Add a commentJohn Kåre Alsaker-0/+3
2018-12-17Rename await into cycle_error for the single threaded case and add some commentsJohn Kåre Alsaker-2/+6
2018-12-17Turn some asserts into debug_assertsJohn Kåre Alsaker-2/+2
2018-12-17Tweak query code for performanceJohn Kåre Alsaker-82/+185
2018-12-17Auto merge of #56764 - sinkuu:simpcfg_bb0, r=matthewjasperbors-1/+80
mir-opt: Make SimplifyCfg collapse goto chains starting from bb0 `SimplifyCfg` pass was not able to collapse goto chains starting from bb0, leaving MIR like this: ``` bb0: { goto -> bb1; } ```
2018-12-17Remove `<Cycle as Iterator>::try_fold` overrideShotaro Yamada-13/+2
It was a incorrect optimization.
2018-12-17Auto merge of #56642 - nikic:llvm-6, r=alexcrichtonbors-94/+15
Bump minimum required LLVM version to 6.0 Based on the discussion in #55842, while the overall position of Rust wrt LLVM continues to be contentious, there does seem to be a consensus that there is no need for continued support of LLVM 5. This PR bumps our version requirement to LLVM 6.0 and makes Travis run against that. I hope that this is going to unblock #52694. If I understand correctly, while this issue still exists in LLVM 6, Ubuntu has backported the relevant patch. r? @alexcrichton
2018-12-17Fix grammar in compiler error for array iteratorsMatthew Russell-5/+5
2018-12-17Auto merge of #56737 - nnethercote:TokenStream-improvements, r=petrochenkovbors-285/+107
`TokenStream` improvements Some `TokenStream` improvements: shrinking `TokenStream` and some other types, and some other code clean-ups.
2018-12-17cleanup `deduce_expectations_from_obligations`Ariel Ben-Yehuda-25/+16
2018-12-17fix review comments, round 2Ariel Ben-Yehuda-53/+23