-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 11 pull requests #74322
Rollup of 11 pull requests #74322
Commits on May 30, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 7527409 - Browse repository at this point
Copy the full SHA 7527409View commit details
Commits on May 31, 2020
-
Substantial refactor to the design of LineWriter
This commit redesigns LineWriter to work more directly on the internals of BufWriter. This interface change is to enable a future Pull Request in which Stdout can be switched between Line and Block buffered mode.
Configuration menu - View commit details
-
Copy full SHA for 37570e8 - Browse repository at this point
Copy the full SHA 37570e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f38158 - Browse repository at this point
Copy the full SHA 0f38158View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a1597f - Browse repository at this point
Copy the full SHA 4a1597fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5edad37 - Browse repository at this point
Copy the full SHA 5edad37View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bf8ba3 - Browse repository at this point
Copy the full SHA 1bf8ba3View commit details
Commits on Jun 1, 2020
-
Configuration menu - View commit details
-
Copy full SHA for e0dfdc6 - Browse repository at this point
Copy the full SHA e0dfdc6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c3024b - Browse repository at this point
Copy the full SHA 2c3024bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e89e2e4 - Browse repository at this point
Copy the full SHA e89e2e4View commit details -
Various testing & implementation updates:
- Added a bunch of new unit tests - Removed test_line_buffer_fail_flush - Updated erroneous_flush_retried - Added helper methods to LineWriterShim for code clarity, to distinguish "self.buffer" (the BufWriter) from self.inner (the thing wrapped by the BufWriter) - Un-expressionized write & write_all - Added clause to bail early on Ok(0)
Configuration menu - View commit details
-
Copy full SHA for f0a0807 - Browse repository at this point
Copy the full SHA f0a0807View commit details
Commits on Jun 2, 2020
-
Tons of testing updates, other minor changes
- Cleaned up BufWriter::seek - Updated line_vectored test - Updated line_vectored_partial_and_errors test - Added several new tests
Configuration menu - View commit details
-
Copy full SHA for b6296e8 - Browse repository at this point
Copy the full SHA b6296e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for e022d34 - Browse repository at this point
Copy the full SHA e022d34View commit details -
Code review updates: all minor style fixes
- Renamed write_to_buffer to write_to_buf, for consistency - Fixed references to flush_buf - Optimized `write` to use one less `memchr` call
Configuration menu - View commit details
-
Copy full SHA for e4328ae - Browse repository at this point
Copy the full SHA e4328aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for f7650fe - Browse repository at this point
Copy the full SHA f7650feView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a6a12b - Browse repository at this point
Copy the full SHA 7a6a12bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 338a2c0 - Browse repository at this point
Copy the full SHA 338a2c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for c869638 - Browse repository at this point
Copy the full SHA c869638View commit details -
Configuration menu - View commit details
-
Copy full SHA for 61f591e - Browse repository at this point
Copy the full SHA 61f591eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d22c77 - Browse repository at this point
Copy the full SHA 2d22c77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2c23b90 - Browse repository at this point
Copy the full SHA 2c23b90View commit details -
Configuration menu - View commit details
-
Copy full SHA for e999ca5 - Browse repository at this point
Copy the full SHA e999ca5View commit details -
- Fixed test after write_vectored bugfix - Some comments
Configuration menu - View commit details
-
Copy full SHA for 70ba320 - Browse repository at this point
Copy the full SHA 70ba320View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b1a40c - Browse repository at this point
Copy the full SHA 5b1a40cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8df5ae0 - Browse repository at this point
Copy the full SHA 8df5ae0View commit details -
Fixed corner case related to partial-line buffering
- Fixed partial-line buffering issue - Added tests Thanks @the8472 for catching!
Configuration menu - View commit details
-
Copy full SHA for 60ab99f - Browse repository at this point
Copy the full SHA 60ab99fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38017a3 - Browse repository at this point
Copy the full SHA 38017a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 59710fb - Browse repository at this point
Copy the full SHA 59710fbView commit details
Commits on Jun 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3e48aae - Browse repository at this point
Copy the full SHA 3e48aaeView commit details
Commits on Jun 26, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 98a3b07 - Browse repository at this point
Copy the full SHA 98a3b07View commit details
Commits on Jun 29, 2020
-
Obviate #[allow(improper_ctypes_definitions)]
Modifies the return type for `fn entry` so that allowing improper_ctypes_definitions is no longer necessary. This change is derived from a similar pattern in `libstd/sys/sgx/abi/usercalls/raw.rs` with `UsercallReturn`.
Configuration menu - View commit details
-
Copy full SHA for 9448ed4 - Browse repository at this point
Copy the full SHA 9448ed4View commit details
Commits on Jul 2, 2020
-
typeck: check for infer before type impls trait
This commit checks that the target type of the cast (an error related to which is being reported) does not have types to be inferred before checking if it implements the `From` trait. Signed-off-by: David Wood <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bddb266 - Browse repository at this point
Copy the full SHA bddb266View commit details
Commits on Jul 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 23d7b3f - Browse repository at this point
Copy the full SHA 23d7b3fView commit details
Commits on Jul 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for b8632e1 - Browse repository at this point
Copy the full SHA b8632e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 140bfc5 - Browse repository at this point
Copy the full SHA 140bfc5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 997accc - Browse repository at this point
Copy the full SHA 997acccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a7b5df - Browse repository at this point
Copy the full SHA 6a7b5dfView commit details
Commits on Jul 12, 2020
-
- Remove outdated comment - Refactor flush-retry behavior into its own method - Some other comment updates
Configuration menu - View commit details
-
Copy full SHA for 606593f - Browse repository at this point
Copy the full SHA 606593fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9a8b516 - Browse repository at this point
Copy the full SHA 9a8b516View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e05e09 - Browse repository at this point
Copy the full SHA 1e05e09View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ff820c - Browse repository at this point
Copy the full SHA 0ff820cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 90a7d24 - Browse repository at this point
Copy the full SHA 90a7d24View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27a966a - Browse repository at this point
Copy the full SHA 27a966aView commit details -
Configuration menu - View commit details
-
Copy full SHA for b1d6798 - Browse repository at this point
Copy the full SHA b1d6798View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0281a05 - Browse repository at this point
Copy the full SHA 0281a05View commit details -
Configuration menu - View commit details
-
Copy full SHA for e31898b - Browse repository at this point
Copy the full SHA e31898bView commit details -
pprust: support multiline comments within lines
This commit adds support to rustc_ast_pretty for multiline comments that start and end within a line of source code. Signed-off-by: David Wood <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 083c2f6 - Browse repository at this point
Copy the full SHA 083c2f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5daedea - Browse repository at this point
Copy the full SHA 5daedeaView commit details -
Clean up handling of style files in rustdoc
Disable all themes other than `light.css` to prevent rule conflicts
Configuration menu - View commit details
-
Copy full SHA for 0e89f50 - Browse repository at this point
Copy the full SHA 0e89f50View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c45cf8 - Browse repository at this point
Copy the full SHA 8c45cf8View commit details
Commits on Jul 14, 2020
-
Rollup merge of rust-lang#71237 - Cldfire:rustdoc-ayu-theme, r=Guilli…
…aumeGomez Add Ayu theme to rustdoc This is a port of a theme I maintain (https://github.com/Cldfire/ayu-rs) to the native rustdoc theme system. [Ayu](https://github.com/dempfi/ayu) (dark) is a richly-colored dark theme that many people enjoy using across a wide variety of environments. Corresponds to the Ayu theme in [mdBook](https://github.com/rust-lang/mdBook). Some screenshots: ![image](https://user-images.githubusercontent.com/13814214/79547087-6c935780-8061-11ea-8a33-38e9472e9fec.png) ![image](https://user-images.githubusercontent.com/13814214/79547150-8339ae80-8061-11ea-97be-9e13a8b275d7.png) ![image](https://user-images.githubusercontent.com/13814214/79547221-98164200-8061-11ea-9649-9b11ccbb33e3.png) ![image](https://user-images.githubusercontent.com/13814214/79547310-b419e380-8061-11ea-9965-d4f90b2280ab.png) ![image](https://user-images.githubusercontent.com/13814214/79547443-e7f50900-8061-11ea-8872-06d74010691e.png) Note that this pull request also makes some small code changes to allow for disabling theme stylesheets, preventing the rules from all the different themes from conflicting with one another. The only stylesheet that is not disabled is `light.css`; the theming system (quite hackily) switches themes by changing the href on this stylesheet and so permanently disabling all the others works perfectly fine.
Configuration menu - View commit details
-
Copy full SHA for d716d1c - Browse repository at this point
Copy the full SHA d716d1cView commit details -
Rollup merge of rust-lang#72481 - marmeladema:duration-consts-2, r=ol…
…i-obk Constify most non-trait `Duration` methods as described in rust-lang#72440 The remaining methods could probably be made const once rust-lang#72449 lands with support for `f<32|64>::is_finite()`.
Configuration menu - View commit details
-
Copy full SHA for 246a47b - Browse repository at this point
Copy the full SHA 246a47bView commit details -
Rollup merge of rust-lang#72808 - Lucretiel:line-writer-reimpl, r=Ama…
…nieu Substantial refactor to the design of LineWriter # Preamble This is the first in a series of pull requests designed to move forward with rust-lang#60673 (and the related [5 year old FIXME](https://github.com/rust-lang/rust/blob/ea7181b5f7a888c2cf969ae86de7207fa5fb40aa/src/libstd/io/stdio.rs#L459-L461)), which calls for an update to `Stdout` such that it can be block-buffered rather than line-buffered under certain circumstances (such as a `tty`, or a user setting the mode with a function call). This pull request refactors the logic `LineWriter` into a `LineWriterShim`, which operates on a `BufWriter` by mutable reference, such that it is easy to invoke the line-writing logic on an existing `BufWriter` without having to construct a new `LineWriter`. Additionally, fixes rust-lang#72721 ## A note on flushing Because the word **flush** tends to be pretty overloaded in this discussion, I'm going to use the word **unbuffered** to refer to a `BufWriter` sending its data to the wrapped writer via `write`, without calling `flush` on it, and I'll be using **flushed** when referring to sending data via flush, which recursively writes the data all the way to the final sink. For example, given a `T = BufWriter<BufWriter<File>>`, saying that `T` **unbuffers** its data means that it is sent to the inner `BufWriter`, but not necessarily to the `File`, whereas saying that `T` **flushes** its data means that causes it (via `Write::flush`) to be delivered all the way to `File`. # Goals Once it became clear (for reasons described below) that the best way to approach this would involve refactoring `LineWriter` to work more directly on `BufWriter`'s internals, I established the following design goals for the refactor: - Do not duplicate logic with `BufWriter`. It's great at buffering and then unbuffering data, so use the existing logic as much as possible. - Minimize superfluous copying of data into `BufWriter`'s buffer. - Eliminate calls to `BufWriter::flush` and instead do the same thing as `BufWriter::write`, which is to only write to the wrapped writer (rather than flushing all the way down to the final data sink). - Uphold the "at-most 1 write of new data" convention of `Write::write` - Minimize or eliminate dropping errors (that is, eliminate the parts of the old design that threw away errors because `write` *must* report if any bytes were written) - As much as possible, attempt to fully flush completed lines, and *not* flush partial lines. One of the advantages of this design is that, so long as we don't encounter lines larger than the `BufWriter`'s capacity, partial lines will never be unbuffered, while completed lines will *always* be unbuffered (with subsequent calls to `LineWriter::write` retrying failed writes before processing new data. # Design There are two major & related parts of the design. First, a new internal stuct, `LineWriterShim`, is added. This struct implements all of the actual logic of line-writing in a `Write` implementation, but it only operates on an `&mut BufWriter`. This means that this shim can be constructed on-the-fly to apply line writing logic to an existing `BufWriter`. This is in fact how `LineWriter` has been updated to operate, and it is also how `Stdout` is being updated in my [development branch](https://github.com/Lucretiel/rust/tree/stdout-block-buffer) to switch which mode it wants to use at runtime. [An example of how this looks in practice](https://github.com/Lucretiel/rust/blob/f24f272df674dc7fa8941b97b45f41ad08b2199b/src/libstd/io/stdio.rs#L479-L484 ) The second major part of the design that the line-buffering logic, implemented in `LineWriterShim`, has been updated to work slightly more directly on the internals of `BufWriter`. Mostly it makes us of the public interface—particularly `buffer()` and `get_mut()`—but it also controls the flushing of the buffer with `flush_buf` rather than `flush`, and it writes to the buffer infallibly with a new `write_to_buffer` method. This has several advantages: - Data no longer has to round trip through the `BufWriter`'s buffer. If the user provides a complete line, that line is written directly to the inner writer (after ensuring the existing buffer is flushed). - The conventional contract of `write`—that at-most 1 attempt to write new data is made—is much more cleanly upheld, because we don't have to perform fallible flushes and perform semi-complicated logic of trying to pretend errors at different stages didn't happen. Instead, after attempting to write lines directly to the buffer, we can infallibly add trailing data to the buffer without allowing any attempts to continue writing it to the `inner` writer. - Perhaps most importantly, `LineWriter` *no longer performs a full flush on every line.* This makes its behavior much more consistent with `BufWriter`, which unbuffers data to its inner writer, without trying to flush it all the way to the final device. Previously, `LineWriter` had no choice but to use `flush` to ensure that the lines were unbuffered, but by writing directly to `inner` via `get_mut()` (when appropriate), we can use a more correct behavior. ## New(ish) line buffering logic The logic for line writing has been cleaned up, as described above. It now follows this algorithm for `write`, with minor adjustments for `write_all` and `write_vectored`: - Does our input data contain a newline? - If no: - simply use the regular `BufWriter::write` to write it; this will append it to the buffer and/or flush it as necessary based on how full the buffer is and how much input data there is. - additionally, if the current buffer ends with `'\n'`, attempt to immediately flush it with `flush_buf` before calling `BufWriter::write` This reproduces the old `needs_flush` behavior and ensures completed lines are flushed as soon as possible. The reason we only check if the buffer *ends* with `'\n'` is discussed later. - If yes: - First, `flush_buf` - Then use `bufwriter.get_mut().write()` to write the input data directly to the underlying writer, up to the last newline. Make at most one attempt at this. - If it errors, return the error - If it succeeds with a full write, add the remaining data (between the last newline and the end of the input) to the buffer. In order to uphold the "at-most 1 attempt to write new data" convention, no attempts are made to write this data to the inner writer (though obviously a subsequent write may immediately flush it, e.g., if it totally filled the buffer's capacity. - If it only partially succeeds, buffer the data only up to the last newline. We do this to try to avoid writing partial lines to the inner writer where possible (that is, whenever the lines are shorter than the total buffer capacity). While it was not my intention for this behavior to diverge from this existing `LineWriter` algorithm, this updated design emerged very naturally once `LineWriter` wasn't burdened with having to only operate via `BufWriter::flush`. There essentially two main changes to observable behavior: - `flush` is no longer used to unbuffer lines. The are only written to the writer wrapped by `LineWriter`; this inner writer might do its own buffering. This change makes `LineWriter` consistent with the behavior of `BufWriter`. This is probably the most obvious user-visible change; it's the one I most expect to provoke issue reports, if any are provoked. - Unless a line exceeds the capacity of the buffer, partial lines are not unbuffered (without the user manually calling flush). This is a less surprising behavior, and is enabled because `LineWriter` now has more precise control of what data is buffered and when it is unbuffered. I'd be surprised if anyone is relying on `LineWriter` unbuffering or flushing *partial* lines that are shorter than the capacity, so I'm not worried about this one. None of these changes are inconsistent with any published documentation of `LineWriter`. Nonetheless, like all changes with user-facing behavior changes, this design will obviously have to be very carefully scrutinized. # Alternative designs and design rationalle The initial goal of this project was to provide a way for the `LineWriter` logic to be operable directly on a `BufWriter`, so that the updated `Stdout` doesn't need to do something convoluted like `enum { BufWriter, LineWriter }` (which ends up being ~~impossible~~ difficult to transition between states after being constructed). The design went through several iterations before arriving at the current draft. The major first version simply involved adding methods like `write_line_buffered` to `BufWriter`; these would contain the actual logic of line-buffered writing, and would additionally have the advantages (described above) of operating directly on the internals of `BufWriter`. The idea was that `LineWriter` would simply call these methods, and the updated `Stdout` would use either `BufWriter::write` or `BufWriter::write_line_buffered`, depending on what mode it was in. The major issue with this design is that it loses the ability to take advantage of the `io::Write` trait, which provides several useful default implementations of the various io methods, such as `write_fmt` and `write_all`, just using the core methods. For this reason, the `write_line_buffered` design was retained, but moved into a separate struct called `LineWriterShim` which operates on an `&mut LineWriter`. As part of this move, the logic was lightly retooled to not touch the innards of `BufWriter` directly, but instead to make use of the unexported helper methods like `flush_buf`. The other design evolutions were mostly related to answering questions like "how much data should be buffered", "how should partial line writes be handled", etc. As much as possible I tried to answer these by emulating the current `LineWriter` logic (which, for example, retries partial line writes on subsequent calls to `write`) while still meeting the refactor design goals. # Next steps ~Currently, this design fails a few `LineWriter` tests, mostly because they expect `LineWriter` to *fully* flush its content. There are also some changes to the way that `LineWriter` buffers data *after* writing completed lines, aimed at ensuring that partial lines are not unbuffered prematurely. I want to make sure I fully understand the intent behind these tests before I either update the test or update this design so that they pass.~ However, in the meantime I wanted to get this published so that feedback could start to accumulate on it. There's a lot of errata around how I arrived at this design that didn't really fit in this overlong document, so please ask questions about anything that confusing or unclear and hopefully I can explain more of the rationale that led to it. # Test updates This design required some tests to be updated; I've research the intent behind these tests (mostly via `git blame`) and updated them appropriately. Those changes are cataloged here. - `test_line_buffer_fail_flush`: This test was added as a regression test for rust-lang#32085, and is intended to assure that an errors from `flush` aren't propagated when preceded by a successful `write`. Because type of issue is no longer possible, because `write` calls `buffer.get_mut().write()` instead of `buffer.write(); buffer.flush();`, I'm simply removing this test entirely. Other, similar error invariants related to errors during write-retrying are handled in other test cases. - `erroneous_flush_retried`: This test was added as a regression test for rust-lang#37807, and was intended to ensure that flush-retrying (via `needs_flush`) and error-ignoring were being handled correctly (ironically, this issue was caused by the flush-error-ignoring, above). Half of that issue is not possible by design with this refactor, because we no longer make fallible i/o calls that might produce errors we have to ignore after unbuffering lines. The `should_flush` behavior is captured by checking for a trailing newline in the `LineWriter` buffer; this test now checks that behavior. - `line_vectored`: changes here were pretty minor, mostly related to when partial lines are or aren't written. The old implementation of `write_vectored` used very complicated logic to precisely determine the location of the last newline and precisely write up to that point; this required doing several consecutive fallible writes, with all the complex error handling or ignoring issues that come with it. The updated design does at-most one write of a subset of total buffers (that is, it doesn't split in the middle of a buffer), even if that means writing partial lines. One of the major advantages of the new design is that the underlying vectored write operation on the device can be taken advantage of, even with small writes, so long as they include a newline; previously these were unconditionally buffered then written. - `line_vectored_partial_and_errors`: Pretty similiar to `line_vectored`, above; this test is for basic error recovery in `write_vectored` for vectored writes. As previously discussed, the mocked behavior being tested for (errors ignored under certain circumstances) no occurs, so I've simplified the test while doing my best to retain its spirit.
Configuration menu - View commit details
-
Copy full SHA for 8fdcf94 - Browse repository at this point
Copy the full SHA 8fdcf94View commit details -
Rollup merge of rust-lang#73720 - GuillaumeGomez:cleanup-e0704, r=Dyl…
…an-DPC Clean up E0704 error explanation r? @Dylan-DPC
Configuration menu - View commit details
-
Copy full SHA for 27b2897 - Browse repository at this point
Copy the full SHA 27b2897View commit details -
Rollup merge of rust-lang#73759 - GuillaumeGomez:stdin-examples, r=Dy…
…lan-DPC Add missing Stdin and StdinLock examples r? @Dylan-DPC
Configuration menu - View commit details
-
Copy full SHA for 92f6bf3 - Browse repository at this point
Copy the full SHA 92f6bf3View commit details -
Rollup merge of rust-lang#73866 - Goirad:fix-entry-improper-ctypes, r…
…=davidtwco Obviate #[allow(improper_ctypes_definitions)] Modifies the return type for `fn entry` so that allowing improper_ctypes_definitions is no longer necessary. This change is derived from a similar pattern in `libstd/sys/sgx/abi/usercalls/raw.rs` with `UsercallReturn`. cc @jethrogb
Configuration menu - View commit details
-
Copy full SHA for 5acc42f - Browse repository at this point
Copy the full SHA 5acc42fView commit details -
Rollup merge of rust-lang#73965 - davidtwco:issue-73886-non-primitive…
…-slice-cast, r=estebank typeck: check for infer before type impls trait Fixes rust-lang#73886. This PR checks that the target type of the cast (an error related to which is being reported) does not have types to be inferred before checking if it implements the `From` trait. r? @estebank
Configuration menu - View commit details
-
Copy full SHA for af56daa - Browse repository at this point
Copy the full SHA af56daaView commit details -
Rollup merge of rust-lang#74173 - estebank:struct-pat-as-enum, r=petr…
…ochenkov Detect tuple struct incorrectly used as struct pat Subpart of rust-lang#74005. r? @petrochenkov
Configuration menu - View commit details
-
Copy full SHA for 88f072b - Browse repository at this point
Copy the full SHA 88f072bView commit details -
Rollup merge of rust-lang#74220 - lzutao:windows-path-com, r=LukasKal…
…bertodt Refactor Windows `parse_prefix` These changes make me feel more readable. See the commit messages for more details.
Configuration menu - View commit details
-
Copy full SHA for 7adb86d - Browse repository at this point
Copy the full SHA 7adb86dView commit details -
Rollup merge of rust-lang#74227 - erikdesjardins:layun, r=estebank
Remove an unwrap in layout computation A tiny improvement.
Configuration menu - View commit details
-
Copy full SHA for 38fc369 - Browse repository at this point
Copy the full SHA 38fc369View commit details -
Rollup merge of rust-lang#74272 - davidtwco:issue-73626-multiline-mix…
…ed-comments, r=Mark-Simulacrum pprust: support multiline comments within lines Fixes rust-lang#73626. This PR adds support to `rustc_ast_pretty` for multiline comments that start and end within a line of source code. Fun fact: [the commit which added this assert](rust-lang@d12ea39) was from 2011! https://github.com/rust-lang/rust/blob/d12ea3989649616437a7c1434f5c5a6438235eb7/src/comp/pretty/pprust.rs#L1146-L1150
Configuration menu - View commit details
-
Copy full SHA for 317c840 - Browse repository at this point
Copy the full SHA 317c840View commit details