summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-12-161.40 stable releaseMark Rousskov-1/+1
2019-12-14Rebase fixesMark Rousskov-1/+0
2019-12-14resolve: Make visibility resolution more speculativeVadim Petrochenkov-69/+87
To avoid potential duplicate diagnostics and separate the error reporting logic
2019-12-14resolve: Cleanup some field processing codeVadim Petrochenkov-32/+31
2019-12-14Rebase fixesMark Rousskov-1/+10
2019-12-14Show const_err lint in addition to the hard errorOliver Scherer-2/+16
2019-12-14Ensure that we get a hard error on generic ZST constants if their body ↵Oliver Scherer-4/+39
causes an error during evaluation
2019-12-14expand: Fully preserve visibilities on unnamed fields with attributesVadim Petrochenkov-5/+35
2019-12-14def_collector: Do not forget to save indices of fields with multiple attributesVadim Petrochenkov-9/+18
2019-12-14Fix #66295Georg Semmler-30/+23
2019-12-14E0023: handle expected != pat-tup-typeMazdak Farrokhzad-10/+70
2019-12-14resolve: Resolve visibilities on fields with non-builtin attributesVadim Petrochenkov-4/+65
2019-12-14resolve: Always resolve visibilities on impl itemsVadim Petrochenkov-12/+46
2019-12-07Fix testsMark Rousskov-1/+2
2019-12-06[ConstProp] Avoid OOM crashes by not evaluating large PlacesWesley Wiser-1/+29
Fix spurious CI filures due to OOM Fixes #66397
2019-12-06Do not ICE whith a precision flag in formatting str and no format argumentsEsteban Küber-5/+23
2019-12-06Undo an assert causing an ICE until we fix the problem properlyOliver Scherer-5/+16
2019-12-06parser: don't use `unreachable!()` in `fn unexpected`.Mazdak Farrokhzad-1/+32
2019-12-05find_deprecation: deprecation attr may be ill-formed meta.Mazdak Farrokhzad-1/+23
2019-12-05review commentsEsteban Küber-9/+5
2019-12-05Do not ICE on recovery from unmet associated type bound obligationEsteban Küber-3/+41
2019-12-05Fix ICE when trying to suggest `Type<>` instead of `Type()`Esteban Küber-9/+10
2019-12-05review commentsEsteban Küber-1/+3
2019-12-05Do not ICE in `if` without `else` in `async fn`Esteban Küber-2/+32
2019-12-05Move `trait_ref_to_existential` to a closureEsteban Küber-21/+19
review comment
2019-12-05review commentsEsteban Küber-1/+5
2019-12-05Do not ICE on trait aliases with missing obligationsEsteban Küber-3/+37
2019-12-05Handle non_exhaustive in borrow checkingMatthew Jasper-1/+84
2019-12-02Auto merge of #66964 - ehuss:update-beta-cargo, r=alexcrichtonbors-0/+0
[beta] Update cargo 1 commits in 5da4b4d47963868d9878480197581ccbbdaece74..bc8e4c8be13c8f8d1583f9d52e55fda038c0f9d4 2019-10-28 21:53:41 +0000 to 2019-11-22 17:45:44 +0000 - [beta] Extend documentation on security concerns of crate names in a registry. (rust-lang/cargo#7619)
2019-12-02[beta] Update mdbookEric Huss-60/+4
2019-12-02[beta] Update cargoEric Huss-0/+0
2019-11-12stage0: download 1.39.0 from staticPietro Albini-2/+2
2019-11-05Hopefully fix rustdoc buildMark Rousskov-1/+12
It's super unclear why this broke when we switched to beta but not previously -- but at least it's hopefully fixed now.
2019-11-05this is beta 1.40.0Pietro Albini-5/+5
2019-11-05Auto merge of #65911 - mati865:static-libstdcxx-mingw, r=alexcrichtonbors-6/+10
Statically link libstdc++ on windows-gnu Fixes https://github.com/rust-lang/rust/issues/61561 by not shipping `libstdc++-6.dll` which can conflict with the GCC.
2019-11-04Auto merge of #65874 - Nadrieril:clarify-usefulness, r=varkorbors-798/+1047
Clarify pattern-matching usefulness algorithm This PR clarifies a bit the usefulness algorithm by emphasizing that each row of the matrix can be seen as a sort of stack from which we pop constructors. It also moves code around to increase separation of concerns. This is part of my splitting of https://github.com/rust-lang/rust/pull/65160 into smaller PRs.
2019-11-04Auto merge of #66078 - petrochenkov:gateout, r=Centrilbors-16/+182
expand: Feature gate out-of-line modules in proc macro input Extracted from https://github.com/rust-lang/rust/pull/64273. We are currently gating attributes applied directly to `mod` items because there are unresolved questions about out-of-line modules and their behavior is very likely to change. However, you can sneak an out-of-line module into an attribute macro input using modules nested into other items like ```rust #[my_attr] fn m() { #[path = "zzz.rs"] mod n; // what tokens does the `my_attr` macro see? } ``` This PR prevents that and emits a feature gate error for this case as well. r? @Centril It would be great to land this before beta.
2019-11-04expand: Feature gate out-of-line modules in proc macro inputVadim Petrochenkov-16/+182
2019-11-04Auto merge of #65835 - Mark-Simulacrum:lockless-lintbuffer, r=nikomatsakisbors-153/+173
Remove LintBuffer from Session This moves the `LintBuffer` from `Session` into the `Resolver`, where it is used until lowering is done and then consumed by early lint passes. This also happily removes the failure mode of buffering lints too late where it would have previously lead to ICEs; it is statically no longer possible to do so. I suspect that with a bit more work a similar move could be done for the lint buffer inside `ParseSess`, but this PR doesn't touch it (in part to keep itself small). The last commit is the "interesting" commit -- the ones before it don't work (though they compile) as they sort of prepare the various crates for the lint buffer to be passed in rather than accessed through Session.
2019-11-03Delete lint buffer from SessionMark Rousskov-68/+39
2019-11-03Move crate type checking laterMark Rousskov-51/+62
This allows us to directly pass in a lint buffer
2019-11-03Utilize Resolver lint buffer during HIR loweringMark Rousskov-10/+19
2019-11-03Migrate resolver over to internal lint bufferMark Rousskov-39/+73
2019-11-03Only permit taking buffered lints inside lint internalsMark Rousskov-1/+1
2019-11-03Remove unused get_any methodMark Rousskov-5/+0
2019-11-04Auto merge of #65838 - estebank:resilient-recovery, r=Centrilbors-153/+293
Reduce amount of errors given unclosed delimiter When in a file with a non-terminated item, catch the error and consume the block instead of trying to recover it on a more granular way in order to reduce the amount of unrelated errors that would be fixed after adding the missing closing brace. Also point out the possible location of the missing closing brace. Fix #63690.
2019-11-03Auto merge of #65780 - GuillaumeGomez:move-help-popup-generation-code, ↵bors-57/+49
r=Mark-Simulacrum Move help popup generation code The first commit is just a small cleanup. The idea behind this PR is to reduce a bit more the generated HTML files by moving the duplicated code into one place instead. r? @kinnison
2019-11-03Auto merge of #65646 - Amanieu:foreign-exceptions, r=nikomatsakisbors-428/+480
Allow foreign exceptions to unwind through Rust code and Rust panics to unwind through FFI This PR fixes interactions between Rust panics and foreign (mainly C++) exceptions. C++ exceptions (and other FFI exceptions) can now safely unwind through Rust code: - The FFI function causing the unwind must be marked with `#[unwind(allowed)]`. If this is not the case then LLVM may optimize landing pads away with the assumption that they are unreachable. - Drop code will be executed as the exception unwinds through the stack, as with a Rust panic. - `catch_unwind` will *not* catch the exception, instead the exception will silently continue unwinding past it. Rust panics can now safely unwind through C++ code: - C++ destructors will be called as the stack unwinds. - The Rust panic can only be caught with `catch (...)`, after which it can be either rethrown or discarded. - C++ cannot name the type of the Rust exception object used for unwinding, which means that it can't be caught explicitly or have its contents inspected. Tests have been added to ensure all of the above works correctly. Some notes about non-C++ exceptions: - `pthread_cancel` and `pthread_exit` use unwinding on glibc. This has the same behavior as a C++ exception: destructors are run but it cannot be caught by `catch_unwind`. - `longjmp` on Windows is implemented using unwinding. Destructors are run on MSVC, but not on MinGW. In both cases the unwind cannot be caught by `catch_unwind`. - As with C++ exceptions, you need to mark the relevant FFI functions with `#[unwind(allowed)]`, otherwise LLVM will optimize out the destructors since they seem unreachable. I haven't updated any of the documentation, so officially unwinding through FFI is still UB. However this is a step towards making it well-defined. Fixes #65441 cc @gnzlbg r? @alexcrichton
2019-11-03Auto merge of #65759 - tmiasko:ui, r=petrochenkovbors-268/+283
Validate error patterns and error annotation in ui tests when present Previously, when compilation succeeded, neither error patterns nor error annotation would be validated. Additionally, when compilation failed, only error patterns would be validated if both error patterns and error annotation were present. Now both error patterns and error annotation are validated when present, regardless of compilation status. Furthermore, for test that should run, the error patterns are matched against executable output, which is what some of tests already expect to happen, and when #65506 is merged even more ui tests will. Fixes #56277
2019-11-03Fix macOS testsAmanieu d'Antras-0/+2