summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-08-12Add date debug to CIMark Rousskov-0/+9
2019-08-12fix cycle when looking up size and align of a staticRalf Jung-22/+41
2019-08-12Avoid ICE when referencing desugared local binding in borrow errorEsteban Küber-13/+57
2019-08-12Switch to stable channelMark Rousskov-1/+1
2019-08-05bless ui testsPietro Albini-1/+1
2019-08-04Rollup merge of #63254 - ↵Pietro Albini-33/+1560
taiki-e:arbitrary_self_types-lifetime-elision-2-beta, r=Centril
2019-08-04arbitrary_self_types lifetime elision: --bless --compare-mode=nllTaiki Endo-0/+342
2019-08-04Fix typoTaiki Endo-1/+1
2019-08-04Add tests for `self: (&)AssocType`Taiki Endo-0/+124
2019-08-04Add test for multiple ref-selfTaiki Endo-7/+73
2019-08-04Minor clean upTaiki Endo-36/+27
2019-08-04Add main functions and check-pass annotationsTaiki Endo-22/+16
2019-08-04Update src/test/ui/self/elision/README.mdTaiki Endo-1/+1
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-08-04add a bevy of new test casesNiko Matsakis-0/+831
2019-08-04Use Set1<Region> instead of Option<Region>Taiki Endo-5/+6
2019-08-04Make is_self_ty a method on SelfVisitorTaiki Endo-32/+35
2019-08-04Remove query for `.pin_type()`Taiki Endo-36/+47
2019-08-04Allow lifetime elision in `Pin<&(mut) Self>`Taiki Endo-1/+165
2019-08-03Rollup merge of #62911 - ehuss:update-beta-cargo, r=alexcrichtonPietro Albini-0/+0
2019-08-03ci: move .azure-pipelines to src/ci/azure-pipelinesPietro Albini-0/+841
2019-08-03review commentsEsteban Küber-3/+4
2019-08-03Fix another caseEsteban Küber-3/+72
2019-08-03Make the parser TokenStream more resilient after mismatched delimiter recoveryEsteban Küber-0/+38
2019-08-03Require a value for configure --debuginfo-levelJosh Stone-6/+6
In `configure.py`, using the `o` function creates an enable/disable boolean setting, and writes `true` or `false` in `config.toml`. However, rustbuild is expecting to parse a `u32` debuginfo level. We can change to the `v` function to have the options require a value.
2019-08-02[BETA] Update cargoEric Huss-0/+0
2019-07-22Rollup merge of #62793 - wesleywiser:pgo_error_backport, r=zackmdavisPietro Albini-2/+5
2019-07-22Rollup merge of #62792 - goodmanjonathan:beta, r=estebankPietro Albini-1/+20
2019-07-22ci: pin awscli dependenciesPietro Albini-0/+13
docutils 0.15, a dependency of awscli, broke our CI since it's not compatible with Python 2 due to a bug. This pins all the dependencies of awscli with docutils 0.14, to make sure this kind of regressions doesn't happen again.
2019-07-22Cancel unemitted diagnostics during error recoveryEsteban Küber-8/+9
2019-07-22add test caseEsteban Küber-0/+13
2019-07-22Correctly break out of recovery loopEsteban Küber-2/+3
2019-07-22Handle errors during error recovery gracefullyEsteban Küber-4/+27
2019-07-22Raise the default recursion limit to 128Simonas Kazlauskas-29/+389
2019-07-22Blessed tests.Alexander Regueiro-0/+27
2019-07-22Added tests for issues.Alexander Regueiro-3/+23
2019-07-22Fixed ICEs.Alexander Regueiro-11/+1
2019-07-22Fixed up a few comments.Alexander Regueiro-10/+10
2019-07-22rustc_target: avoid negative register counts in the SysV x86_64 ABI.Eduard-Mihai Burtescu-9/+129
2019-07-18Only error about MSVC + PGO + unwind if we're generating codeWesley Wiser-2/+5
When `rustc` is invoked with the `--print` argument, we don't actually generate any code (unless it's the `native-static-libs` option). So we don't need to error our in this case since there's no risk of generating either LLVM assertions or corrupted binaries.
2019-07-18Don't drop DiagnosticBuilder if parsing failsJonathan Goodman-1/+20
Beta backport of #62668. If the explicitly given type of a `self` parameter fails to parse correctly, we need to propagate the error rather than dropping it and causing an ICE.
2019-07-08Force #[unwind(aborts)] in test/codegen/c-variadic.rsJosh Stone-0/+6
2019-07-08Revert "Allow a dirty MirBuilt for make_extern and make_method_extern"Josh Stone-2/+2
This reverts commit b4a6f597934f16f89e27058a32a514c9572f148f.
2019-07-08Permit unwinding through FFI by defaultMark Rousskov-1/+3
See #58794 for context.
2019-07-04Swap to stable releaseMark Rousskov-2/+2
2019-07-03HashMap is UnwindSafeSimon Sapin-0/+12
Fixes https://github.com/rust-lang/rust/issues/62301, a regression in 1.36.0 which was caused by hashbrown using `NonZero<T>` where the older hashmap used `Unique<T>`.
2019-07-03Switch to beta channelMark Rousskov-5/+5
2019-07-03Auto merge of #61775 - ↵bors-548/+2580
nikomatsakis:issue-56238-multiple-lifetimes-async-fn-region-solver, r=MatthewJasper generalize impl trait to permit multiple lifetime bounds Generalizes the region solver to support "pick constraints". These have the form: ``` pick R0 from [R1..Rn] ``` where `R1..Rn` are called the "option regions". The idea is that `R0` must be equal to *some* region in the set `R1..Rn`. These constraints are then used to handle cases like this: ```rust fn foo<'a, 'b>(...) -> impl Trait<'a, 'b> { .. } ``` The problem here is that every region R in the hidden type must be equal to *either* `'a` *or* `'b` (or `'static`) -- in the past, the only kinds of constraints we had were outlives constraints, and since `'a` and `'b` are unrelated, there was no outlives constraint we could issue that would enforce that (`R: 'a` and `R: 'b` are both too strict, for example). But now we can issue a pick constraint: `pick R from ['a, 'b]`. In general, solving pick constraints is tricky. We integrate them into the solver as follows. In general, during the propagation phase, we are monotonically growing a set of inference regions. To handle a case like `pick R from [O...]`, where `O...` represents the option regions, we do the following: - Look for all the *lower bounds* of the region R -- that is, every region LB such that `R: LB` must hold. - Look for all the *upper bounds* of the region R -- that is, every region UB such that `UB: R` must hold. - Let the *viable options* be each option region O such that `UB: O` and `O: LB` for each UB, LB bound. - Find the *minimal viable option* M, where `O: M` holds for every option region O. If there is such a *minimal viable option*, then we make `R: M`. (This may in turn influence other bits of inference.) If there is no minimal viable option, either because all options were eliminated or because none of the remaining options are minimal, we do nothing. Ultimately, if the pick constraint is not satisfied, an error is reported. For this logic, we currently require that the option regions O are always lifetime parameters. To determine the bounds, we walk the various outlives edges that were otherwise introduced. r? @matthewjasper cc @cramertj Fixes #56238 TODO: - [ ] Error messages include region variable info sometimes, how to fix? - [ ] Tests for bare `existential type` and other impl Trait usage
2019-07-02Auto merge of #61268 - michaelwoerister:stabilize-pgo, r=alexcrichtonbors-36/+189
Stabilize support for Profile-guided Optimization This PR makes profile-guided optimization available via the `-C profile-generate` / `-C profile-use` pair of commandline flags and adds end-user documentation for the feature to the [rustc book](https://doc.rust-lang.org/rustc/). The PR thus ticks the last two remaining checkboxes of the [stabilization tracking issue](https://github.com/rust-lang/rust/issues/59913). From the tracking issue: > Profile-guided optimization (PGO) is a common optimization technique for ahead-of-time compilers. It works by collecting data about a program's typical execution (e.g. probability of branches taken, typical runtime values of variables, etc) and then uses this information during program optimization for things like inlining decisions, machine code layout, or indirect call promotion. If you are curious about how this can be used, there is a rendered version of the documentation this PR adds available [here]( https://github.com/michaelwoerister/rust/blob/stabilize-pgo/src/doc/rustc/src/profile-guided-optimization.md). r? @alexcrichton cc @rust-lang/compiler
2019-07-02fix ICE with delay-span-bugNiko Matsakis-3/+39
2019-07-02address nitsNiko Matsakis-6/+6